This presentation was created for the SATURN conference series and does not necessarily reflect the positions and views of the Software Engineering Institute.
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
11. …etc.
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
9. …etc.
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.
PDF [1160 KB]
PRESENTATION
This presentation is related to the following area(s) of work:
SATURNPublished: April 2008
For more information