A good article was posted yesterday by the ComputerWorld Website saying that the leading cause of software project failures is the complexity of the applications.Â The article quotes software architect Roger Sessions:
“Our goal should be to design the least complex architecture possible that solves the business problemâ
Iâve been part of many projects that were mired in complexity.Â They usually over-run or we end up with a sub-par system that awaits a never-to-happen refactoring and revision.
Itâs easy to brainstorm a project and add feature-after-feature until you produced a project plan which stretches over months or years.Â Itâs easy to design an interface that looks like a cockpit dashboard with lots of functionality that you will probably never use, but looks impressive in the way it fills the screen.Â âWouldnât it be great if this interfaces with every other system we have?Â Wouldnât it be great if we could use that new transactional system thatâs really hot right now?Â Wouldnât it be great if . . .â
Iâve been guilty of this in the pastâbut Iâve been burned so many times that I tend to err on the side of simplicity (but I donât always get final say in architectural decisions).
Over the past few years there has been a move to simpler architectures, simpler interfaces, and quicker release cycles.
Scrum is an agile methodology that stresses frequent releases over many iterations.Â So, at the end of each 2-3 week iteration, you have working softwareâregardless of whether you release it to the public or hold until the next iteration.Â Itâs a methodology that resonates with a lot of people who have worked on failed projects in the past.Â I became Scrum Master certified a few years ago, and it changed my whole view of how projects should runâbut it is not easy to convince business owners to go this way.
37 Signals released a fantastic e-book called âGetting Realâ which they stress that building software is more important that talking about building software.Â They have released one of my favourite on-line apps ever with Basecamp.Â It is quick, easy, and has a simple interface.Â They refuse to clutter it every bit of functionality anyone asks for.
Interfaces in general are getting more simple to useâand not just for products like Basecamp.Â 10 years ago, you had apps that tried to fill your entire browser with things to do, but now you see more and more that are intuitive and easy to use.Â Compare Yahoo! (with a browser window you couldnât find any blank space on) with Google (a textbox and a buttonâno manual needed).
The software that has a better chance of reaching âfinishedâ is the software that keeps the architecture simple, keeps the interface simple, and releases frequently.
Hereâs the link to the ComputerWorld article:Â http://www.computerworld.com/s/article/345994/The_No._1_Cause_of_IT_Failure_Complexity