Agile Systems Development

Neil McBride

Agenda

What¶s the problem? What¶s the metaphor? ± Building Construction versus Jazz Improvisation Agile Methods Examples Agile Manifesto XP as an example of agile method Four Values Basic Principles Planning games, pair programming and metaphor. Critique
Neil McBride Centre for IT Service Management Research

The Problem

Failure of software project is endemic.

Schedules slip, Projects are cancelled, Business needs never met, Changes made faster than system can be developed, Testing is inadequate, Quality not managed, Staff turnover, Systems become too large to manage.

Neil McBride Centre for IT Service Management Research

Computer systems cannot cope with change.

Difficult to change, Cannot adapt to organisational change, Require certainty.

But organisations¶ and businesses¶ problems change New customers, Transactions changes, New products, Demands of Internet-based systems

Neil McBride Centre for IT Service Management Research

What if the metaphor is wrong? Neil McBride Centre for IT Service Management Research .How do we deal with change? Large scale project management approaches try to: Reduce change Increase certainty Eliminate risk by planning. Our metaphor is the construction industry and our project management practices are drawn from the industry. We do what it says on the contract We freeze requirements and we formalise such freezing though stage meetings. Changes become rewrites. documentation and contracts.

Neil McBride Centre for IT Service Management Research . goals of achieving efficiency and reducing uncertainty Structure IS stable artifacts? Requirements µfixed in concrete¶ IS as social artifacts Process Linear? Formal join points? SSADM-like? Roles Cultural ghettos. Blinkered view.The Construction Analogy Assumption: sequential development process. predictable and stable environment. divergent. conflict and formalisation.

Film Production Script based on literary sources Revision during production Interpretation by different creative artists Pre-production. Post-Production Neil McBride Centre for IT Service Management Research . Filming.

continuous involvement of many creative staff. Some role changing. Neil McBride Centre for IT Service Management Research . changing roles. Roles Variety of roles.Structure More pliable product Builds on body of work But little active role of users. Wide-skill set. Process Dynamic development Greater scene of teamwork.

Jazz Improvisation Use of minimalist musical structures including harmonies. melodies and rhythm. with changing roles and intense interaction. Minimalist Structures Constrain the turbulence of the jazz process by specifying particular ways of inventing and co-ordinating musical ideas¶ Neil McBride Centre for IT Service Management Research . Small team elaborating on simple structures in complex ways Musicians operate with a set of social norms.

choruses etc on which to improvise Wide stock of talent and performative competence Knowledge of music technology and instrumentation Experimenting with new instruments. repertoire Templates of songs. Chord progressions. styles and textures of sound Refashioning performance in response to colleagues and audience Neil McBride Centre for IT Service Management Research . For leadership and personal development Risk-taking and continuous learning Technical Structure Keys.Social Structure Behavioural Norms Communicative Codes Partnering in autonomous ensemble Trust within wide zones of manoeuvre and constructive controversy Alternate soloing and comping.

Neil McBride Centre for IT Service Management Research . Importance of mentors Continuous communication and listening.Structure Dynamic systems. subject to change in response to organisational change Minimal componentised structures Patterns Process Variation with socially determined process structured Iterative development and continuous delivery Theme development Role Role rotation.

Film Production/ Jazz Improvisation Analogy Iterative dynamic progression Product structure evolves in response to new ideas and environmental change Roles rotate and project involvement is continuous throughout the project's lifetime Changing structure and new structure is the norm User input critical throughout project. User input limited temporally and functionally Technology fixed at start of project Focus on technology and rigorous adherence to predefined design.Construction Analogy Sequential progression Product structure defined and fixed at start Roles fixed in skill base and temporal involvement with project Changes difficult to achieve. Focus on creativity and development of new ideas within a minimal design framework Neil McBride Centre for IT Service Management Research . Technology adaptation occurs as new tools and methods are explored.

Agile Software Development Approaches Ancestry in Rapid Application Development Held up as antithesis of traditional software development. Focus on: Early delivery priority business requirements. Dealing with partial knowledge Reduced documentation Small groups of programmers Iteration Continuous testing Integral customer involvement Neil McBride Centre for IT Service Management Research .

We embrace documentation. many of us want to restore credibility to the word methodology.The Agile Alliance Snowbird 2001 : Meeting of representatives of agile methods Purpose to get all the leaders of lightweight methods into one room µDefine a developer community freed from the baggage of Dilbertesque corporations. but not in order to file some diagram in a dusty corporate repository. but not hundreds of pages of never-maintained and rarely-used tomes. We want to restore a balance. We plan. but recognize the limits of planning in a turbulent environment.¶ µThe Agile movement is not anti-methodology.¶ Neil McBride Centre for IT Service Management Research . in fact. We embrace modeling.¶ [Respond to] µthe failure of the standard "fixed" process mindset that so frequently plagues our industry.

Agile Methods Adaptive Software Development Feature Driven development Crystal Clear Method Dynamic Systems Development Method Rapid Application Development (James Martin) Scrum Pragmatic Programming Extreme Programming Neil McBride Centre for IT Service Management Research .

Agile Alliance Values Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan Neil McBride Centre for IT Service Management Research .

Enables customer evaluation Neil McBride Centre for IT Service Management Research . Software as the business output. Continuous delivery provide regular feedback.Principle 1 Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

even late in development. Agile processes harness change for the customer's competitive advantage. Neil McBride Centre for IT Service Management Research .Principle 2 Welcome changing requirements. Promoting software µevolvability¶ But still avoiding radical changes at the end of the development project.

Principle 3 Deliver working software frequently. with a preference to the shorter timescale. Key importance of iterative and incremental development From fixed pricing to adaptive pricing? Defining releases to match business deadlines and user ability to absorb changes. Neil McBride Centre for IT Service Management Research . Rapid feedback. from a couple of weeks to a couple of months. Daily build Requirements can be tested and altered quickly.

Development managers with both business and technical understanding and still writing code Neil McBride Centre for IT Service Management Research .Principle 4 Business people and developers must work together daily throughout the project. Role of developers changing towards business orientation.

strong tacit knowledge and discipline Neil McBride Centre for IT Service Management Research . and trust them to get the job done. We¶re not all Kent Becks or Ward Cunninghams! Need for extraordinary skills.Principle 5 Build projects around motivated individuals. talent. Give them the environment and support they need. Agile approaches put emphasis on people factors ± sociability. skill communication. µPersonnel attributes and human relation activities provide by far the largest source of opportunity for improving software productivity¶ Barry Boehm XP very demanding of people skills.

Problem of unrecognised shortfalls of tacit knowledge Neil McBride Centre for IT Service Management Research .Principle 6 The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Informal communication Tacit knowledge transfer Role of written communication. Stand-up meetings.

. .Principle 7 Working software is the primary measure of progress. Early delivery Measurement. Not lines of code Measurements of what? Functions? Passed tests? Neil McBride Centre for IT Service Management Research .

Creativity needs recreation Sustained overtime is a bad sign Neil McBride Centre for IT Service Management Research . Workaholism.Principle 8 Agile processes promote sustainable development. The sponsors. Ineffectiveness of work-all-hours mentality. and users should be able to maintain a constant pace indefinitely. developers.

Refactoring and personal quality requirements Expertise and attitude of the programmer Neil McBride Centre for IT Service Management Research .Principle 9 Continuous attention to technical excellence and good design enhances agility.

Principle 10 Simplicity--the art of maximizing the amount of work not done--is essential. Avoiding bells and whistle. Simple solutions are easy to understand Who decides what is simple? Neil McBride Centre for IT Service Management Research .

and designs emerge from self-organizing teams. Self-governing teams Emergent behaviour The µjelled¶ team Complexity Theory and Post-modernism Neil McBride Centre for IT Service Management Research . requirements.Principle 11 The best architectures.

Time cost of review Neil McBride Centre for IT Service Management Research .Principle 12 At regular intervals. Value of organisational learning. then tunes and adjusts its behavior accordingly. the team reflects on how to become more effective.

eXtreme Programming Now let¶s see the Agile Manifesto Principles in Action. Closely connected with the patterns movement. Neil McBride Centre for IT Service Management Research . Assumes an object-oriented approach. Comes from a group of American programmers : ± Kent Beck Ward Cunningham Ron Jefferies.

Extreme Programming Little documentation. Source code is only documentation No software specification No separate design and testing phase Design for change prohibited No formal reviews or inspections Neil McBride Centre for IT Service Management Research .

Neil McBride Centre for IT Service Management Research .Extreme Programming A view of what development is. The development episode. An approach to development . Four values.. Twelve practices. Some basic principles.

What¶s important in software development management? Cost Time Quality Scope What¶s important in the process? Coding! Testing Listening Designing. Neil McBride Centre for IT Service Management Research .

Neil McBride Centre for IT Service Management Research .Extreme Programming: Four Values Communication Making communication essential. Team support. Ready to start again. Make a decision. Daily integration. Pair programming. Environment. Testing. pair programming) Feedback Coaching. Courage. Simplicity What is the simplest thing that can possibly work? Removing complexity (by refactoring) Challenging complexity (by continuous integration. Starting with test case. Quick releases. Face-to-face.

change a little at a time. Fundamental principles. Learn immediately. Small initial investment. Neil McBride Centre for IT Service Management Research .Extreme Programming. Embrace Change. Art. design. Incremental Change. Rapid Feedback. play to win (not (not to loose)). team. No frozen specs. Using tests. Quality work. Series of small changes. Days not weeks/ months. Removing redundancy. Sort today¶s problems today. honest measurement. No belts and braces. Plan. open. Others (see for yourself) Teaching learning. No design for reuse. Pride in craftsmanship. Stimulus/response. honest communication. How. local adaptation. accepted responsibility. Work with people instincts. travel light. XP adopted a little at a time. Evolve solutions. Concrete experiments (leave no abstract decisions untested). Assume simplicity.. Constant review (pair programming) refactoring.

contracts and contract management. Refactoring ± restructuring system without changing its behaviour. Only leave whatever is really needed.Extreme Programming : Basic Practices The Planning Game .g.Developers and customers scope and plan using story cards Small releases .Release as small as sensibly possible. Neil McBride Centre for IT Service Management Research . tracking robot. Pair Programming ± All production code is written with two programmers at one machine. Simple design Design as simple as possible at any given moment. Metaphor ± Identify overarching metaphor e. These must run flawlessly for development to continue. Eliminate complexity Testing ± Write the test first.

Coding standards ± programmers write all the code in accordance with rule emphasizing communication though the code. every time a task is complete. Never two weeks in a row overtime. More value out of system with more business contribution. 40-hour week. Continuous integration. Integrate and build system many times a day. Opposite of Software Configuration Management.Extreme Programming : Basic Practices Collective Ownership ± Anyone can change code anywhere in the system at anytime. Neil McBride Centre for IT Service Management Research . complete visibility. simple writing. On-site customer ± real live customer (not line manager) sitting with team all the time. Works if there¶s continuous integration.

Neil McBride Centre for IT Service Management Research . Big Boss ± Champion of development team. Provides toys and food. Tracker ± conscience of XP team. µIs the feedback loop being closed? Consultant ± µwizard¶ supplies deep technical knowledge.Extreme Programming : Roles Programmer ± adds actual value. at heart of development Customer ± importance of customer engagement Tester ± helps customer write functional tests Coach ± responsible for process as a whole ± XP expert.

Neil McBride Centre for IT Service Management Research . Break down stories if necessarily. Clarify with customer. Sort stories and decide what¶s in the first iteration. Estimate time for each story. Turn stories into tasks. Sort on value and risk.The Planning Game Business writes stories.

Neil McBride Centre for IT Service Management Research . up and running as fast as possible. Get something. Writes test cases (which will all fail at the start because there¶s nothing there). µGo like the clappers¶ Minimalist design. probably with many small classes. Finds a partner. Gets all tests working.Programmer Accepts tasks and estimates.

key group of µgurus¶ Refactoring ± programmer psychology. A programming high priesthood? Neil McBride Centre for IT Service Management Research . Emergence. Business / IT gap approach to crossing it? Scalability Debate. Programmer versus manager. Post-modernist. Reaction to outsourcing and µbig thump¶ delivery of outsourcing. Eastern Philosophy. µBiggest barrier to XP is culture¶ Beck.Critique Origins ± OO. Patterns movement. Size does matter. Philosophy: Chaos and Complexity. Precedence of code as the lingua franca. Culture .

Beck. October 1999. Gaining Intellectual Control Over Software Development Neil McBride Centre for IT Service Management Research . IEEE Computer. K. (2000) Extreme Programming Explained. (1999) Embracing change with extreme programming. Finland) Martin Fowler articles on XP and Agile Methods Boehm. 70-77. Addison Wesley Agile Methods List (CERN) Agile Software Development Ecosystems Build better software Agile Alliance Questioning Extreme Programming Agile Software Development in Theory and Practice (MSc Thesis. B and Basili. K. V.Bibliography and Sources Beck.

D.Bibliography and Sources Jim Highsmith Links and resources Xtreme programming. Organisational Studies 22(5) 733 . (2001) A viewpoint on software engineering and information systems: what we can learn from the construction industry. 795 .Teaching Extreme Programming in a university DaimlerChrysler C3 Case Study On the Productivity of Agile Software Practices: An Industrial Case study Hi-Tech Workplace no better than factories (BBC News) Avison. (2001) Minimal Structures: From Jazz Improvisation to Product Innovation. Information and Software Technology 43.799. D and Wilson. Kamoche. Neil McBride Centre for IT Service Management Research .K and Pina e Cunha.com (Ron Jefferies) Extreme Programming Roadmap (Ward Cunningham) Scrum Crystal Clear Extreme Programming Case Study . M.764.

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.