Thursday, April 16, 2020

Using Enterprise Architecture Framework (TOGAF) in an Agile Way

Ensuring your organization follows best practices, frameworks, tools & deliverables recommended by an Enterprise Architecture framework like TOGAF is a daunting task. Often, we start with high-energy and commitment but the journey to get it in practice in your organization is not an easy path.

A pragmatic & progressive way towards building an enterprise architecture capability is similar to Agile methodology where we build the product incrementally. Considering a similar mindset, we can incrementally build enterprise capability and every cycle of TOGAF ADM helps towards achieving the same.

Key idea is to identify the top 3 deliverables or artifacts relevant to your organization and also use TOGAF framework in conjunction with the Agile framework in practice. 

Here is an example of going through various phases of TOGAF and brainstorm on identifying Top 3 Deliverables as an output of the first cycle across various phases.  




In conclusion, starting small and build on top of it is key to the success of getting enterprise architecture practice gets established in your organization.

Reference:  
https://pubs.opengroup.org/architecture/togaf9-doc/arch/

Wednesday, March 4, 2020

3 Key Metrics for Measuring Software Quality

As a software architect, software quality is always on top of the priority and we are measured by the quality we deliver. While we have many tools to measure & control software quality, but before the how part, the first step is to figure out what to measure for quality?

In my experience and expertise, there are three dimensions of quality as part of delivering product/software:
  1. Build Quality: Code quality meeting functional & non-functional requirements
  2. Delivery Quality: Delivering Code does not always help; business/executive team likes to measure success in terms of cost, time & quality
  3. Functional Quality: To ensure code propagated to production meets all testing nuances
For each of the dimensions, having a defined "Quality Index" based on metrics applicable for your organization or product helps to build and deliver a better quality product.




Once the metrics have been defined, automating capturing/measuring these metrics, monitoring regularly and acting based on the information to improve iteratively helps to improve progressively.

Based on above, Software Quality Index needs to be defined, measured and baselined for each product:
To conclude, strategy to define software quality is usually tailored for each organization & does not need to be an afterthought.