• I Cast Fist
    link
    394 months ago

    “Programming is just writing code”

    Programming is, first and foremost, understanding what the fuck you want/need the computer to do. That means that some programmers (mostly analysts) may understand workflows and processes better than the people whose job depends on their knowledge of said things.

    • @[email protected]
      link
      fedilink
      134 months ago

      People don’t realize that as you get better at programming, the amount of code you write goes down. At least in my experience, my work day has shifted to 80% thinking about what I’m going to write and then about 20% actually writing it.

      • @spartanatreyu
        link
        104 months ago

        1 hour of planning can save 10 hours of work.

        1 hour of research can save 10 hours of planning.

          • @[email protected]
            link
            fedilink
            24 months ago

            It was the job switch that landed me in that situation. A change from a small company where about 70% was actual productivity, to a large corporation, in a team where there was severe issues with planning and working on the correct problems. So far it’s been 6 months of… well, wondering if I’m missing something, or a bigger picture somewhere, to trying to turn the ship in the right direction. If it’s still like this in another 6 months, I’ll consider a change of scenery.

            • @[email protected]
              link
              fedilink
              24 months ago

              That’s fair, that definitely can happen with a switch. My first year at my current company was like that and occasionally still is lol. Luckily our next few quarters I’ll be on a team that has much nicer processes so I won’t be twiddling my thumbs waiting for solid requirements.

              • @[email protected]
                link
                fedilink
                1
                edit-2
                4 months ago

                waiting for solid requirements

                This is exactly the situation. Except that my team consisting of consultants just “started”, instead of trying to scope out the constraints and larger picture. I joined a month or so after.

                Six months, and the result so far of their exploration is a fairly uninteresting happy-path use of some technologies, barely related to the task that had unclear requirements. Turns out the work done is unsuited for it. Boggles the mind how much resources are wasted on such things.

                Feels extremely unrewarding to have worked, relatively hard, for half a year, and the fruits of my labour is… getting to the point where the actual problems are solved. Which one could have done from day one, if one had started in a team without wrong preconceptions, or, no team, for that matter.

                • @[email protected]
                  link
                  fedilink
                  24 months ago

                  Yeah I would not like that situation at all. I was very adamant about not starting our latest project until we had firm requirements. Of course that didn’t happen but I was very careful about designing in a way to be flexible enough to change to requirements. Had a major change halfway through but only lost a week or two which could’ve been much worse.

                  • @[email protected]
                    link
                    fedilink
                    2
                    edit-2
                    4 months ago

                    Only losing a week on a major change is a good sign. I wish the people who started the project had that same attitude with regards to clarifying requirements. They also did the opposite of designing a flexible solution. No thought to the actual problem, picking a contrived problem to “tackle”. Full on blinders on event driven architecture, split a simple thing into multiple nano-services, yet tightly coupled by sharing the same model which is de/serialized at every step, and then throw in application level filtering on the events… no schemas, no semantic versioning.