?
Take Responsibility for Your Decisions
Yi Zhou
SoFTWARE ARCHiTECTS HAvE To TAKE RESponSiBiliTy for their deci- sions, as they have much more influential power in software projects than most people in organizations. Studies of software projects show that more than two-thirds of them either are outright failures or deliver unsuccessfully (deadline slip, budget overruns, or low customer satisfaction). Many of the root causes point to improper decisions software architects made, or failures of follow-through on the right architectural decisions.
How can you become a responsible software architect who makes effective architectural decisions?
First, you have to be fully cognizant of your decision process, whether it is agile or ceremonial. You should not claim that an architectural decision has been made until the following two conditions are met:
? A decision has been put in writing because architectural decisions are rarely trivial. They must be substantiated and traceable.
? A decision has been communicated to the people who execute it and the people who will be affected directly or indirectly. Communication is all about creating shared understanding.
Second, review your architectural decisions periodically. Examine the results of your decisions against expectations. Identify architectural decisions that remain valid and those that do not.
?
??Third, enforce your architectural decisions. Many software projects get software architects involved only in the design phase, then they move on to other proj- ects or the consultation contract ends. How can they ensure that their deliber- ate architectural decisions have been implemented correctly? Their decisions will be at best good intentions unless they follow through with them.
Finally, delegate some decision making to others who are experts in a problem domain. Many architects wrongly assume they have to make every architec- tural decision. Therefore, they position themselves as know-it-all experts. In reality, there’s no such thing as a universal technical genius. Architects have areas in which they are quite proficient, areas in which they are knowledge- able, and areas in which they are simply incompetent. Adept architects del- egate decisions about domain problems in which they are not proficient.
Yi Zhou is currently the chief software architect in a well-known biotech company, and specializes in designing the software platform for medical devices and person- alizing disease management. He has nearly 20 years’ experience in all aspects of the software development life cycle, and excels in business-technology alignment and strategic planning, process improvement, architecture and framework design, team building and management, and consulting.