I got a great question yesterday about the ethical boundaries I published. I was asked did I see them as boundaries or as guidelines.
A boundary, such as the lines on a map are actual limits. You don’t cross the border of a country without the permission of both the country you are leaving and the country you are going to. It is a hard and fast limit. A guideline is more well you probably should do this, but you don’t have to. Speed limit is a boundary, drive slower at night is a guideline.
So the software architecture ethics I am working through are boundaries. Do not cross those lines without understanding the impact and cost of doing that.
A cycle that balances the requirements of the solution, the value to the business the cost of the solution and the users of the system.
Building a system that forces users to start over and relearn everything has to provide either significantly lower cost or much greater business value!
Now business value and costs have spectrums. It is conceivable that greater costs in the short run that produce greater revenues later on can be considered. The tradeoff is can you get to the point where the costs begging to decrease. The experience curve (Boston Consulting Group) says you can. Overtime the overall costs of a solution will decrease as people get better in the building and delivery of a solution.
To a degree it is about getting up this spectrum quickly. If the value of a solution is visible quickly then the risk of the solution being halted is reduced. The same is true of course on the other side. Low visibility of value, high probability of cancellation.
Where on this spectrum does the software architect have responsibility. Normally it would be in the first two buckets. The value derived is a process that can’t normally be controlled directly.
So initial boundary in selecting a solution for software architecture would be the cost of the actual solution ad the impact of the change for the organization.
.doc
wandering the software architect ethical desert…