Slide 1

Slide 1 text

Old Crafts* Software craftsmanship, Agile, whatever new thing that’s actually old Alpha version

Slide 2

Slide 2 text

MERCI AUX SPONSORS ÉMERAUDE DIAMANT TOPAZE

Slide 3

Slide 3 text

Who? Sam Cranford @[email protected] More than 20 years agile experience Coach / Tech Lead / Manager @[email protected] - linkedin.com/in/samcranford Talk in fr_US ← let’s win this!

Slide 4

Slide 4 text

Why?

Slide 5

Slide 5 text

I got really tired of people saying “your new idea/procedure/process will never work, it’s too weird/counterintuitive/risky”

Slide 6

Slide 6 text

So I thought I’d research and share our common, often lost, history.

Slide 7

Slide 7 text

Interactive part Talk to your neighbor, what do you think the early influences of Agility were?

Slide 8

Slide 8 text

Anyone who read the early documentation knows that Agile has many influences

Slide 9

Slide 9 text

Lean is an obvious reference, as are many modern computing evolutions.

Slide 10

Slide 10 text

Historical influences Lean manufacturing and the Toyota Way from the 1980s and its focus on efficiency, value delivery, and the involvement of cross-functional teams Empirical Process Control and Deming's work starting in the 1950s and its emphasis on regular inspection and adaptation through iterative cycles Open Source Software development, GNU & co from the 80s and 90s, but with roots much earlier and its culture of collaboration, self-organizing teams, and shared ownership of outcomes. Complexity Theory and Systems Thinking starting in the early 20th century and their insights on uncertainty and interconnectedness. Military experience and theory, with its emphasis on mission-focus, adaptability in emergent situations and embracing failure as a learning opportunity. Artisanal work and its focus on skills, attention to detail, continuous learning and innovation.

Slide 11

Slide 11 text

Did you know that better ways of working is an ageless pursuit?

Slide 12

Slide 12 text

Where to start?

Slide 13

Slide 13 text

Why not at the beginning?

Slide 14

Slide 14 text

Was prehistoric man agile?

Slide 15

Slide 15 text

He was certainly cooperative, adaptive and innovative. Did that influence the agile mindset?

Slide 16

Slide 16 text

Hold on, what is an agile mindset?

Slide 17

Slide 17 text

Interactive part, part 2 Talk to your neighbor, what do you think defines an Agile mindset?

Slide 18

Slide 18 text

The lean/agile mindset is a way of thinking that emphasizes the importance of continuous improvement, collaboration, flexibility, and customer focus in the development and delivery of products and services. * One person's view, at a point in time *

Slide 19

Slide 19 text

Agile / Lean Mindset principles ● Continuous improvement ● Respect ● Inclusion ● Collaboration ● Quality ● Value ● Change ● Compassion ● Optimize ● Prioritize ● Improvise ● Courage ● Focus ● Commitment ● Openness ● Flow

Slide 20

Slide 20 text

The Agile Manifesto https://agilemanifesto.org/

Slide 21

Slide 21 text

Manifesto for Software Craftsmanship https://manifesto.softwarecraftsmanship.org/

Slide 22

Slide 22 text

Other manifestos

Slide 23

Slide 23 text

Worker organizations The Code of Hammurabi from ancient Babylon: granted fair wages and food and water rights Medieval Guilds: protected interests of works, wages, quality of work Factory acts: limited hours and improved working conditions Labor unions and organized labor: carried on the traditions of protecting workers and their rights. Corporate Social Responsibility Luddites

Slide 24

Slide 24 text

The search for better A key agile/lean principle is Continuous improvement, or Kaizen. This is one of the oldest guiding principles known to humanity. Prehistoric people were continuously trying to improve their abilities - hunting, tool building, communal living. As civilization grew, peoples consistently looked to improve their lot, often communally, though not always.

Slide 25

Slide 25 text

Why did Agile put emphasis on continuous improvement? Because the 80s and 90s were neoliberal heydays in which much intellectual work was over managed and submitted to strict processes and procedures. Workers rights were heavily scrutinized and controlled. Union busting was on the rise. Inevitabilism* vs alternatives *defaultism

Slide 26

Slide 26 text

Continuous improvement The search for better ways to develop software, to organize teams and delivery working software to real customers thus became an acceptable way to push back against the bureaucracy and Dilbertesque control of the day.

Slide 27

Slide 27 text

This continuous search for improvement was also shared by many previous societies and movements The Babylonians, ancient Greeks and Romans and every civilization was in constant quest for improving their processes and ways of working, their religions, and their warfare.

Slide 28

Slide 28 text

Collaboration https://en.wikipedia.org/wiki/Collaboration#/media/File:3d10_fm_de_vilafranca.jpg

Slide 29

Slide 29 text

Why the sudden interest in collaboration? Traditional software development methodologies often prioritize individual work and rely on strict processes and documentation to manage projects. A typical project might have specifications written by one team, who would then have them validate by other team with whom they have nominal contact, to then pass them on to the development team who is expected to implement them as software, only to pass it on to another team who would test the software extensively before finally passing it on to customer representatives for final validation before going live. All without much collaboration. We know how that ends.

Slide 30

Slide 30 text

Complexity and moving targets When collaboration is increased, teams are better positioned to manage the complexity of the constantly evolving needs of the users and the marketplace. Collaborative teams work closely together to share knowledge, solve problems, and make decisions together. This helps to reduce the risk of misunderstandings, delays, and errors that can occur when individuals work in isolation. Collaboration also means cross-functional teams, including all aspects of the business. This creates a shared understanding of the goal. They collaborate together to solve the customer problem.

Slide 31

Slide 31 text

Quality https://en.wikipedia.org/wiki/Dorodango

Slide 32

Slide 32 text

Dr. W. Edwards Deming, AKA Mr. Quality W. Edwards Deming was an influential quality management expert . 1. Continuous improvement - Deming emphasized the importance of continuous process improvement. Agile methods like Scrum also value continuous improvement, with regular retrospectives and adaptations. 2. Focus on quality - Deming believed that improving quality leads to higher productivity and long-term business success. Agile software development also focuses on building quality in, with practices like test-driven development, refactoring, and continuous integration. 3. Adaptive management - Deming advocated adaptive management and flexibility in organizations. Agile methods are also adaptive, with frequent changes in requirements and plans. They value responding to change over following a rigid plan. 4. Iterative development - Deming's Plan-Do-Study-Act cycle involves iterative learning and improvement. Agile development is also iterative, with incremental development in short cycles. 5. Teamwork - Deming emphasized the importance of teamwork, collaboration, and cross-functional cooperation. In agile software development, self-organizing teams that collaborate closely with business users are a key principle. 6. Eliminating waste - Deming focused on eliminating waste and optimizing processes. Agile and lean software development also aim to eliminate waste, reduce rework, and optimize the development process. 7. Decentralized control - Deming believed that management should delegate authority and autonomy. Similarly, agile teams are self-organizing, with team members having autonomy and control over their own work. Management empowers teams rather than micromanaging them.

Slide 33

Slide 33 text

Deming and his 14 points for management (1988) 1. Constancy of purpose 2. The new philosophy 3. Cease dependence on mass inspection 4. End lowest tender contracts 5. Improve every process 6. Institute training on the job 7. Institute leadership of people 8. Drive out fear 9. Break down barriers 10. Eliminate exhortations 11. Eliminate arbitrary numerical targets 12. Permit pride of workmanship 13. Encourage education 14. Top management commitment and action https://leanandkanban.wordpress.com/2011/07/15/demings-14-points/

Slide 34

Slide 34 text

Wabi Sabi Wabi Sabi is mentioned in Kent Beck’s Extreme Programming Explained. It is a key concept that is sometimes forgotten. The aesthetic is sometimes described as one of appreciating beauty that is "imperfect, impermanent, and incomplete" in nature. It can be interpreted as finding the usefulness of an iteration of work, that provides feedback and insight to the product. https://wiki.c2.com/?WabiSabi

Slide 35

Slide 35 text

Open & Honest Communication

Slide 36

Slide 36 text

Honesty Open and honest communication is one of the greatest enablers of agility. Without it, it is virtually impossible.

Slide 37

Slide 37 text

Interactive part, part 3 Talk to your neighbor, can you think of any other significant (or not) influences to our mindset?

Slide 38

Slide 38 text

Other major influences Maybe, maybe not

Slide 39

Slide 39 text

Taoism and Buddhism Taoism is an ancient Chinese philosophy and religion that instructs believers on how to exist in harmony with the universe. The core values are ● Simplicity ● Flexibility ● Adaptability ● Collaboration Buddhism is one of the world’s largest religions and originated 2,500 years ago in India. Buddhists believe that meditation, spiritual and physical labor, and good behavior are the ways to achieve enlightenment, or nirvana. The core values are ● Mindfulness ● Simplicity ● Continuous improvement ● Direct experience

Slide 40

Slide 40 text

Stoicism Greek and Roman philosophy of life 1. Acceptance of change 2. Focus on the present 3. Embrace challenges 4. Emotional resilience 5. Value-driven mindset 6. Detachment from outcomes

Slide 41

Slide 41 text

Ubuntu Ubuntu is an African philosophy and worldview that emphasizes the interconnectedness of all things and the importance of community. The principal concepts of Ubuntu include: 1. Interconnectedness: Ubuntu emphasizes the interconnectedness of all things and the idea that everything is interdependent. This includes the relationship between people, the environment, and the spiritual world. 2. Humanity: Ubuntu places a strong emphasis on humanity and the importance of treating others with respect, dignity, and compassion. It recognizes the innate value and worth of every individual and promotes the idea that we are all part of a larger human family. 3. Community: Ubuntu emphasizes the importance of community and the idea that we are all responsible for the well-being of others. It recognizes that we are stronger together and that we have a moral obligation to support and care for those around us. 4. Collective responsibility: Ubuntu emphasizes the idea that we all have a collective responsibility to work towards the greater good and to contribute to the well-being of society as a whole. This includes taking responsibility for our actions and decisions and working to address social and environmental issues. 5. Respect for diversity: Ubuntu recognizes and values diversity in all its forms, including cultural, racial, gender, and religious diversity. It promotes the idea that we can learn from each other's differences and that diversity enriches our lives and strengthens our communities. Overall, the concept of Ubuntu emphasizes the importance of interconnectedness, compassion, community, collective responsibility, and diversity. It is a philosophy that promotes social harmony, environmental sustainability, and a sense of shared purpose and meaning.

Slide 42

Slide 42 text

Unix Philosophy 1. Modular design: The Unix philosophy emphasizes the development of small, simple tools that can be combined to create complex systems. This approach has been adopted by many modern software developers, who create modular software components that can be easily integrated into larger systems. 2. Open-source software: The Unix philosophy encourages the sharing of software code and the development of open-source software. This approach has become increasingly popular in recent years, as many developers and organizations recognize the benefits of collaborative software development. 3. Command-line interfaces: The Unix operating system uses a command-line interface, which allows users to interact with the system using simple commands. This approach has been adopted by many modern software tools, particularly in the field of data science and machine learning. 4. Scalability: The Unix philosophy emphasizes the development of software that is scalable and can be easily adapted to changing requirements. This approach has become increasingly important in modern software development, as developers seek to create software that can handle large volumes of data and users.

Slide 43

Slide 43 text

Theory of Constraints The Theory of Constraints (TOC) is a management philosophy that was developed by Eliyahu Goldratt in the 1980s. It is based on the idea that any system, whether it is a manufacturing process, a supply chain, or a software development project, is limited by a small number of constraints or bottlenecks. The goal of TOC is to identify these constraints and manage them in a way that maximizes the throughput of the system.

Slide 44

Slide 44 text

Conclusion

Slide 45

Slide 45 text

Agile and Lean are not new Both are reformulations and recombinations of existing theories, many of them previously forgotten or ignored.

Slide 46

Slide 46 text

There’s always an alternative https://doctorow.medium.com/there-is-always-an-alternative-e55fd414d1fd

Slide 47

Slide 47 text

Legalese (lēˌgə-lēzˈ, -lēsˈ) This presentation is under the following licenses ● Beerware ● WTFPL all images used without permission explicit or implicit - thanks anyway :D

Slide 48

Slide 48 text

A glimpse of the future? https://www.livescience.com/animals/crustaceans/why-do-animals-keep-evolving-into-crabs Agile carcinization Carcinization is an example of a phenomenon called convergent evolution, which is when different groups independently evolve the same traits.