Agile as a Philosophy: In the Beginning was Scrum?


Differently from Waterfall, whose foundation “came from the “step-by-step manufacturing models the United Statesmilitary used during World War II”, Agile is a set of 4 values and 12 principles, a philosophy developed inside the software development field. It allows to respond to changing requirements and customer unpredictability through incremental, iterative project work. It is inspecting and adapting on a case by case basis.


However, before the creation of Agile, Scrum was created and usually, when we are talking about Agile, we talk about Scrum. Scrum is an Agile Framework created between the 80s and 90s. As a framework it is composed of roles, events, artifacts and rules.

The term Scrum came from rugby and it refers a method of restarting play in which the players (or team) are packing closely together with their heads down and attempting to gain possession of the ball. The idea is, with this tool, improving the strength and skills of the players (or team): ”Unity is strength”.  


In the article “The New Product Development Game”, written by Hirotaka Takeuchi and Ikujiro Nonaka and published in January 1986, it was presented a new approach of developing products, using a holistic method that has 6 characteristics: built-in instability, self-organizing project teams, overlapping development phases, “multilearning,” subtle control, and organizational transfer of learning. Together these 6 characteristics are like a jigsaw puzzle, being flexible and capable of acting “as a change agent: it is a vehicle for introducing creative, market-driven ideas and processes into an old, rigid organization”. “What we need today is constant innovation in a world of constant change”.  

All the members of the team “work together from start to finish”, which stimulates “new kinds of learning and thinking within the organization at different levels and functions”. With this approach it is possible to develop new products in a quick and flexible way, as underlined by the authors.

Some years later, at the 1995 Object-Oriented Programming, Systems, Languages & Applications (OOPSLA) conference, Ken Schwaber and Jeff Sutherland following these ideas, presented Scrum and its applicability to software development:

“SCRUM assumes that the systems development process is an unpredictable, complicated process that can only be roughly described as an overall progression. SCRUM defines the systems development process as a loose set of activities that combines known, workable tools and techniques with the best that a development team can devise to build systems. (…) SCRUM is an enhancement of the commonly used iterative/incremental object-oriented development cycle.


Important is to refer, still about Scrum, that lately, they wrote what is known as the Scrum Guide, which we can find here: https://scrumguides.org/index.html.


And…Why are we talking about Sutherland and Schwaber?

Well, in the spring of 2000, they are part of the group of 17 developers that would create Agile. This group included other names such as Martin Fowler, Jim Highsmith, Jon Kern and Bob Martin. They met in Oregon and identified two key opportunities, with the goal to speed up development times and bring new software to market faster:      

1)"Shortening the delay of benefits to users in order to resolve the product-market fit and development graveyard problems

2)  Getting feedback from users quickly to confirm the usefulness of new software and continue to improve on it accordingly.”

In February 2001, within three days, the same group of 17 developers met again, at The Lodge at Snowbird ski resort in the Wasatch mountains of Utah, and created the “Manifesto forAgile Software Development”. More commonly known as “The Agile Manifesto”, it respects 4 key values:

1.  Individuals and interactions over processes and tools: it means people interacting with each other through face-to-face communication and, when it is not possible, prioritizing phone calls over emails for example.

2. Working software over comprehensive documentation: having more impactful conversations (not only with the team, but also with the customer) enable the creation of learning and shared understanding, which results in working software earlier in time.  

3.  Customer collaboration over contract negotiation: having the customer feedback regularly not only to keep improving the working software until the final version, but to better understand the customer needs too and helps him/her achieve the success.

4.   Responding to change over following a plan: the key is to adapt, being flexible.


Behind these 4 values, there are 12 principles that should be respected: 

1.satisfying the customer through early and continuous delivery of valuable software;

2. welcome change - "the only thing that is constant is change" (Heraclitus)

3. focusing on the working software and sell it to the customer every few weeks;

4. business people and developers should collaborate and work with each other in a daily basis;

5. supporting and trusting individuals to be motivated and get the job done; 

6. face-to-face communication

7. “working software is the primary measure of progress”; 

8. everybody work together (teams are cross-functional); 

9. technical excellence/quality; 

10. simplicity - "Simplicity is the ultimate sophistication" (Leonardo Da Vinci), what in an Agile Software Development team could be translated in something like that, as described by Chris Davies in his article "Simplicity - the least understood Agile principle" 

"Doing the least amount of work — writing the least amount of code — has a number of other benefits. The less code you write, the fewer mistakes you are likely to make and the fewer bugs you are likely to find later. The simpler the solution, the easier it will be to find those bugs too, even by someone else, and the quicker it will be to fix and retest. It is a virtuous circle."; 

11. self-organizing teams;

12. reflecting and adjusting at regular intervals to be more effective (not only with this project, but also with future projects).


We will talk more about Scrum as framework soon, especially in what respects to its values, roles, events and rules, but the point here is that Scrum appears first and before Agile. However, they are not the same thing. 

Scrum is like the way in which we put Agile in practice, it is "about continuously shipping value to customers", a "framework for getting work done" and "to help you start thinking in a more agile way and practise builiding agile principles into your communication and work". Agile is a "set of principles and values", it is like a culture, as underlined by Megan Cook, Group Product Manager for Jira Software and former agile coach. 

Comentários