5 ms·
> like Brooks argues, we are mostly hitting essential complexity now I'm a bit skeptical about this. If you look at random backend code, you'll find lots of bo
by taffer 4y ago
> like Brooks argues, we are mostly hitting essential complexity now
I'm a bit skeptical about this. If you look at random backend code, you'll find lots of boilerplate, control structures, error handling, dealing with different data structures, performance optimizations. All of that I would consider random complexity. All of that is there only because computers can't figure these things out on their own.
- beckingz 4y agocontrol structures and error handling sound like essential complexity to me, as that's effectively business logic / system requirements.
- taffer 4y agoI might agree that error handling is business logic in the broadest sense, but control structures certainly are not. Unless there is an explicit business requirement like "use a nested for loop to iterate through an employee array", control structures are just implementation details.
- the_af 4y agoThe logic being expressed by the control structure is essential complexity though. There are better and worse ways to go about it, i.e. "accidental" complexity, but the core logic is irreducible.
- the_af 4y agoControl structures as in "business logic" is essential complexity to me. Random spaghetti code and boilerplate isn't, but Brooks' argument is that improving this, while definitely a good thing to strive for, won't result in a huge improvement in productivity, because the major roadblocks lie elsewhere. I don't think he is arguing against minor wins, either. He just says we must focus on the major ones.
- marcosdumay 4y agoIf you go into backend code from the typical place where "backend code" is a thing, it can be derived completely mechanically from the frontend. So all the work that goes into it is accidental, for a start. Often that relation goes both ways, and the frontend code (that is even more complex) can be derived from the backend too. That doesn't look very minor to me.
- the_af 4y agoThat's boilerplate code and I agree it can be completely automated. I would argue it's a very convenient but minor thing, and that it doesn't truly change the complexity of writing code. It just makes it less dreary. I would also argue it's a win that it can be automated, and I think Brooks would agree! I don't think he was arguing small wins don't matter.
- Too 4y agoBoilerplate in itself is not complexity (eg import statements), it’s just tedious and unergonomic. In fact it can reduce complexity, again with example of imports being a better alternative than global symbols. Coupled boilerplate on the other hand is complexity, where if you change x in front end you also must change corresponding x in backend.
- the_af 4y agoYou're using a very specific notion of boilerplate and complexity. I mean, I've never heard of imports being described as boilerplate...