The 3-Legged Stool and a Complex Project – An Analogy

Shantanu Deshmukh

There is a beauty to a job well done and satisfaction in getting it right – especially when we talk about complex projects that call for proper use of logic, design, and analysis. It’s fantastic to see how the right efforts in all stages of a project can lead to a well-orchestrated result and a product the team can be proud of.

The features of a complex project

Many projects are difficult and complicated. From budget constraints to performance issues, there are a number of challenges organizations face. But not all complex projects are necessarily difficult. Complex projects are characterized by uncertainty or unknown dependencies–involving stakeholders and systems–that can affect their success.


So, what makes a project complex? Here are a few reasons:

  • It has several user roles/actors, each with different personas.
  • It uses multiple disparate systems that must talk to each other via the application.
  • It must perform complicated algorithmic operations.
  • It has several cause-and-effect scenarios.
  • It requires a first-of-its-kind technical implementation based on R&D and trial runs.
  • It must handle historical as well as real-time data in parallel to process critical outputs that can change with every minute.

The 3-legged stool approach to a complex project

However, project complexity is a challenge we can conquer– it’s not insurmountable.

With the right skills, the intensity of effort, and team involvement, it’s possible to break down the implementation of a complex project into elegant, “doable” chunks. This can eventually lead to the successful completion of the project as a whole.

Just like how a 3-legged stool won’t stand if one leg is broken, a complex project won’t be truly successful unless it includes these three critical areas:

  1. Design
  2. Development
  3. Testing

Each must contribute equally in terms of skills, effort, and involvement. And all three must equally shoulder the complexity of a project. No one department can “offload” the complexity to another, expecting it to digest and hand over a “simple” to-do for them.

Design

There are three components in the Design Phase:

  • Business /Requirements Analysis
  • UI/UX Design
  • Technical Design

Business/Requirements Analysis:

It’s the responsibility of the Business Analyst to do a solid job analyzing the requirements, embracing the complexity, and putting it into understandable terms for the team to consume.

Mind maps, state diagrams, charts, and other visual aids should be used when understanding the requirements.

UI/UX Design

The UI/UX Team must ensure that a simple and intuitive interface is presented to the end-user no matter how complex the logic or processing is behind the scenes.

Complexity must never touch the end-user. And it’s not easy to come up with a simple design that conceals complexity. It’s quite an art.

To achieve this, the Design Team must understand the extent of the app’s capabilities and the nature of the target audience. Superficial knowledge of the application leads to poor design.

Technical Design

The technical leads then have the responsibility of architecting the solution. They must become the masters of the requirements, digesting them in and out.

Only when they establish command over the requirements can they provide for the same in their technical design. A good technical design team knows how to accomplish every need in the most resource-optimized way. And in doing so paves the way for well-planned development.

Development

Once the design stage outputs are ready, the Development Team must consume them and be on par with the Design Team in terms of understanding. They must have a command over the requirements.

Since coding is all about building functionality at low and high levels, the team lead must plan for development. So, every member knows how their individual modules will be accomplished and how it all comes together to frame the bigger picture of the application working as a whole.

It’s natural to get lost in the details and lose the bigger picture. But regular unit testing and integration testing with modules other than their own can ensure developers are geared towards building an application that works seamlessly.

Regular code reviews by peers and the lead also go a long way. And the lead must determine if development is evolving according to plan in the technical design phase.

Testing

The testing or Quality Assurance (QA) Team is the 3rd leg of the stool. It’s critical to ensure that the development output meets what was conceptualized in the design phase.

The QA Team must get a grip on the requirements to the extent that it can go beyond just testing the given requirements and come up with various test scenarios.

The Test Cases Document they prepare must be a valuable tool to make the application robust and capable of handling users’ data and scenarios that will drive the project’s business goals.

An intelligent QA Team would bring up as many real-world user scenarios as possible for the Design and Development Teams to tackle and address.

Conclusion

The fact of the matter is that it’s not about something being too complex to do, but how you do it that makes all the difference.

If every department in the project shoulders the complexity and contributes to conquering it with the right combination of skills and effort, they can lift the entire project to great heights.
At Boston Technology Corporation (BTC), we bring together the right people, technology, and processes to handle projects of all sizes and complexity.

Our expert team of Google-certified professionals will be dedicated to your project and lead to its successful completion. BTC leverages its strategic partnerships with technology leaders such as Google Cloud, AWS, and Apple to develop healthcare products and digital health platforms. We also follow an agile approach while working with innovators across small and large organizations.

This has enabled us to deliver hundreds of solutions over the years, solving various health system challenges. To see how BTC can help you, contact us.

Key Takeaways

  1. Complex projects are characterized by uncertainty or unknown dependencies–involving stakeholders and systems–that can affect their success. With the right skills, the intensity of effort, and team involvement, it’s possible to break down the implementation of a complex project into doable chunks.
  2. Similar to how a 3-legged stool won’t stand if one leg is broken, a complex project won’t be truly successful without these critical areas: design, development, and testing.
  3. It’s essential to understand the business requirements, convey them clearly to teams, and architect the solution with simple UI/UX design, embracing the complexity.
  4. The team lead must have a solid development plan to create individual modules and facilitate the seamless functioning of the solution as a whole.
  5. Regular testing ensures that the development output meets the solution conceptualized in the design phase. An intelligent QA team would bring real-world test scenarios to tackle, improving product quality and adoption.

Comments

You may also like

The Benefits of Managed Testing & Managed Quality Assurance (QA) Services

Testing Services (Quality-as-a-Service)

App Test Cases Are The Lifeline Of Your QA Process

Your healthcare program deserves
all the advantages that digital technology delivers.