1. 18
  1.  

  2. 7

    What I’ve always found intruiging about systems articles and books is how it often comes down to a case of what not to do (or how to recognize what won’t work) with very little specific about what works.

    I think this gets at why doing software development well is such tricky business. It takes some forethought to see that the actions you are taking now are likely to lead to a situation that will be problematic in the (near?) future. In my experience, at least, I’ve found that the most enjoyable experiences are where “past you” thought carefully about “future you” without being a total jerk.

    I see a lot in common with the practice of law. Part of the reason judges exist is that codifying allowed behaviour into laws is practically impossible. Hence, you put someone with experience and knowledge in a position that can decide the fate of others (to some extent, at least). This person must make judgements based on the evidence presented, previous cases, their own experience, and some intuition. In some sense, judges are there to avoid the need to enumerate all the special cases.

    Perhaps this quality is inherent in software development. I’m not entirely sure, but it does seem to fit with the facts as I’ve seen them.

    1. 2

      It takes some forethought to see that the actions you are taking now are likely to lead to a situation that will be problematic in the (near?) future. In my experience, at least, I’ve found that the most enjoyable experiences are where “past you” thought carefully about “future you” without being a total jerk.

      I’ve become more and more agile-purist as I’ve got older. Too many times the experience is “stop trying to help me, past-me, you’ve ended up just making things harder.”

      1. 1

        I think this gets at why doing software development well is such tricky business. It takes some forethought to see that the actions you are taking now are likely to lead to a situation that will be problematic in the (near?) future. In my experience, at least, I’ve found that the most enjoyable experiences are where “past you” thought carefully about “future you” without being a total jerk.

        I think the definition of software development is “Try to work out the least worst of 4 bad solutions, pick that”.