Jeremy ReimerPosts: 9350
Posted on: 2013-03-07 11:46:36.000
For the "brogrammer" post, it raises an interesting question of whether companies value quality work over fast and cheap work. However, it falls down when it brings out the old chestnut of comparing software to bridge building. I feel one of the commenters answers this best:
[quote]
For some reason, people love to compare the process of writing software to the construction of bridges and houses. The big difference is that the end-goal of the software is frequently not understood at the beginning of a software project, in the same way it is for the construction industry.
Not only do the software engineers not understand exactly what they’re building, neither do the people who asked for it, or the people managing the process. This leads to inevitable change in requirements across the development process.
If construction engineers had to build houses, no wait, bridges, no wait, house-bridges, no wait, house-bridge-swimming pools… then they would fail to build anything that worked at all. Note that this is an analogy failure, not a failure of construction or software engineering. They are different domains, with different challenges.
[/quote]
Overall, it’s evident that for most software applications (software for the Space Shuttle notwithstanding) the agile approach is superior, simply because the customer/client does not know what he/she wants in the first place. It’s better from a business standpoint to be able to rapidly adapt than to build a flawless, high-quality product that nobody wants.
As far as the "brogrammer" epithet, I think it’s a little demeaning (and sexist!) After all, it’s the company’s decision what kind of programmers they want, and if they want more rigorous and high-quality software then they have to accept the responsibility for hiring, training, and fostering an environment where such things are rewarded. They also have to accept the fact that it will mean software is developed more slowly.
It’s worth noting that management never, <i>ever</i> does this.
And it may be for good reason. The software quality of Facebook is quite low--I frequently find pages that are broken or don’t work as expected or work weirdly. But they are the most valuable social network on the planet. It’s interesting to me that in <i>some</i> areas--most notably the Facebook iPhone app--the quality improved drastically. Obviously there was customer pressure there for a better app, and so they eventually had to deliver it.
Quality is a feature, yes, but features are also features. You have to balance these things out intelligently.