Posts

Agility – Beyond Software Development

The digital technology industry has been moving in a very fast pace over the last decades. Companies that are unable to adapt have been left behind (Nokia, Kodak, etc.). Agility is a key skill for a company to remain competitive.

Since the Agile Manifesto for software development, declared in 2001, several software companies have been moving towards this mindset. Some companies went further, and adopted Agile way of development in industries other than software industry.

bobdylan_2275506bIf your time to you is worth saving
Then you better start swimming, or you’ll sink like a stone
For the times they are a-changing.

-Bob Dylan

Is it possible for any company to apply Agile ? How about big companies, with complex organizations, top-down policies, rigid processes, over-specialized teams, and other bureaucratic burdens ? And above all, what is Agile and what is not Agile ? First, let’s review the life-cycle of a product.

Product life-cycle

A product life-cycle can be broadly divided into 4 phases as shown on the figure below:

Picture5
Product Life-Cycle

  1. The ‘Concept’ phase: in this phase the product is being defined, we study the market, the competition benchmark (including patents), the customer needs, etc. We study the feasibility and the profitability. We define our targets: the product definition, the market, the customers, the price, the cost, and so on. Creativity and Innovation are key in this phase.
  2. The ‘Development’ phase: in this phase, the concept is transformed into a validated design ready for mass production. Computer-aided design (CAD) and Model-based design (MBD) are very useful tools for designers and engineers in this phase.
  3. The ‘Manufacturing’ phase: this is the mass production phase, that transforms the product from design sheets to the customers’ hands. Lean Manufacturing practices, and Industry 4.0 revolution help ensuring a more efficient industrialization. Time, Quantity and Quality are key in this phase.
  4. The ‘Market’ phase:  the product in now available in the market. It needs to be distributed and maintained. The customers need to be assisted. Communication and Availability are key in this phase.

What is Agility? And Why?

In heavy industries (automotive, aerospace, construction, machine-tools, robotics, etc.), one important challenge is the mass production (manufacturing phase), that is, how fast can a company manufacture a high quality product to deliver to the customers, in time. The recent Tesla Model 3 production hell is an example that illustrates this fact.

Several methods had been proposed and tested to optimize the manufacturing phase (Kanban, Value Stream Mapping, Genchi Genbustsu, Just-in-Time, etc.), with the main goal being to reduce waste (“Muda” in Japanese) in the manufacturing process. These methods can be grouped under the Lean Manufacturing umbrella, which was promoted mainly by the Toyota production system.

In Software industry, on the other hand, the product has a very short life-cycle. Between having a new concept, and launching it to the market, the main burden is the development: how to release a stable software with minimum amount of bugs. Mass production (deployment) is then relatively simple and inexpensive, in comparison with heavy industries. Furthermore, software user needs evolve continually, as software updates can be done easily and virtually costless (hardware is often impossible to update). This results in a very competitive market that drives software companies to adapt their development mindsets and organizational culture in order to respond quickly to the market changes. Otherwise, they will be left behind.

What is Agile?

Picture12Agility, as a term, can be defined as the ability to move quickly and easily.

In industry, it can be simply defined as a the ability of an organization to quickly respond to the customer needs, and to a market change (new competition, new technologies, evolving customer needs and expectations, etc.). As declared in the software development Agile Manifesto, Agile is a mindset, manifested in 4 values, and based on 12 principles. This set of values and principles need to be shared among teams and hierarchy, to become part of the organization culture. Consequently, leaders, managers and developers will act and take decisions that reflect this shared mindset. Practices, methods and tools that claim to be Agile need to embrace the 4 values and 12 principles. Otherwise, they can easily slip into the old-school mindset.

Even though the Agile Manifesto has addressed Software development only, it can be argued that the Agile values and principles remain valid for any product development. Here is the Agile Manifesto formulated for any product development: Agile values

  • Individuals and interactions over processes and tools
  • Working Product over comprehensive documentation
  • Customer Collaboration over contract negotiation
  • Responding to Change over following a plan

In a nutshell, Agile values the human over the process, and the product over the project. It encourages collaboration with the customer, frequent and early delivery and feedback, welcoming changes even late in the development, accepting mistakes (failing fast to learn fast), letting teams self-organize, etc. To learn more about Agile principles, refer to our previous post on the topic “What is Agile Software Development ?” and the Agile Manifesto website. In the sequel, we will highlight to main properties of Agile way of development:

  • An iterative and incremental development.
  • A human-centric mindset.

Incremental.png

Iterative.png

A Human-centric Mindset

Agility aims to put the human (the customer and the developer) at the heart of the development, using common-sense management, and embracing values such as Trust, Flexibility, Transparency, Dialogue, etc. The following two human-centric aspects are very important in Agile mindset:

  • The users/customers are much more than a contract; they should be put at the heart of the development, so that we can respond better to their needs. Customer satisfaction is the ultimate goal of the product/service development.
  • The people who are involved in the development should be taken care of as individuals and teams. They must be given the autonomy and trust environment they need. They are the best suited to take decisions concerning development issues.

Iterative and Incremental Development

Traditional way of product development often uses waterfall or V models, where the requirements are gathered at the beginning of the project, and the product is delivered at the end, after being designed, implemented and tested by the development teams.  On the other hand, Agile way of development recommends to deliver frequently (a sort of iterative very short V cycles), and get a feedback on each delivery. But how can we deliver frequently? And what do we deliver?

Obviously, the complete product cannot be delivered early in the project, instead, a minimum viable product (MVP) must be delivered. An MVP, as its name suggest, is a product with just enough features, that can be tested by the customer, in order to get feedback after each iteration. Customer suggestions and new requirements are welcomed. After each iteration the team reflects on previous iterations and plans and prioritize tasks for the following ones.

Fail Fast, Learn Fast.

Picture14.jpg

Depending on the industry, the number of people involved in each iteration, the iteration period, and the MVP definition may vary.

0.jpg

Beyond Software Development – Agile at Scale

As mentioned above, Agility mindset can be applied in several industries. This being said, the practices, methods and tools used to be Agile need to be adapted to each industry. For instance, iterations in Software industry can be 2-weeks-long. This is not feasible in automotive or aeronautics industry, where iteration will be rather of several months period to deliver an MVP. Note that most of today’s industries have embedded systems, with embedded softwares, iterations of embedded software MVP delivery can be shorter.

Here are some examples from automotive, aeronautics and banking industries.

Automotive Industry

Renault SA
WikiSpeed

Aeronautics Industry

SAAB Defense

scrum_in_manufacturing_a_motivational_example.png

Banking Industry

ING Bank

Does Agile work everywhere?

Agile_Conditions.png

Misconceptions about Agile

0_C-ZhzXHDLU0Pvzo5

They exist some misconceptions about Agility. Here are some of those myths:

  1. Don’t make documentation at all: this may lead to a lot of waste of time. Agile means: focus on the product, don’t obsess about the documents. The measurement of progress is the working product.
  2. You don’t need a plan: planning is crucial in Agile practices, we need a rather realistic iterative plans. Every iteration should have a good plan.
  3. No management, no discipline: there is need to project management and discipline in Agile approach, but with a different mindset than that of the old school approach. Instead of using top-down management, leaders need to delegate at the right level of hierarchy, where decisions can be made.
  4. Agile = Scrum: Scrum is only one practice that embraces Agile mindset. People are often not so comfortable with abstract concepts, and prefer more concrete structures. This is why Agile is often mistaken for some practices and methods (Scrum, Kanban, etc.). Be careful about that, what matters is the team spirit and mindset, not the methods and tools they use.
  5. It works only for Software development: as a mindset, it can be applied to any product development, including heavy and complex industries.
  6. It works only for young employees: wrong.
  7. Agile is meant to save money: Agile is about adapting to change and satisfying the customer needs. This may reduce the development cost. However, in some contexts, Agile might result in several re-work, and might require more money to provide an excellent product, rather than saving money to have a mediocre output.

Further Readings

1 thought on “Agility – Beyond Software Development”

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 )

Connecting to %s