1 minute read

What is more important? The current behaviour of the system (functionality) or the ability of the system to change (architecture)? This is the trade-off that software architects have to keep in mind with every decision both big and small.

People from the business will often tell you that current function and behaviour is more important because it delivers added user value right now. But if you always relent to this pressure then you are failing at your job of being a software architect.

Whatever you do there will always be more and more requests from the business to respond to changing market conditions, but if you don’t draw a line in the sand and if you keep giving in, then at some point all chose changes make the system so hard to change that everything will grind to a halt. Then people from the business will look and you, scoff, and think: he did a terrible job for not saying no more often to us.

It’s your responsibility to both (a) make the required changes but even more importantly (b) keep the system in such a healthy state that it is possible to do (a). That is the principal task of a software architect. This means sometimes saying no to requests from the business in order to protect the long-term integrity of the system.