Applications Services Blog
Get the latest thought leadership and information about the role of Applications Services in an increasingly interconnected world at the HP Blog Hub.

Agile Systems Development (Part 3) – What is Agile?

Agile teaser graphic.jpgIn Part 2 of the series, we explored why Agile Systems Development matters to everyone involved. This installment delves into more detail and introduces the working definition of Agile at HP.

 

Beyond Values and Principles

The first definition of Agile Software Development, as captured in the Agile Manifesto, put forward a system of Values and Principles. This is very useful in that creates a common foundation that practitioners can agree upon, even if they differ with respect to specific techniques, practices, or ways of structuring the flow of work.

 

At HP, we provide applications development and maintenance services across the globe for many hundreds of clients, with thousands of teams. We also create various kinds of products and systems that include vast amounts of software. Our broad interests and scale give us excellent opportunities to become very good at developing and maintaining high levels of expertise and professional mastery. In order to achieve this consistently, we need to invest in ongoing education programs.

Since HP has to operate in such a broad context, the Agile Manifesto definition is insufficient as an education framework that would prove effective as a guide for the development of professional mastery in the practice of Agile Systems Development.

 

A System of Habits

To overcome this limitation, HP has created a system of 24 elements, grouped into four topic categories. Most of these elements should be considered as habits to learn, practice and then perfect over time. This system draws inspiration from diverse origins, such as Scrum, eXtreme Programming, Kanban, Systems Thinking, Queuing Theory, the Theory of Constraints, Lean Six Sigma, Enterprise Architecture, and other similar sources. We also invest in regularly improving this definition as we learn more through practice and experimentation.

 

body graphic.png

 

 

The elements of this system serve as a source of inspiration rather than as a fixed roadmap. Each organization and team may choose its own path and sequence of steps to improvement, focusing on a range of elements or habits to practice and perfect at any one time. Over time, Agile organizations will develop mastery in all these habits. However, the sequence in which they develop their skills will be unique to their specific context.  Here’s a brief review of the four topic categories.

 

Product Management

The habits in this category focus on teaching teams how to structure and adjust the flow of their work. They provide elements to combine into an optimum product development process.

 

For example, when the rhythm of execution and scalability matter, consider the Scrum framework. When you are striving to make work visible and improve the flow of work, consider using a Kanban system.

 

Practices like Daily Stand-ups, use of a Product Backlog, Short Sprints, Retrospectives, and use of Burn-down and Running-Tested-Feature charts are individual elements of the Scrum framework that teams may experiment with gradually, until they develop a fluid, effective and efficient flow of work.

 

Software Engineering

The habits in this category aim to create a solid engineering foundation. They ensure that the specification, design, development and validation of each system component are performed in a smooth flow, with economy of effort and achieve a consistently high level of quality every time.

 

The Story Cards concept helps teams to approach requirements management from the perspective of interactions that create user value. Test-Driven Development and Acceptance Test-Driven Development (often blended into an approach called Behavior-Driven Development) sustain high system quality and maintainability, and streamline requirements management and validation practices.

 

Pair programming increases productivity, raises system quality, contributes to rapid skill development, and improves flow by gradually diminishing skill bottlenecks.

 

Autonomation is the habit of intelligent automation, with a human touch. It promotes the development of a healthy balance between automation and manual activities, minimizing overall waste. Continuous Integration is a complementary habit that ensures the code base is maintained in a working state at all times (no “broken” code is accepted into the code repository). The system gets built frequently, so that any compilation and integration defects can be detected as early as possible, reducing the cost of quality.

 

The practices of managing Technical Debt and refactoring code ensure that the system structure is indefinitely kept simple and understandable. For example, when shortcuts are taken in order to expedite the delivery of a particular component, time must subsequently be set aside to replace the sub-optimal code with simpler, better engineered alternatives. Teams that neglect this discipline will see their velocity gradually decline, as the cost of quality increases.

 

The Incremental Deployment habit ensures that sets of valuable features reach the user community at the earliest possible time, keeping the inventory of unfinished assets to a minimum.

 

Team & Roles

The habits in this category focus on the human, organizational development and architecturally significant factors that influence systems development.

 

The Whole Team habit promotes cross-functional team composition, and encourages the inclusion of business domain specialists into the Team. The Self-organizing Team habit improves capacity utilization, reducing skill bottlenecks and delays, and streamlining the flow of work.

 

The Product Management habit refers to the discipline of managing systems development more like a product development flow rather than a project management exercise. Projects are finite endeavors, set up to achieve a given objective. Products, on the other hand, may be unbounded in time, their life governed primarily by economic relevance. By practicing Product Management, systems development organizations place more emphasis on consistent delivery of customer value over time.

 

The habit of using a Product Owner (a central element of the Scrum framework) provides an effective means of ensuring that the systems under development maximize customer value in the shortest possible time-frames, with optimum use of available resources (people, time and budget).

 

The System Architecture habit is increasingly vital in more complex environments. It ensures that architecturally significant concerns are dealt with effectively by the systems development organization. For example, this habit includes the techniques and pattern languages of Agile Modeling and Domain Driven Design, which provide excellent guidance on cost-effective systems development.

 

Management Practices

The habits in this category focus on the management aspects of the systems development process.

 

The Standard Work habit refers to the practice of visualizing the flow of work and explicitly articulating each Team’s best practices for specific techniques or work practices. The existence of Standard Work does not imply that there is a universally accepted “best” or fixed way of achieving something. Instead, the Standard Work representations are expected to be updated frequently, based on the results of improvement experiments.

 

The Measurement System habit promotes the practice of measuring the value delivered by each system feature included in each incremental deployment. A robust measurement system may derive such value assessments based on specific system usage patterns. While perfecting this habit, teams may also include various aspects of Value Engineering.

 

Use of Practitioner Coaches is an excellent means of accelerating the pace of organizational improvement. In sports we wouldn’t dream of professional teams showing up for a match without training under the watchful eye of an experienced coach. Agile organizations recognize this wisdom, and invest in coaching teams in order to develop peak performance.

 

The Visual Management System habit promotes visibility of the work items as they progress through the work process, and encourages teams to use various information radiators.

 

The Go See (Gemba Walks) habit helps executives and managers to develop a deep understanding of the challenges and issues faced by the teams doing the actual work that creates value for customers.

 

The Continuous Improvement (Kaizen Events) habit supports continuous improvement by enabling Teams to achieve breakthroughs by identifying, analyzing and addressing the root causes of key impediments and improving the system through focused countermeasures.

 

Agile Transformation is Fractal

I’d like to emphasize that these Agile habits are not just applicable to individuals or small teams. Increasing numbers of businesses (both well-established and fresh start-ups) are learning how to gradually become truly sustainable, and get better prepared to thrive through market disruptions. In such organizations, continuous improvement becomes the normal way of life in all areas and across all levels of scale.

 

Consider fractals. These mathematical constructs have the unusual property of displaying roughly the same shape when visualized at different levels of scale. Just as numerous natural phenomena have fractal features, the patterns of habits practiced in Agile organizations are very similar across all levels of scale, and in all areas of work.  Put another way, it is insufficient to just pursue agility at an individual level. If I personally subscribe to the values of the Agile Manifesto and align with the principles behind it, but my teammates don’t, then our Team won’t manage to master agility.

 

It is also insufficient to pursue agility just at a team level. If my team has made a shared commitment to continuous improvement and we’re actively investing in perfecting our way of work, but other stakeholders insist on using a fixed mindset and associated stagnant practices, then our improvement efforts will gradually grind to a halt. We will be forced to live with various sources of waste that could have been otherwise eliminated.

 

However, once an organization embraces agility throughout its operations and at all levels of scale, it can confidently develop true sustainability through steady investment in continuous improvement. As we’ve discussed in Part 2 of this blog series, such organizations actively seek to perfect their ways of work in the pursuit of customer delight, while providing for joy in work for people.

 

The story so far

In this installment, we’ve introduced the working definition of Agile at HP, which expands upon the values and principles of the Agile Manifesto through a system of 24 habits. This system is a useful working definition, and it’s subject to continuous improvement as we learn more over time.

 

In Part 4, we’ll examine how to take advantage of the Agile mindset to successfully launch your organization on a path of continuous improvement - and then keep it advancing steadily on that journey.

 

Other blogs in this series: 

 

Related links: 

 

About the Author

 

Horia Slușanschi, Agile Coach, Hewlett Packard Company

Horia serves as the leader of the HP Agile Mentoring Office and the HP Software Engineering Profession. He is passionate about helping professionals to perfect their practice of effective habits inspired by the Agile mindset. He is trained as a Lean Six Sigma Black Belt practitioner, and holds a PhD in Computer Science. Horia also serves as the Service Delivery leader of the Project Management Institute’s Agile Community of Practice. Reach him at horia@hp.com or @KiwiHoria.

Leave a Comment

We encourage you to share your comments on this post. Comments are moderated and will be reviewed
and posted as promptly as possible during regular business hours

To ensure your comment is published, be sure to follow the community guidelines.

Be sure to enter a unique name. You can't reuse a name that's already in use.
Be sure to enter a unique email address. You can't reuse an email address that's already in use.
Type the characters you see in the picture above.Type the words you hear.
Search
Showing results for 
Search instead for 
Do you mean 
About the Author
Horia Slușanschi serves as an Agile Coach leading the HP Agile Mentoring Office and the HP Software Engineering Profession. He is passionate...


Follow Us
The opinions expressed above are the personal opinions of the authors, not of HP. By using this site, you accept the Terms of Use and Rules of Participation