Monday, August 23, 2004

Software should be about change

It has been said many times before: "If there is one constant in nature, it is change."

Yet, in many software development organization people are striving for reproducibility, predictability and (management) control. Plans are made and approved like they are carved in stone. The software architecture is designed to prepare for extension of the product, allowing it to scale for more functionality, but the software architecture itself is hardly ever designed for change. A a certain point in time, a major refactoring is needed to get the architecture going again.
The software implementation is often rigid and optimizations for performance have often lead to various unexpected side-effects when the implementation is changed. However, to accomodate for new and extended functionality, the software must be able to change.

And then the people. Products are becoming so complex and extensive that nobody has a total overview of the system. Only a few veterans still know the original ideas behind a lot of the concepts and principles that are used and never questioned, and above all never changed. And they are not changed because you should not fix it unless it is broken.
Not even the crew working on the product development can bear much change. The learning curve of newbies is too long and the risks of losing valuable knowledge are too high. And manu people resist change of habits simply because they don't like to change their habits.

What was the advantage of software again? It is much easier to change than hardware, much more flexibility. It is software. But in practice, software is hard to change. And when it needs to change, business demands a solid statement of profitability. Entrepreneurs are hardly found under established organizations.

In some occasions companies are lucky: they get into business trouble through the way they are organized and the lack of change. Managers are forced to accept change, to invest in entrepreneurship. But again, only very few learn from it to design the product and the organization for future change.

1 comment:

angryshoes said...
This comment has been removed by a blog administrator.