Over at Code Project, Colin Angus Mackay asked about priorities in programming. I am absolutely convinced that the only correct order is as follows:
- Everything else (Security, reliability, scalability, performance etc.)
I put maintainability above all things. If the application is maintainable, the other attributes can be added. If not, then one day the user’s requirements will change and the application will become useless.
Usability must come second. Software exists for users, it exists to enable users to achieve something. It is better to create software that users can actually use, even if it isn’t perfect, than to write an application that is functionally correct but unusable.
Losts of people seem to think that IT is primarily about technology. I profoundly disagree with this. In any endeavor, the human aspects are more important than anything else.I believe that IT is about humans first, and technology second. Software development is about two groups of people: the people who write the software and the people who use the software. “People write software for people!” could easily become my slogan.
Interestingly, lots of developers don’t appear to think like this.
So, there it is. Maintainability is for the people doing the writing, usability for the people doing the using. Everything else is negotiable.
Disappointingly, I don’t always develop like this.