02 Oct 2008
Five principles for ensuring progress in programming
Know thy customer. Software must address customer needs in direct ways that are easy to understand and consume. Designing software that is immediately useful and self-evidently valuable requires dedicated, ongoing work, not a quick research project in the planning phase of a release.
Integration, integration, integration. Many software vendors have yet to learn a basic truth: their customers often value integration more than new features. That is because the customers assemble solutions for themselves, instead of expecting vendors to provide them with all the pieces. While developers who want to build the Grand Software Theory Of Everything might find this disappointing or humbling, it is necessary if you are to take the customer seriously. Welcome to the world that service-oriented architecture built, in which integrating with the existing IT components is more valuable than ripping out and replacing them.
Compartmentalise, then compartmentalise some more. Trends such as outsourcing are forcing development teams to break down projects into ever smaller, ever more manageable chunks. “Long pole” projects are still inevitable, but development teams need to approach them in a more episodic way, scheduling checkpoints at which they can evaluate the progress to date. Even the longest pole projects still have to avoid the “check-in from hell”, when all the hidden problems of the code come to roost.
Frameworks help a lot, but only so much. In many respects, the debate between advocates of frameworks (Django, Ruby and so on) and development language purists is meaningless. In the real world, developers need the short cuts that frameworks provide, but they also have to be aware of their limits. Good judgment requires some familiarity with the underlying languages. Therefore, the best framework can take you only so far if you don’t really understand Python, JavaScript, or whatever the underlying language happens to be.
Schedule security projects early. However security fits into a development project, smart development teams put security into the schedule early. Security deserves high priority. It is also harder to add security features after coding everything else than it is to build security components first, and shape other components to fit them.
Have your say on this article
Newsletters
Latest stories from Software
Latest videos
You may also like
Software jobs
Technology Patent Wars
Case studies from large organisations across all sectors
... And rich media, and flexible working, and peaks in traffic ...
Upcoming Events
Join us for this Computing web seminar, in which the Head of BI at the Co-operative Group Nick Colebourn will be explaining just how he reigned in the Group’s sprawling database estate and how significant savings were realised and data quality improved as a result.
Date: 31 May 2012
Time: 11:00 AM
Live June 13th 11:00am: Register now. During this web seminar we will be looking at the sorts of incidents that can bring data centres grinding to a halt and what can be done about them.
Date: 13 Jun 2012
Time: 11:00 am
Receive the latest jobs direct to your inbox
Are you being paid what you are worth?