Sunday, July 6, 2008

Complexity of Software (1)

One big issue about today's software is its complexity. Today's software is so complex - in the other hand, it doesn't need to be that complex.
I can only speculate why our industry fails to give users what the clearly need and want.
There could be reasons related to organizational culture, or they could be related to certain software business models.
A widespread myth is that current software is inherently complex; so complex that ordinary people cannot possibly understand it and that it is only reasonable to expect flaws.

Consider a forest with birds singing in the trees and flowers covering its floor. We can easily walk along its paths or you can be adventurous and make your own paths. We can select any aspect of its complex ecosystem and study it for your doctoral thesis. There is unlimited complexity, yet any human can master it to suit his or her purposes. There is no reason why a computer system should be more complex than a forest. I believe that the current complexity is man-made, and that we can resolve it by changing our approach to software development. We merely need to get our priorities right and create the appropriate tools. If we decide to build systems for people, then we will get systems that can be mastered by people.

- June 2004, Trygve Reenskaug (founder of MVC paradigm)