Why are these supposted to be negative? I consider many of these to be sensible approaches to realistic software development. I can’t believe that you don’t use them yourself.
One part of shantytowns is that they are built using inexpensive tools. What’s wrong with that? I regularly use open source products in my development. I shouldn’t use gcc because it’s free? I shouldn’t use emacs because it’s free? cvs and svn are evil because they can be used at no cost? Are you on drugs? A cheap tool doesn’t make the end product bad. A paint brush is a cheap tool, and da Vinci has made some inspiring works with it.
- Throwaway code.
I have no problems with throwaway code as so much of the open source world starts off as throwaway code and this seems to be a successfully approach in this arena. If you didn’t have people quickly throwing their ideas together to have a look at them then innovation will die or at least crawl very slowly. Of course I judge open source projects differently from the software in a 747. Different approaches for different projects.
- Piecemeal Growth
Or as I call it: modular design. You take a large system, like a city, and break it up into seperate and smaller areas with specialised functionality, linking them all up with roads. This is basic stuff - if a programmer doesn’t know/use this then he shouldn’t be programming.
- Keep it working (Daily build)
Seriously, you’re suggesting that maintance of software is bad? That daily builds are a bad thing? I’m sorry, I have to ask if you’ve ever worked at all in the software business? Nothing is ever perfect. As time goes on bugs are exposed and need to be addressed. This is why we write documentation and comment our code so that we can maintain it latter.
- Shearing layers.
I’m not sure what you’re trying to say here. Are you saying that software changes? If so, then why’s that bad? Software has version numbers for this very reason. That software can evolve and grow is a potential force for good.
- Sweeping it under the rug.
Again, do you have any real programming experience? How often do we reuse libraries that have bugs in them and we create a facade or wrapper to go around this library. This wrapper tries to minimise the damage these buggy libraries do. It’s a practical reality. Hiding problem libraries is not a sign of bad design, it’s good practice.
Here’s a big WTF. So you’re saying that refactoring is bad? Are you seriously saying that your code is so damn perfect the first time that you don’t have to go back and improve on it? Sometimes the original code sort of almost works, sometime you just have to completely trash it and start again. Refusing to acknowledge a mistake and letting it live on in the form of crap code is unbelievably stupid.