Wednesday, October 28, 2015

Agility vs. Quality

Agility should not be translated to sacrificing planning, management guidelines, and quality assurance.
Agile has emerged as major software development and management methodology, it is a set of principles, philosophy, and mindsets to either build software or run a business today. However, from the quality perspective,

Agile is one of those things that's simple in principle but may be very challenging in practice. How can you maintain quality whilst trying to become agiler?

Agility is “the ability of the business to adapt rapidly and cost-efficiently in response to changes in the business environment.” What do you put in place or how would you then structure your business to ensure that the ability of your business to adapt rapidly. The focus is necessary to maintain or improve quality because there can be positive impacts as well as negative needs to be on capabilities. The "people, process, technology" must be defined and maintained to support the quality goal. The right people (those who share the business objective and have the requisite skills to deliver it) using processes that are valid and evolving can adapt and adopt technology that maintains and expands capabilities that support strategies and priorities in accordance with the corporate culture.

Agility is targeted for enhancing business on-demand. Quality is a function of scope, budget, and resources. Agility is a model of performance without sacrificing the basic modularity of the business functions. Thus, the better the management control on delivery, the better the quality and vice versa. This is why the Agile approach involves users early in a process of creating the "things," and uses them continuously to "assure quality." Agility is dependent upon planning the roadmap and executing accordingly. Any misalignment between these factors impacts quality. Agility should not be translated to sacrificing planning, management guidelines or life cycle of processes, projects and/or products. Responsibility is a primary factor in the agile development model. Responsibility is effective because it includes shared responsibility with others; the activities and the group are agile, not only one person, to ensure quality delivery.

AUTOMATION->QUALITY->AGILITY. The ability to deliver a quality product is a matter of clear focus on the things that deliver quality. Remove the obstacles to quality, clearly describe what quality looks like, and practice the activities that produce quality results. The long-term cost of cutting quality will eat your attempts to change rapidly and stifle agility. The ability to change quickly requires the ability to train your staff on changes, the ability to design changes quickly that will work, the ability to implement cost-effective solutions quickly to enable the changes, and the willingness of the team/staff to make changes that may not be comfortable. Also, you need to automate all your quality assurance tasks so you can be agile in your development process. Agility is a must in today's cloud world where the customer expects everything on-demand and cost-effective. No way you can get that doing anything manually and especially quality checks and you can not compromise on that. Start early in your quality checks and automate and be agile.

There's no one size fits all when it comes to methodologies. Every organization and team is unique and has different strengths and needs. Agile takes more disciplines, not less. It is not just the methodology by which the quality software projects can be ensured; but the mindset, the talent, the discipline, the methodology, the process, and the measurement need to be well aligned, in order to improve product quality and customer satisfaction.


Post a Comment