It’s a fact that organizations which are empowering teams and individuals are efficient and successful. At the core, empowerment requires two key elements: 1) effective knowledge at every participant’s disposal, so that they can make informed decisions in every step they take and 2) process/structure where everyone/teams can take and own decisions in their job scope. This will equally benefit the organization and individuals as everyone will be leveraging their talents. Empowerment is not easy to achieve, as there is a fine line between empowerment and slipping into chaos, so organizations turn more towards a central command control model. An effective implementation will depend on a deep understanding of every job circumstance and understanding what empowerment means in that situation; because of this, organizations struggle to empower.
In the software engineering realm, the lives of organizations and individuals are centered on basic tenets of software development: requirements, architecture, design, coding, testing, implementation, and support. Given this fact, in order to empower, there has to be deep knowledge of the problems (requirements) and solutions (architecture/designs) across the organization, so that everyone can make the right decisions in their jobs. And also this needs software methodologies, which promote ownership at all levels of organization, e.g., features, subsystems, etc. Architecture and architecture process are the keys to achieving this. I would like to call architecture (the end result, the knowledge) and architecture process (the architecting and designing process) the architecture realm.
Architecture realm is the glue that holds everything together—the system, participants, and the process steps. Starting from the requirement analysis to maintenance, every phase greatly depends on it, some of them more than the others. For example, 1) everyone needs knowledge of the architecture to make the right decisions; it could be spectators (someone who just hears about your project), stakeholders (marketing, sales, management, development, test, implementation, support) to potential customers (curious spectators) and customers. 2) To leverage great designers and developers, the architecture and architectural process has to be empowering and should give everyone a foundation to build on, using their ideas and skills. It also should allow teams to own features and areas. 3) To have quality testing, testers need to understand the requirements and the solution for requirements, which lies in architecture and design. 4) Customers need to understand how a product’s architecture will fit into their enterprises. We can have lot of examples like these. All these, point out the need to empower the organization architecturally.
Traditionally, architecture realm is measured in terms of “ility”s (flexibility, availability, scalability, extensibility…etc.). These attributes are targeting qualities of the end solution, i.e., the architecture. But an important aspect of architecture realm, which does not get enough attention, is its contribution to building successful organizations. But generally, it’s much more obvious when the architecture realm stands in the way of making an organization successful. As a simple example, when you think about scaling a team, if the architecture is such a way that, it needs central command and control for every decision, it’s going to be very difficult. At the same time, you need to also make sure everyone is marching to one beat, building modules that fit into the architecture, using the framework elements of the system and using their brains to design and develop features. In order to be successful in this, when the architecture realm is put up, it needs to consider all these facts.
So architecture empowerment is about having an architecture realm (architecture and architecture process), which will help everyone involved to gain the knowledge they need to perform their duties and provide a framework which permits teams and individuals to comprehend, own, influence, and execute things they are responsible for effectively, thereby benefiting both the organization and personal lives of the employees.
If achieved, following are some key benefits to the organization from architecture empowerment:
1. Organizational Scalability
2. Distributed Development
3. Team Ownership and Empowerment
4. Feature-Centric Development
5. Architecture and Design Excellence
6. Parallel Development
7. System Quality
8. Individual’s talent development
9. Power of architectural knowledge
10. Streamlined project execution
Following are a few basic tenets to achieving architecture empowerment in an organization:
1. Collaborative Requirement Analysis and Architecture Modeling
2. Consumer-Centered Architecture Modeling
3. Evolving Asset-Driven Architecture
4. Architecture-Driven Planning Framework
5. Multiphase Evolving Software Design Process
6. Ownership-Centered Design Process
7. Feature-Centered Architecture and Design Modeling
8. Architecture- and Design-Driven Test Model
In the presentation, I will expand on these concepts and explain how and why I see these are going to empower organizations and make them more successful.