Traditional to Agile Development

53
A Case for the Design of Agile Project Teams PMI Mumbai Chapter Vashi, 21 st April 2013 Speaker : S.Vijaya Devi

description

History of how the traditional software development evolved, how Agile development differes, how can we design self-organizing teams, and a model for facilitative leadership

Transcript of Traditional to Agile Development

Page 1: Traditional to Agile Development

A Case for the Design of Agile Project

Teams

PMI Mumbai Chapter

Vashi, 21st April 2013

Speaker : S.Vijaya Devi

Page 2: Traditional to Agile Development

Contents

• Traditional Software Development

• Agile Software Development

• Design of Agile Project Teams

• Facilitative Leadership

Page 3: Traditional to Agile Development

Software Engineering

• Borrowed from the classical engineering disciplines

• Application of systematic, , disciplined, quantifiable approach to the design, development, operation, and maintenance of software

Page 4: Traditional to Agile Development

Nature of Software

• Complexity

• Changeability

• Invisibility

Constraints of the real physical world are not applicable to software

Page 5: Traditional to Agile Development

Classical Engineering

• Engineering components exist in the real, physical world and are constrained by the laws of that world

• Engineering components interact in predictable ways

• Classical engineering disciplines have far less mid-course design changes

Page 6: Traditional to Agile Development

FUNDAMENTAL PRINCIPLES OF ENGINEERING DISCIPLINES

Page 7: Traditional to Agile Development

Newtonian World Machine

• Clockwork Universe

• The world is a hermetically sealed clock

• The world is a machine

• The world is a closed system

Page 8: Traditional to Agile Development

Machine Age

• Determinism – everything can be determined given enough information

• No chance for surprise or creativity

– Everything has a cause

– Linear causality

• Everything is constituted of matter

Page 9: Traditional to Agile Development

Machine Age

• Reductionism

• Everything can be explained by analyzing its parts

• Analytical Thinking

• Cause-and-effect is sufficient to explain everything

Page 10: Traditional to Agile Development

Scientific Management

• Fredrick Taylor showed the way to mechanize

– Take the job apart and reduce to elementary tasks

– Modern factory is a result of the analysis of work and its mechanization

– Man became the extension of the machine

– Alienation of the worker from his job

Page 11: Traditional to Agile Development

Taylorism

• ‘Efficiency’ is the mantra

• Specialization of tasks

• Organization as a ‘machine’

• Machine needs to be supervised, man needs to be supervised

• Separation of planning from operations

Page 12: Traditional to Agile Development

Taylorism

Page 13: Traditional to Agile Development

Taylorism

• Men and machine are glued together by supervisors

• Supervisors control the variations and ‘absorb’ uncertainties

• Further supervisors need supervisors and so on…

• Work, in order to be mechanized, needs to be compartmentalized, creating silos

Page 14: Traditional to Agile Development

Traditional Mindset

• Stability is the norm

• The world is linear and predictable

• It’s controllable

• Minimize Change

• Increase the feeling of security by adding rigor to the process

• Deliver on the planned results

• Use the plan to drive results

• Aim, aim, fire

Page 15: Traditional to Agile Development

Traditional Mindset

• Establish stronger procedures and policies

• Keep tight control on the process

• Correct to the baseline

• Be a task master

Page 16: Traditional to Agile Development

TRADITIONAL SOFTWARE DEVELOPMENT

Characteristics of

Page 17: Traditional to Agile Development

Software Laws

• Ziv’s Law – “Specifications will never be fully understood”

• Humphrey’s Uncertainty Principle – “For a new software system, the requirements will not be completely known until after the users have used it”

• Wegner’s Lemma – “an interactive system can never be fully specified”

Page 18: Traditional to Agile Development

Software Development

• Highly Variable Requirements

• Specialization and diversity of skills

• Changing nature of technology

• Managing people who deal with such complexity

Page 19: Traditional to Agile Development

Software Development Processes

• Software Development Life Cycle (SDLC)

• Waterfall Model

– Requirements Specification

– Software Design

– Development and Integration

– Testing

– Implementation

– Maintenance

Page 20: Traditional to Agile Development

Software Development Processes

• The ‘Defined’ Process Control Model

– Every process is well-defined

– For a well-defined set of inputs, there is a well-defined set of outputs

– Every process is predictable

– Every process is repeatable

Page 21: Traditional to Agile Development

Defined Process Control

• "A defined process is an amount of tightly coupled steps where the output from one step is the input to the next step and where no observation or evaluation of the output is done to feedback to the process. A defined process when started will run to the end without any checkpoint. The output from a defined process should always be the same or with little variance given the same input to the process."

Page 22: Traditional to Agile Development

Software Development Processes

• Is ‘Defined’ Process Control the right method for software development processes ?

• Software Development

– Too complex

– Unpredictable

– Highly creative

Page 23: Traditional to Agile Development

Software Development Processes

• Assumptions

– Extensive upfront planning to deal with risks

– Problems can be well-defined and an optimum solution can be devised

– Processes are predictable, repeatable and optimised

– Processes can be adequately measured and controlled

Page 24: Traditional to Agile Development

Management Structure

• Design of an organization is influenced heavily by the set of assumptions and beliefs

• A mechanistic view of the organization leads to the belief

– That people are akin to machines

– That people have to be supervised

– They have to be controlled

– They have to be directed

– They have functions, and not purpose

Page 25: Traditional to Agile Development

Management Structure

• Design of the organizations

– Hierarchical, with a ‘command-and-control’ style

– Design tuned for high-performance in a stable environment

– High formalization and standardization

– Specialization of jobs

– Limited Customer involvement

Page 26: Traditional to Agile Development

NON-TRADITIONAL

DEVELOPMENT ENVIRONMENTS

Page 27: Traditional to Agile Development

Agile Methodologies

• SCRUM

• XP

• DSDM

• Crystal

Page 28: Traditional to Agile Development

Agile Methodologies

• Empirical Process Control

• Thinking and designing organizations as whole ‘systems’

Page 29: Traditional to Agile Development

Software Development Processes

• “The empirical model of process control provides and exercises control through frequent inspection and adaptation for processes that are imperfectly defined and generate unpredictable and unrepeatable outputs”

Page 30: Traditional to Agile Development

Empirical Process Control

• Expects the ‘unexpected’

• Does not try to define any process completely

• Acknowledges the fact that complex processes are unpredictable and not repeatable

• Control is exercised through frequent inspection and adaptation

Page 31: Traditional to Agile Development

Sprint in SCRUM

• Iterative or incremental development

• Daily stand-ups

• Retrospective and Reviews

• Processes are improved over a period of time

• Flexibility and adaptation is built-in

Page 32: Traditional to Agile Development

Management Structure

• Teams are self-organizing

• The Scrum Master role is that of a facilitative leader

• Less formalization, decentralization and less supervision

• Cross-functional team with diverse set of skills

• Collaboration with customer directly

Page 33: Traditional to Agile Development

Challenges

• Mechanistic to organic design of organizations

• Moving away from ‘process-centric’ to ‘adaptive’

• Relinquishing ‘command-and-control’

• Setting up self-organized teams

• Redesign of HR processes

Page 34: Traditional to Agile Development

SELF-ORGANIZED TEAMS

Page 35: Traditional to Agile Development

Self-organized Teams

• Socio-technical Systems

• Work systems have both technical and social sub-systems

• Technical subsystem – tools and processes necessary to create products and services

• Social subsystem – work structure that relates people to the technical subsystem and to each other

Page 36: Traditional to Agile Development

Design Issues

• Unit of Design : Individual vs group

• Technology needs interdependence of tasks

• Locus of Control : external vs internal

– Primary objective is to reduce variation from goals

• External control (hierarchy, standardization)

• Internal control (self-regulate)

• Control mechanism required to manage uncertainty

Page 37: Traditional to Agile Development

Design Issues

• Source of Uncertainties

– High when the task environment is complex and changing

• Is it possible to predict the rate and nature of changes coming from the customer ?

– Arising from the technological conversion of customer requirements to products and services

• Technology is unknown/new, competent staff not available

Page 38: Traditional to Agile Development

Design Issues

• External control in managing the above uncertainties is ineffective with outside control

• Regulatory mechanisms are better handled by those closer to the uncertainties

Page 39: Traditional to Agile Development

Self-organized Teams

• 3 conditions to form a self-organized team

– Task Differentiation

– Boundary Control

– Task Control

Page 40: Traditional to Agile Development

Self-organized Teams

• Task Differentiation

– The group task is ‘autonomous’, it is complete in itself

– The more autonomous the group, the more differentiated it’s boundary from other organizational units

– Binds the interdependent tasks into a common unit

– Contains the variances within the boundary

Page 41: Traditional to Agile Development

Self-organized Teams

• Boundary Control

– Transactions with their task environments, rate and type of inputs and outputs

– A well-defined work area

– Competent workers with a sufficient variety of skills, which reduces dependency on external environment

– Group responsibility for boundary control decisions

Page 42: Traditional to Agile Development

Self-organized Teams

• Task Control

– To choose appropriate methods and tools to complete the task

– To make variations on the processes to match environmental changes

– Influence over task goals so as to allow modification depending on emergent situations

– Feedback of measure of group performance

Page 43: Traditional to Agile Development

Job Characteristics Model

• Task design is key for employee motivation

• Job characteristics

– Skill variety

– Task identity

– Task significance

– Autonomy

– Feedback

• Psychological conditions of wellbeing

Page 44: Traditional to Agile Development

Self-organized Teams

• Skill Variety, Task Identity, Task significance – Personally meaningful work – Enhance self-regulation

• Skill variety

– Enable responding to changes from environment

• Task identity

– Grouping interdependent tasks and controlling variances within the unit

• Task significance

– Satisfies the need to relate individual contributions to those of other workers

Page 45: Traditional to Agile Development

ROLE OF THE FACILITATIVE

LEADER

Page 46: Traditional to Agile Development

Role of the Leader

• Not a manager for the team or the project

• More a facilitator than a leader

• Sometimes called a servant leader

• Sometimes a coordinator

Page 47: Traditional to Agile Development

Responsibilities

• Help the team achieve business value

• Does not tell the team what to do or how to do

• Help the group maintain it’s boundaries, by managing uncertainties

• Removing obstacles to progress

• Manage the process

Page 48: Traditional to Agile Development

Group Structure

Mission & vision

Group culture

Clear goals

Motivating tasks

Clearly defined roles

Group norms

Sufficient time

Group Context

Mission & vision

Supportive culture

Rewards consistent with objectives design

Information including feedback

Training & consultation

Technological & material resource

Physical environment

Group Process

Problem solving

Decision making

Conflict management

Communication

Boundary management

Page 49: Traditional to Agile Development

Facilitative Model

• Determine whether a team is effective

• Identify which factors that contribute to effectiveness are missing

• Know how to intervene to help a group become more effective

Page 50: Traditional to Agile Development

Group Processes

• Problem Solving

• Decision Making

• Conflict Management

• Communication

• Boundary Management

Page 51: Traditional to Agile Development

Group Structure

• Mission and Shared Vision

• Group Culture

• Goals

• Motivating Group Tasks

• Clearly Defined Roles

• Group Norms

• Sufficient Time

Page 52: Traditional to Agile Development

Group Context

• Mission and a shared vision

• Supportive Organizational Culture

• Rewards Consistent with Group Objectives and Design

• Information, including feedback about Performance

• Training and Consultation

• Technology and Material Resources

• Physical Environment

Page 53: Traditional to Agile Development

THANK YOU