Continuing on the Software Architect’s Code of ethics.
Draft 4 Software Architect Code of Ethics
- I will act without bias in gather requirements.
My criteria will focus on the needs of the organization.
My personal preferences for software and solutions will not drive my decisions in how and what requirements are gathered.
- I will select solutions based on the overall technical need balancing the monetary, technological, user and operations impact of the solution that is selected.
Good enough (technically acceptable lowest cost) is an acceptable option if my organization considers cost the primary driving change factor.
- I will align with organizational guidelines when considering both the overall solution and the requirements for that solution.
If I am working with a business unit as a software architect I will adhere to the broader overall Enterprise Architecture
If my solution requires new infrastructure I will coordinate with the central IT team regarding the impact and value provided by the new infrastructure.
Software architects also need to be aware of all standards within an organization. That would include security, data standards and device requirements. Building a solution that only works on Android tablets as your organization implements its BYOD policy isn’t wise. You now force everyone to carry multiple devices or worse have devices iOS and Windows Phone) that cannot access your overall solution.
As you gather requirements (without bias) you also have to consider the value of trade offs. IE which requirements are absolute and which and be traded for other functionality. A fire department building a new dispatch system would say the ability to accept inbound emergency calls and to dispatch fire tracts can never be down. The same is true in hospitals when it comes to patient care, those system can never be down. There are however systems that say they can never be down but reality they can. Understand the value of the system.
For the stock exchange it is the software that supports the buying and selling of stocks. When that is down they lose money. Understanding the impact of the system in question is not an ethical problem but it is one that software architects face. The ethical decision is around the value of the solution to the business. The software architect has to understand the business well enough to understand the tradeoff criteria.
Years ago as a consultant I remember a customer telling me that the worst thing about consultants was that everything was a nail, luckily the consultants always carried hammers. I have carried that with me ever since. Not everything is a nail.
Software Architects examine the component in question and consider is it a screw, nail, glue or Velcro. Not everything has to be a nail and not everything needs a hammer.