“ Happy Architecture ”, what does this really means?
When it comes to product development it consists of many stakeholders.
- Customers – who are investing on the product
- Users – who are benefited from the product
- Developers - Who design and develop the product
There are different levels of expectations of those three parties, as their view of the product and the expected out come from the product are different. How we can satisfy needs of all the stakeholders is the challenge. Let’s first see what are different expectations of these parties.
“An Architecture fulfill expectations of all stakeholders in building a Winning product”, is referred as a “Happy Architecture”. This will create a culture of happiness where all the stakeholders are constantly happy about the work they do and the outcome they get.
What is a Good Architecture?
There is always a misperception many have that Good Architecture refers to a Complex Design where we can show the technical superiority. But many projects have stranded in complex designs without creating a business value. Good Architecture will use the technology in a smart way where it will meet the ultimate goal of producing a Wining Product.
Happy Architecture Decision Making
By the definition architecture is
“The process of defining a structured solution that meets all of the technical and operational requirements, while optimizing common quality attributes such as performance, security, and manageability”
We can see by the definition it is a process of decision making considering wide range of aspects. Those decisions have direct impact on expectations of all 3 parties involved in producing a winning product. There are so many new concepts, architecture patterns and services available in the industry which were immerged and got matured with the time to solve the problem of making a Happy Architecture.
While making architecture decisions we need to consider following factors.
Choosing Technologies in a smarter way
World is full of technologies, tools and frameworks. Choosing the right technology which will solve the exact problem which the product intends to solve is challenging. Technology excellence is the major factor which would help selecting the right technology for a smart design. While choosing we need to make sure we full fill the expectations.
Should be able to solve the problem
Technologies we choose for the architecture of the product should be able to solve the business problem in a smart and effective manner so we could deliver the system in a shorter period meeting the budget and adding more value.
Flexibility and Adoptability
Tools or frameworks even though those are trending in the market doesn’t mean we should jump and adopt that. Throughout the history we have seen there were so many top trending frameworks and tools which disappeared in few years of time because those were not flexible enough to meet the markets trends. Developers are always very keen to adopt new frameworks are tools as they are so keen on learning and exploring new technologies which has lot of pluses but it could effect in either way if we will try to apply frameworks are tools which really doesn’t add any business value to the product. Need to do proper analysis on What, Why, When & What if on these frameworks before we choose the framework.
- Managing Product Life cycle
- Creating Business Value
- Time to Market
One of the main expectation of customer and developer is to release the product early as possible to the market. Adopting an architecture pattern like micro services will helps a lot to release the product quickly to the market so the customer could gain the benefit of winning more users and win the market. Also as there are so many frameworks and services out there specially with the emerge of cloud computing developer’s life has become easy. So without going for from the scratch development it is always recommended to use as much as services and tools available in the market to solve the business problem. For an example to handle the authentication and authorization of the system there are many services which guarantees the security and more matured products out there where we can easily integrate with our product so we can reduce the time to market. Also as these products are very famous end users will have better user experience as they are already using these.
Building Ecosystems, Not Just product
World is so interconnected today, if we to develop a Winning Product we cannot live in our own island. It a clear fact that most of the market winning products having a huge eco system built around that product. It is a very important factor of a Winning Product architecture decision to identify which ecosystem this product belongs to. By identifying the ecosystem, we need to take some design decisions on how to make the product compatible and integrated with the ecosystem. This ecosystem could be a key feature for a user and customers as it increases the usability also the market share.
In summary we have seen it is always a big challenge to fulfill the expectations of all the stakeholders of a winning products as some of their expectations are contradictory. We have to change the way we think and make architecture decisions is a smarter way so it could continuously make everyone happy on work they do and output they get. Technology excellence is a key feature in the decision making on choosing right technology to make a “Happy Architecture” to build a “Winning Product”.