for those who dont know, joel spoelsky is a dev god!! he has forgotten more about writing code than most people have ever known. this is his blog, joel on software. there is no point in linking through to a specific item as there is too much wisdom just sprinkled around.
developing software is a long process. It takes around 8 years to get a product right. i didnt believe Joel when i first read it, but having been around software for way too long now, i can see that its true. As you move up the client curve and the value curve (i.e. away from charging $10 for your software into millions) the expectations shift with it. Joel has other great insights, such as how to structure teams, manage software release cycles and (most importantly) estimate how long a piece of code is actually going to take to write – the ultimate quest of many software dev firms.
Software is a mix between art and process. art, because some code is sheer genius in simplicity or effectiveness, process because to make something repeatable and supportable you need to do it in a very structured way. trying to debug somebody elses code that they wrote at 2am and didnt comment/document or anything else is a nightmare not worth mentioning.
Good software doesnt end at when its written, it starts there. good software is about how well it runs, is it supportable and extendable. to do that, the building blocks have to be put in place. the building blocks are generally architecture (i.e. you thought about these issues when you wrote the software) and training/documentation. now we can have a mountain of documentation that is out of date and generally crap, or we can be smart about it and write the relevant amount of documentation. ideally, as you see in agile methodologies, the code is the document -i.e. it is well documented inside with comments and explanations and dynamic API and documentation tools are used.
not sure why i am writing about software development in a media blog.
cool agile tools
check out jeo’s blog – joel on software