2 added 1178 characters in body
source | link

While one might argue with specific metrics (ie, have things improved by a factor of 9.98?), I (speaking as something of an old-timer) have to agree with the general sentiment of Brooks' comment.

First off, there has been very little truly new technology invented since maybe 1970. Yes, integrated circuits have gotten longer, lower, wider, and glass fiber has improved communications speeds, but for every step forward there's one back.

Compiler technology has permitted about a 10x improvement in programmer "productivity" vs 1970, when one figures function produced divided by actual coding time, but the proliferation of new or "revised" programming languages and environments means that the average programmer is spending more and more time in "catch up" mode, and less in productive activity. Apple, Google, and Microsoft all spew out new and substantially incompatible "upgrades" to their environments at a rate that is just below that that would provoke revolt among their serfs ... er, programming customers. Similarly, HTML/CSS/Javascript/whatever keeps getting more complex.

At one time the rate at which documentation could be produced and propagated would have limited and corralled all this "innovation", but, thanks to the Internet, rigorous documentation is no longer really necessary -- just spew the functions out and rely on bloggers to ferret out the details and make them available.

Added: I've been thinking about this since yesterday, and in particular thinking about the project I worked on from about 1978 until 2008. This project (the IBM System/38 and its successors) was somewhat unique in that from the start efforts were made to control the complexity of it (one being the division of the software into two roughly equal parts, with a "machine" interface between them). In the particular area where I worked, several of my coworkers similarly were dedicated to controlling complexity (though we didn't use that term much at the time). The result was a product that (at first) was quite robust and a "hit" with the customers pretty much from the git-go. And it was a pleasure to work on -- like playing in a well-trained orchestra.

Of course, over the years complexity crept in, usually at the behest of market planners and managers who had no appreciation for controlling complexity (which is somehow different from just maintaining simplicity). I don't have the feeling that this was inevitable, but it was impossible to prevent in this case without a manager (like Glenn Henry did originally) pushing back on the forces of confusion.

While one might argue with specific metrics (ie, have things improved by a factor of 9.98?), I (speaking as something of an old-timer) have to agree with the general sentiment of Brooks' comment.

First off, there has been very little truly new technology invented since maybe 1970. Yes, integrated circuits have gotten longer, lower, wider, and glass fiber has improved communications speeds, but for every step forward there's one back.

Compiler technology has permitted about a 10x improvement in programmer "productivity" vs 1970, when one figures function produced divided by actual coding time, but the proliferation of new or "revised" programming languages and environments means that the average programmer is spending more and more time in "catch up" mode, and less in productive activity. Apple, Google, and Microsoft all spew out new and substantially incompatible "upgrades" to their environments at a rate that is just below that that would provoke revolt among their serfs ... er, programming customers. Similarly, HTML/CSS/Javascript/whatever keeps getting more complex.

At one time the rate at which documentation could be produced and propagated would have limited and corralled all this "innovation", but, thanks to the Internet, rigorous documentation is no longer really necessary -- just spew the functions out and rely on bloggers to ferret out the details and make them available.

While one might argue with specific metrics (ie, have things improved by a factor of 9.98?), I (speaking as something of an old-timer) have to agree with the general sentiment of Brooks' comment.

First off, there has been very little truly new technology invented since maybe 1970. Yes, integrated circuits have gotten longer, lower, wider, and glass fiber has improved communications speeds, but for every step forward there's one back.

Compiler technology has permitted about a 10x improvement in programmer "productivity" vs 1970, when one figures function produced divided by actual coding time, but the proliferation of new or "revised" programming languages and environments means that the average programmer is spending more and more time in "catch up" mode, and less in productive activity. Apple, Google, and Microsoft all spew out new and substantially incompatible "upgrades" to their environments at a rate that is just below that that would provoke revolt among their serfs ... er, programming customers. Similarly, HTML/CSS/Javascript/whatever keeps getting more complex.

At one time the rate at which documentation could be produced and propagated would have limited and corralled all this "innovation", but, thanks to the Internet, rigorous documentation is no longer really necessary -- just spew the functions out and rely on bloggers to ferret out the details and make them available.

Added: I've been thinking about this since yesterday, and in particular thinking about the project I worked on from about 1978 until 2008. This project (the IBM System/38 and its successors) was somewhat unique in that from the start efforts were made to control the complexity of it (one being the division of the software into two roughly equal parts, with a "machine" interface between them). In the particular area where I worked, several of my coworkers similarly were dedicated to controlling complexity (though we didn't use that term much at the time). The result was a product that (at first) was quite robust and a "hit" with the customers pretty much from the git-go. And it was a pleasure to work on -- like playing in a well-trained orchestra.

Of course, over the years complexity crept in, usually at the behest of market planners and managers who had no appreciation for controlling complexity (which is somehow different from just maintaining simplicity). I don't have the feeling that this was inevitable, but it was impossible to prevent in this case without a manager (like Glenn Henry did originally) pushing back on the forces of confusion.

1
source | link

While one might argue with specific metrics (ie, have things improved by a factor of 9.98?), I (speaking as something of an old-timer) have to agree with the general sentiment of Brooks' comment.

First off, there has been very little truly new technology invented since maybe 1970. Yes, integrated circuits have gotten longer, lower, wider, and glass fiber has improved communications speeds, but for every step forward there's one back.

Compiler technology has permitted about a 10x improvement in programmer "productivity" vs 1970, when one figures function produced divided by actual coding time, but the proliferation of new or "revised" programming languages and environments means that the average programmer is spending more and more time in "catch up" mode, and less in productive activity. Apple, Google, and Microsoft all spew out new and substantially incompatible "upgrades" to their environments at a rate that is just below that that would provoke revolt among their serfs ... er, programming customers. Similarly, HTML/CSS/Javascript/whatever keeps getting more complex.

At one time the rate at which documentation could be produced and propagated would have limited and corralled all this "innovation", but, thanks to the Internet, rigorous documentation is no longer really necessary -- just spew the functions out and rely on bloggers to ferret out the details and make them available.