Uncertainty is a constant of projects or companies, whether if you’re testing business model, receiving incomplete specs from a customer or just because unexpected - defects, unforeseen opportunities, competitors, new requirements, etc. - happens.
The waterfall model, which consists in writing all requirements first then writing technical specs before starting to implement, has proven not to work in this kind of situations but continues to be used in some companies.
Three popular methods : Scrum, XP and Lean - all are called Agile - help you deal with uncertainty by :
- Delivering frequently a product or service to a set of users, even if it’s not complete
- Identifying quickly defect and possible enhancements
- Adjust to change, while preserving team / product
- Improving the production process and the team continuously
You have a non IT business ? Don’t close the page yet : some of those practices still apply to you: Agile has roots in businesses that have nothing to do with software.
Most of us have seen failure in our IT experience : software that nobody wants, bugs, unfriendly UI, long change requests implementation or just long adoption of the new solutions.
Agile methods are born from the Agile manifesto, which brought back some sanity in the way projects were led by preferring :
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
All the following Agile methodologies listed here are in fact frameworks, in the sense that you can pick the practices that suits your need / organization.
Scrum brings a customer-centric process where the team develops software in time boxed periods and regularly delivers it.
A key member, the Product Owner, is representing the customer and must stay with the team to define priorities, answers questions and maximize the value of product. Another member, called ScrumMaster, acts as a facilitor by assisting communication within the team and by protecting it from disruptive elements external to the project. The cycles are punctuated by meetings focusing either on daily progress, customer feedback, planning and retrospectives which improve the value of the product for customers and the productivity of the team.
XP focus on software quality through continuous discipline for a more productive process.
It shares some of the Scrum’s best practices : short development cycles, involvement of customer, collective ownership/responsibility , the embrace for changes among others things. It also has distinct technical best practices. The most notable ones are pair programming (two developpers working at a single computer), peer code reviews, necessity of coding standards, continuous integration and test driven development (create the tests first, bebore the code). This discipline, based on the exchange within the team, encourages the sharing of knowledge, skills upgrading and ultimately the quality of software production.
Lean drives the team to focus on value-generating activity and to eliminate any unnecessary element of production.
The need to remove wastes comes from the manufacturing production of Toyota. Its success in factories made it expand to others services like administrative ones or software development, but it can also apply to a company strategy as written by Eric Ries in his book “The Lean Startup”. Eric explains how experiments with real customers can help adjust the business model by invalidate bad hypothesis early : it consists in repeated small iterations where a application or service - minimum viable product - is put on the market/tested by customers, feedback is mesured (by choosing the right KPI) and used to adjust hypothesis or implementation.
Agile and complementary
All three methods belongs to the agile family and thus have similarities (e.g. small cycles). What I find really interesting in the three methodologies is that they can be applied on all several levels of a project - from the vision of what to build, to the execution -, they complete themselves. In small companies like startups, every stakeholders can use them, whether they are managers, developers, project leaders/scrum master.
As saw before, Agile is not limited to IT business, and like Toyota, others big players are using it to save money while keeping the quality of their products :
With the lean, Nestlé saves more than 1.2 billion euros per year. José Lopez, Executive Vice President of Nestlé - Source
Even the technical assumed XP has best practices that can also be used in others domains like sales or crafting: for instance pairing, sustainable pace, team reviews, collective ownership. A shop can test products, store windows, ways to present or to address its customers in order to identify what generates value and what’s not, as long as they have a valid way to measure it. Since customers and fashion change, this practice should be permanent - agility is not a goal, but an ongoing process.
2nd and third pictures from menlopics