Agile & Socio-technical MethodologiesHuman, Machines and the Environment
Scope of Presentation The Problem with Predictive methodologies Invalid assumption Complex adaptive systems Definition, behavior and system properties Agile methodologies: dealing with complexity Agile Manifesto: The statement of values Agile umbrella Agile and Socio-technical systems Origin of agile methodologies Relationship with socio-technical methodologies Scrum in 5 Minutes
The Problem with Predictive methodologies
The Problem with Predictive methodologies (2/3) Invalid Assumption behind Model 1. The clean requirements are exist and we can gather them easily in fixed time span 2. The changes are very minor and exceptional, so we are able to manage them easily 3. Big design up front (BDUF) works for us 4. It is possible to test and integrate system in final phase
The Problem with Predictive methodologies (3/3) Our Assumption is far away from reality 1. The Requirements are not exist in clean format, we need to discover them during learning process 2. The changes are large and continuous 3. We need to analysis and design the system in an incremental manner 4. Testing and Integration are the basic elements of our production process not a separate phase
Complex Adaptive Systems Complex systems have many autonomous components - individual agents of the system The structure and behavior of a complex system is not deducible, nor may it be inferred, from the structure and behavior of its component parts Complex systems are self-organizing Complex systems adapt to their environment as they evolve Complex systems are non-deterministic, exhibit unpredictable behavior, including chaotic behavior under certain conditions Complex systems display emergent macro-level behavior that emerges from the actions and interactions of the individual agents
Complex Adaptive Systems (2/2) The brains, bacteria, immune systems, social systems, organization and the universe itself are all complex adaptive systems What about software development process ? Is it kind of a complex adaptive systems ?
Complex Adaptive Systems (3/3) A Software team is a complex adaptive system (CAS), because it consists of parts (people) that form a system (team), and the system shows complex behavior while it keeps adapting to a changing environment.
Agile Methodologies: Dealing with Complexity
Agile Methodologies: Dealing with Complexity (2/3) movement from an emphasis on “linear” approaches toward more “adaptive” understandings. The linear view emphasizes rationality and logic, focusing on purposive planning and action toward clearly defined ends. In contrast, the adaptive view recognizes that an organization, much like an organism, must continually reconfigure and align itself to an ever changing environment. emphasizes the importance of social interaction in software development, stressing the importance of greater autonomy and decision-making discretion for developers Agile paradigm is seen not as a means-end process, but rather as ongoing cooperation focused on, among others, the facilitation of learning, flexibility, communication and redundancy of functions.
Agile Methodologies: Dealing with Complexity (3/3)
Agile Methodologies and Social-technical systems Is Thereany relationship between Agile Methodologies and Social- technical system ?
Agile Methodologies and Social-technical systems (2/3) Agile methodologies contains different concepts from varieties of different domains and disciplines such as science, engineering and management. we learnt a lot from Scientific management, Toyota production system (Lean), Socio-technical systems, General Darwinism as well as Complexity and Chaos theory.
Agile Methodologies and Social-technical systems (3/3)Agile Principle Examples of Previous DevelopmentsEmphasis on individuals Socio-technical systems, Soft Systems MethodologyEmphasis on job and work design, quality Socio-technical designof life, and accomplishing the workLearning and adaptation –iterative Complex adaptive systems, Generaldevelopment DarwinismAccepting and leveraging change Soft Systems Methodology, Complex Adaptive Systems, complexity theoryMinimum Critical Specifications Socio-technical system design, Lean Thinking… …
Scrum in 5 Minutes (1/2)
Scrum in 5 Minutes (2/2)
So Whats Next? If you are interested about agile methodologies, you may find these books useful Scrum and XP from the Trenches: How we do Scrum by Henrik Kniberg - 2007 C4Media Management 3.0: Leading Agile Developers, Developing Agile Leaders by Jurgen Appelo - Addison-Wesley 2011
References Towards an Understanding of the Conceptual Underpinnings of Agile Development Methodologies by Sridhar Nerur, Alan Cannon,VenuGopal Balijepally, Philip Bond – Springer 2010 Principles of Complex Systems for Systems Engineering by Sarah A. Sheard - 2006 Third Millennium Systems LLC Presentation “Management 3.0 in 50 minutes” by Jurgen Appelo Learn Scrum Agile Development in 3 Simple Steps – a video by elementool.com
Finish I would be happy to hear your opinion Email : alireza.haghighatkhah [at] gmail.com Blog : myopendraft.blogspot.com Twitter: @ahaghighatkhah Personal Page: haghighatkhah.com