Is quality a pond or a flowing river across the software development organization.

quality.as.a.culture

 

Many times we notice that quality is not practically followed across the software development organization but is found in some pockets or is decorated on the walls of the company in nice fancy frames.

Quality is to be followed from team formation to delivering value to the customer. Lets look at each stage on how quality can be imbibed in all the stages of development.

Team formation –

Recruitment needs to focus on recruiting members, who would imbibe quality values in practical sense. This can be achieved by giving practical problems during interviews, which will validate their approach to solve problems and would also validate their understanding of the fundamentals, which is critical to quality.

Planning –

Business needs to invest time to infuse quality in delivering value to customers.If the management is pushing hard with deadlines all the times – the team might try cut corners. I liked the statement from spotify’s blog, which states that “We don’t deliver on date but we deliver on quality”

Rather than start developing business features from day one, Initial stories should include some of below mentioned items(as needed)

1. Development teams should be trained on skills, such as domain, engineering practices(refactoring,Test driven development,..), process, tools and any other skills required for development.  or else it will be like sprinting without wearing right shoes, and eating right diet.

2. High level architecture should be laid out.

3. Infrastructure such as continuous integration, tools for unit, functional,.. automation should be made ready during initial sprints.

4. Practices such as Acceptance test driven development(ATDD) needs to be followed during the iteration.

Development –

The team  needs to follow practices that will provide instant feedback about the quality, such as Test driven Development, peer code review, team code review, static code analysis, Continuous Integration(CI) and automated test system.

Reviews needs to be very open and directed towards the objective of delivering quality product.

As there is no end to improvement, team should think in every retrospective on ways to improve the quality. 

Testing

Shift left strategy needs to be applied for testing the sprint output as early as possible.

Look at all the testing and make sure to move to left to identify the issues early on.

For example – Team should look into moving even performance testing to start, and it does not have to be perfect from day one.

Coaching-

If the team does not have the skills for adopting the practices of agile, it is important to to get a hands-on coach, who can coach the team on technical practices such simple design, refactoring, TDD and also general agile practices. As this practices require attitude shift, coaching is important to adopt these practices.

Knowledge Sharing –

Team members with similar skill set(developers of specific technology, testers,…) can meet on some defined frequency to share the good practices that are used in different projects within the company.

Quality needs to be a common denominator across locations.

Metrics

Metrics should be based on the customer value, how efficient are we and are we continuously improving and striving to improve.

Example – how much time it takes to get feedback from customer, product usage

what is the usage of features by customers, ROI from features being built. 

Metrics should be transparent at all levels so that same metrics is available to all members. so that teams can retrospect and strive to continuously improve.

IT , R&D, business should work together as only one section of the team cannot deliver quality.

Customer –

Quality is also providing what exactly customer wants and not to flood customer with unwanted features that we want the product to have. Customer does not care about the technology or methodology used for development, they are are interested in the end product.

Business team needs to have courage, in removing existing features from product, if they are not providing value to customers.

How much closeness is maintained with customers to understand their needs, context to provide them the solutions.

Quality needs to flow from the time members are recruited and should involved all the stakeholders that are contributing directly or indirectly in the software development process.

We have adopted agile to deliver fast but have we also adopted all the practices that needs to be taken care from quality perspective.

Quality cannot be enforced at just one step of the software development process but should be thought considering the entire flow.

 

 

Advertisements

About aslamhirani

I am working from last 19+ years in areas of Product development, agile coaching, software R&D process consulting. I have been working in agile development model from last 10 years and coaching agile teams from last 6 years in areas of agile assessment, agile adoption, agile transformation, agile scaling, distributed agile development and agile competency development. I work with software R&D organizations to help them improve their effectiveness and efficiency with reuse, process improvement in development and testing, competency development, innovation in R&D, collaboration improvement across teams, automating devops and so on
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s