• Save
Agile - What The F
Upcoming SlideShare
Loading in...5
×
 

Agile - What The F

on

  • 1,582 views

Introduction to the Agile Software Development concept. Describing the background to SDLC methodologies including RUP, Prince2 and PMBOK, defining the difference between traditional methodologies to ...

Introduction to the Agile Software Development concept. Describing the background to SDLC methodologies including RUP, Prince2 and PMBOK, defining the difference between traditional methodologies to Agile and expanding on Agile methods and practices.

Statistics

Views

Total Views
1,582
Views on SlideShare
952
Embed Views
630

Actions

Likes
0
Downloads
0
Comments
0

6 Embeds 630

http://pm.tomersagi.com 469
http://www.linkedin.com 78
http://roadmapping.tomersagi.com 75
http://www.chaosdimention.com 4
http://www.slideshare.net 3
https://s4-eu3.ixquick-proxy.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Project Management evolved from and through construction and engineering.I like this slide as it shows concepts software is trying to replicate. Building framework / foundations first, then the first level (phase 1) and 2nd level. But the entire structure needs to be engineered.
  • So... What is Agile? In a nutshell is being limber and flexible.
  • Project Management is about ensuring delivery of any product to these key elements:Meeting customer needs / requirementsControlling scope, cost and scheduleEnsuring qualityThe famous Project Management triangle is only 1 part of the project delivery spectrum. The triangle here shows a ‘Quality’ focus which I like.
  • Systems Development Life Cycle or Software Development Life Cycle is a software development concept that captures all steps from start (idea generation) to finish (decommissioning). This is a traditional life-cycle and is often referred to as the ‘Waterfall’ method.This is a great diagram that illustrates the direct relationship to engineering and construction where you don’t do the next step until you finish the first.
  • Traditional software development projects normally uses one or more of these methodologies:RUP (Rational Unified Process)PMBOK (Project Management Body of Knowledge) – USAPrince2 – UKAlthough Prince2 and PMBOK are generic project management methodologies and RUP is a software specific methodology, they all share one thing in common = heavy and bulky.RUP appears to be water in its approach (Inception, Elaboration, Construction and Transition), however it is heavily reliant on iterations. RUP is therefore in some ways, agile as well.
  • Over time, a new generation of methodologies, methods and techniques have developed. These introduced a more light-weight set of methods and techniques.So we have Agile. What does agile mean and where did the name originate from?
  • Agile comes from agility. The dictionary says agility is in a nut-shell the ability be nimble. In the software context this means adaptable to change.
  • So in 2001, a few people got together and defined the key concepts of Agile in software development.Individuals and interactions => communications and CollaborationWorking software => delivery if quality softwareCustomer collaboration => closing the gap between the project team and the customers and end usersResponding to change => the golden nugget, HOW? I’ll touch on this later on my blog at www.chaosdimention.comThe same group also extended the 4 core concepts with the “12 Principles of Agile”.
  • Okay, so here’s my own view of the methods and practices of agile.“Scrum”, “Lean” and “TDD” are my favorite ones and when merged they can produce excellent results.Extreme ProgrammingA method that promotes frequent “releases” in short development cycles. This method uses the “Pair Programming” practice in its core.ScrumAn iterative framework for controlling and delivering software projects with fixed iteration times. Scrum includes a number of practices including “Business Value” prioritization, frequent blitz meetings (called “Scrum”) etcLeanSoftware development comes from “Lean Manufacturing” which was pioneered by Toyota. It’s purpose is to “Eliminate waste” and focus only on things that create value to the client / customer. Examples of ‘waste’ in software development are: (1) Too much documentation, (2) Cumbersome or complex processes etcFDD (Feature Driven Development)Iterative and incremental process based on client-valued functionality (feature). FDD is a model-based process which relies on Object Modeling in its core.TDD (Test Driven Programming)Development led by test cases and unit tests and a developer that writes codes and refactors it to pass the tests.BDD (Behavior Driven Programming)Business-rules driven development that uses encourages collaboration between all stakeholders, especially non-technical ones. BDD extends TDD with writing natural language test cases.Pair ProgrammingAn “Extreme Programming” practice that is performed by two developers sitting at the same machine.Planning PokerCollective / consensus based estimation practice (commonly used in Scrum)
  • Here are some diagrams that illustrate key concepts of my methods and practices.Scrum provides the rigidness and structure to a development project. Estimating, planning and controlling techniques are very effectiveTDD encourages best quality delivery from developers to testers. Developers will have higher confidence their code meets the requirements by continuously running the unit tests and test case. As a result, testing effort will be shorter as less communications is required (backwards and forwards between the teams) and development estimates will become more accurate and solid over timeLean enables teams to be a bit creative and ensure that only necessary and value-creating activities should be followed
  • I found Agile methods and practices to dramatically improve software development projects:Estimation - using collective and individual point system coupled with frequent reviews of progress and re-estimation improves estimation tremendouslyRequirements - User Stories are a very effective way of capturing requirements and engaging clearly with the clientTesting – TDD increases quality exponentially as it reduces the risk of requirements being unclear or developers claiming a feature is done when it’s notInfrastructure – the habit of setting up a full-set of environments for a more rapid and iterative development process reduces infrastructure, release and deployment risks very earlyProcesses – overall, the agile practices, methods and processes provide a great tool-set for the modern software development project needs
  • Agile introduces challenges too.Small software companies normally tend to juggle many projects with limited resources. Some agile techniques will be hard to implement as the teams are constantly shifting from one project to another. In addition, blitz meetings must be very short and very effective. Perhaps a general scrum meeting (covering all projects) should be held instead of the targeted daily 15 minutes scrum for 1 project.Web-development companies also struggle with delivering quality work utilizing an agile methodology. Some key functions such as Information Architecture, Wire-Frames, Design cannot be fully agile due to the architectural nature of them. Other techniques or a hybrid agile-formal methodology could be implemented.Fixed price projects introduces high-risk for the software provider. In this case estimation must be thought through very carefully at the outset of the project and sufficient contingency must be allowed. Possible pitfalls could arise from client assumptions, client review cycles, development under-estimation, testing under-estimation etc.Many projects these days have team members spread across the globe. This introduces communication and collaboration challenges to the agile concept. Video conferencing, IM and other online collaboration tools must be used to maintain the constant flow of effective communications.
  • At the end of the day, projects are supposed to deliver to customer needs!The methods and practices chosen are insignificant, so long as the customer gets what they need!

Agile - What The F Agile - What The F Presentation Transcript

  • Copyright © Tomer Sagi
    V0.1 draft, 27th February, 2010
    http://www.chaosdimention.com/
  • AgileWhat the F?
    Tomer Sagi
    Chaos Dimention
    Copyright © Tomer Sagi
    V0.1 draft, 27th February, 2010
    http://www.chaosdimention.com/
  • Project Management
    “Meeting
    customer needs / requirements
    while controlling
    scope, cost, schedule
    and ensuring
    quality”
    Copyright © Tomer Sagi
    V0.1 draft, 27th February, 2010
    http://www.chaosdimention.com/
  • SDLC
    Copyright © Tomer Sagi
    V0.1 draft, 27th February, 2010
    http://www.chaosdimention.com/
  • RUP, PMBOK and Prince2
    RUP
    PMBOK
    Prince2
    Copyright © Tomer Sagi
    V0.1 draft, 27th February, 2010
    http://www.chaosdimention.com/
  • Project ManagementLightweight vs. Heavyweight
    Lightweight / Agile PM
    Agile (Scrum, Test-driven)
    Heavyweight / Traditional PM
    PMP (USA)
    Prince2 (UK)
    RUP
    Copyright © Tomer Sagi
    V0.1 draft, 27th February, 2010
    http://www.chaosdimention.com/
  • Agility
    “1. The quality of being agile; the power of moving the limbs quickly and easily; nimbleness; activity; quickness of motion; as, strength and agility of body.”
    [1913 Webster]
    I.E.
    Embracing Change
    Copyright © Tomer Sagi
    V0.1 draft, 27th February, 2010
    http://www.chaosdimention.com/
  • Agile Manifesto (2001)
    1) Individuals and interactions
    over processes and tools
    2) Working software
    over comprehensive documentation 
    3) Customer collaboration
    over contract negotiation 
    4) Responding to change
    over following a plan
    Copyright © Tomer Sagi
    V0.1 draft, 27th February, 2010
    http://www.chaosdimention.com/
  • Agile Methods and Practices
    Copyright © Tomer Sagi
    V0.1 draft, 27th February, 2010
    http://www.chaosdimention.com/
  • Scrum, Lean and TDD
    Lean
    Scrum
    TDD
    Copyright © Tomer Sagi
    V0.1 draft, 27th February, 2010
    http://www.chaosdimention.com/
  • Agile Improves …
    Estimation
    Points system
    Requirements
    User Stories
    Testing
    Test Cases / Scenarios
    Infrastructure
    Full environment set from day 1 (dev, testing and UAT)
    Processes
    Release, Deployment, Prioritization ...
    Copyright © Tomer Sagi
    V0.1 draft, 27th February, 2010
    http://www.chaosdimention.com/
  • Agile Challenges
    Fixed price projects
    Level of documentation
    Matrix-management of resources
    Incorporating quality design, wireframes and usability
    Effective collaboration and communications tools
    Copyright © Tomer Sagi
    V0.1 draft, 27th February, 2010
    http://www.chaosdimention.com/
  • Meeting Customer Needs!
    Copyright © Tomer Sagi
    V0.1 draft, 27th February, 2010
    http://www.chaosdimention.com/