SlideShare a Scribd company logo
1 of 42
Agile Software Development
          making programming fun again
How Projects Really Work




Software engineering done right.
How the customer explained it




Software engineering done right.
How the project leader understood it




Software engineering done right.
How the analyst designed it




Software engineering done right.
How the programmer wrote it




Software engineering done right.
How the business consultant described it




Software engineering done right.
How the project was documented




Software engineering done right.
How much the project cost




Software engineering done right.
What the customer really needed




Software engineering done right.
“CHAOS Report” by Standish Group




Software engineering done right.
Challenged Projects - Reasons
 
      Lack of User Input           
                                       Technology
 
      Incomplete                       Incompetence
      Requirements &               
                                       Lack of Resources
      Specifications               
                                       Unrealistic Expectations
 
      Changing Requirements        
                                       Unclear Objectives
      & Specifications             
                                       Unrealistic Time Frames
 
      Lack of Executive            
                                       New Technology
      Support




Software engineering done right.
Failed Projects - Reasons
 
      Incomplete                   
                                       Changing Requirements
      Requirements                     & Specifications
 
      Lack of User                 
                                       Lack of Planning
      Involvement                  
                                       Didn't Need It Any
 
      Lack of Resources                Longer
 
      Unrealistic Expectations     
                                       Lack of IT Management
 
      Lack of Executive            
                                       Technology Illiteracy
      Support




Software engineering done right.
Successful Projects - Reasons
 
      User involvement             
                                       Project manager
 
      Executive management             expertise
      support                      
                                       Financial management
 
      Clear business               
                                       Skilled resources
      objectives                   
                                       Formal methodology
 
      Optimizing scope             
                                       Standard tools and
 
      Agile process                    methodology




Software engineering done right.
What's wrong with “Waterfall”?




Software engineering done right.
What's wrong with “Waterfall”?

 
         Mistakes are hard to find in early stages
 
         Expensive to fix mistakes in later stages
 
         Customers don't know what they want from the
         beginning
 
         Developers don't know how long a project will take
         from the beginning
 
         Business needs change




Software engineering done right.
Effects of “Waterfall”
 
        Death March projects
         ‒
               Mis-estimated schedules lead to successive overtime
         ‒
               Delays in one stage cause delays in succeeding stages
 
        Conflict between customers and developers
         ‒
               Customers don't get the software that they want
         ‒
               Developers don't get clear requirements
 
        Process and tool obsession
         ‒
               People focus on creating artifacts but lose sight of the
               goal of working software
         ‒
               Processes replace natural communication


Software engineering done right.
The Agile Manifesto

 We are uncovering better ways of developing software by doing it and helping
     others do it. Through this work we have come to value:
 •      Individuals and interactions over processes and tools
 •      Working software over comprehensive documentation
 •      Customer collaboration over contract negotiation
 •      Responding to change over following a plan
 That is, while there is value in the items on the right, we value the items on
      the left more.




Software engineering done right.
Selected Practices

 
        Iterative Development
 
        User Stories
 
        Test-Driven Development
 
        One Team
 
        Self-Managed Teams
 
        Sustainable Pace




Software engineering done right.
Iterative Development

 
        Software development as an evolutionary process




Software engineering done right.
Iterative Development

 
        All steps of SDLC are done at each iteration




Software engineering done right.
Iterative Development

 
        Working software produced at each iteration
       –     No such thing as “X% complete”, only done and not
             done




Software engineering done right.
Iterative Development

 
        Benefits
         ‒       Customers can evaluate what they want and adjust
                 requirements
         ‒       Developers get better estimates of future tasks
         ‒       Better communication between customer and
                 developers and among developers
                        
                                   Talk is about something concrete, not abstract
         ‒       Just enough artifacts are created to produce working
                 software
                        
                                   Less waste



Software engineering done right.
User Stories

 Traditional requirements: “The system shall... the
   system shall...”




Software engineering done right.
User Stories

 As a < user role >
 In order to < business goal >
 I want to < behavior >

 
        Focus on business goals
       - Requirements have context
 
        Story-telling is the most natural way of
        communication


Software engineering done right.
Test-Driven Development
       Bugs are harder to find
        and fix when found later
       Modifying code tends to
        introduce bugs
       - Difficult to know if one has
         introduced bugs without
         tests
       Manual tests are
        expensive to repeat and
        provide limited
        information

Software engineering done right.
Test-Driven Development

 
        Programmers should write automated tests as they
        code
       - Write test before implementation
 
        Provides immediate feedback if their code works
 
        Builds suite of automated tests that can be run each
        time code is modified
 
        Makes it safe to modify existing code
 
        Frameworks: JUnit, NUnit, hundreds of others...



Software engineering done right.
Software engineering done right.
TDD Benefits

 
        Code is safe to modify
 
        Tests are excellent documentation
       - Programmers hate writing documentation, but they like to
         code
 
        Design improves
       - Programmers think of their code's behavior before coding
       - Programmers see their code from a second-person's
         point-of-view
                        •     Is my code readable? Easy to use?
       - Components become decoupled to facilitate testing

Software engineering done right.
One Team

 
        Everyone is considered
        part of one team,
        including the customer
 
        Developers, testers,
        business analysts,
        project managers, web
        designers, etc, work in
        the same place,
                   place
        usually on the same
        table


Software engineering done right.
Software engineering done right.
One Team

 
         Faster communication
             –      Issues resolved faster
 
         Natural communication
             –      Face-to-face, ad hoc and continuous throughout the
                    day
 
         Less misunderstanding and antagonism between
         functional groups




Software engineering done right.
Self-Managed Teams

 When teams manage themselves...
 
     Higher motivation
 
     More creative solutions
 
     Faster resolution of issues
 
     Drive for continuous improvement




Software engineering done right.
Self-Managed Teams

 Practices/Tools
 
     Daily Stand-Up Meetings
 
     Retrospectives
 
     Big Visible Charts,
     Whiteboards
 
     Direct access to
     customers




Software engineering done right.
Sustainable Pace

 
        Overtime leads to
        lower productivity
 
        Lowers morale




Software engineering done right.
Sustainable Pace

 
        Team should measure “velocity” at each iteration
 
        Keep work load within velocity
 
        If iteration load was underestimated, ask customer
        to decide which features to move to future iterations




Software engineering done right.
Other Practices...
 
            Planning
 
            Tracking
 
            Continuous Integration
 
            Pair Programming
 
            Refactoring
 
            Planning Boards
 
            Burn-Down Charts
 
            Collective Code Ownership
 
            Coding Standards
 Many more...
Software engineering done right.
Agile at Orange & Bronze

 •        Been doing Agile since its foundation in 2005
             –      Before it became mainstream
 •        We've tried different methodologies and practices
             –      XP, Scrum, Kanban
             –      Not all practices work in all conditions
 •        The first to offer training in Agile methodologies and
          practices
             –      Scrum, TDD, Agile Business Analysis, Agile QA, etc
             –      Trainers are seasoned practictioners


Software engineering done right.
Open Workspaces




Software engineering done right.
Project Automation




Software engineering done right.
Collaborative Design




Software engineering done right.
Agile Training




Software engineering done right.

More Related Content

What's hot

The Business Analysts Role in Agile Software Development
The Business Analysts Role in Agile Software DevelopmentThe Business Analysts Role in Agile Software Development
The Business Analysts Role in Agile Software Developmentallan kelly
 
Agile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureAgile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureWee Witthawaskul
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveWee Witthawaskul
 
Solution Architecture tips & tricks by Roman Shramkov
Solution Architecture tips & tricks by Roman ShramkovSolution Architecture tips & tricks by Roman Shramkov
Solution Architecture tips & tricks by Roman ShramkovJavaDayUA
 
Software Modernization
Software ModernizationSoftware Modernization
Software ModernizationJavier Canovas
 
Why EPM Live? EPM Live Overview and Demo
Why EPM Live? EPM Live Overview and DemoWhy EPM Live? EPM Live Overview and Demo
Why EPM Live? EPM Live Overview and DemoEPM Live
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Ajay Danait
 
Moah Mini Upa2009
Moah Mini Upa2009Moah Mini Upa2009
Moah Mini Upa2009ayemoah
 
Agile Business Intelligence
Agile Business IntelligenceAgile Business Intelligence
Agile Business IntelligenceEvan Leybourn
 
Essential Elements Of Distributed Agile
Essential Elements Of Distributed AgileEssential Elements Of Distributed Agile
Essential Elements Of Distributed AgileVernon Stinebaker
 
Agile Maintenance
Agile MaintenanceAgile Maintenance
Agile MaintenanceNaresh Jain
 
Agile Overview As V1.2
Agile Overview As V1.2Agile Overview As V1.2
Agile Overview As V1.2Anjan Roy
 
Softexpert Proje ve Portfolio Yonetimi
Softexpert Proje ve Portfolio YonetimiSoftexpert Proje ve Portfolio Yonetimi
Softexpert Proje ve Portfolio YonetimiHydron Consulting Grup
 
ERP Implementation Methodology
ERP Implementation MethodologyERP Implementation Methodology
ERP Implementation MethodologyThanh Nguyen
 
Agile Business Intelligence - course notes
Agile Business Intelligence - course notesAgile Business Intelligence - course notes
Agile Business Intelligence - course notesEvan Leybourn
 

What's hot (20)

The Business Analysts Role in Agile Software Development
The Business Analysts Role in Agile Software DevelopmentThe Business Analysts Role in Agile Software Development
The Business Analysts Role in Agile Software Development
 
Agile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureAgile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai Culture
 
Agile development
Agile developmentAgile development
Agile development
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer Perspective
 
Kevin bryan coduru
Kevin bryan coduruKevin bryan coduru
Kevin bryan coduru
 
Bdd Introduction
Bdd IntroductionBdd Introduction
Bdd Introduction
 
Solution Architecture tips & tricks by Roman Shramkov
Solution Architecture tips & tricks by Roman ShramkovSolution Architecture tips & tricks by Roman Shramkov
Solution Architecture tips & tricks by Roman Shramkov
 
Software Modernization
Software ModernizationSoftware Modernization
Software Modernization
 
Why EPM Live? EPM Live Overview and Demo
Why EPM Live? EPM Live Overview and DemoWhy EPM Live? EPM Live Overview and Demo
Why EPM Live? EPM Live Overview and Demo
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD)Behavior Driven Development (BDD)
Behavior Driven Development (BDD)
 
Moah Mini Upa2009
Moah Mini Upa2009Moah Mini Upa2009
Moah Mini Upa2009
 
A littlebook about agile
A littlebook about agileA littlebook about agile
A littlebook about agile
 
Agile Business Intelligence
Agile Business IntelligenceAgile Business Intelligence
Agile Business Intelligence
 
Essential Elements Of Distributed Agile
Essential Elements Of Distributed AgileEssential Elements Of Distributed Agile
Essential Elements Of Distributed Agile
 
Cu32604607
Cu32604607Cu32604607
Cu32604607
 
Agile Maintenance
Agile MaintenanceAgile Maintenance
Agile Maintenance
 
Agile Overview As V1.2
Agile Overview As V1.2Agile Overview As V1.2
Agile Overview As V1.2
 
Softexpert Proje ve Portfolio Yonetimi
Softexpert Proje ve Portfolio YonetimiSoftexpert Proje ve Portfolio Yonetimi
Softexpert Proje ve Portfolio Yonetimi
 
ERP Implementation Methodology
ERP Implementation MethodologyERP Implementation Methodology
ERP Implementation Methodology
 
Agile Business Intelligence - course notes
Agile Business Intelligence - course notesAgile Business Intelligence - course notes
Agile Business Intelligence - course notes
 

Similar to Agile Software Development - Making Programming Fun Again

Agile software development
Agile software development Agile software development
Agile software development saurabh goel
 
Agile Injection, Varberg
Agile Injection, VarbergAgile Injection, Varberg
Agile Injection, VarbergFredrik Wendt
 
Modern Apps and App Lifecycle
Modern Apps and App LifecycleModern Apps and App Lifecycle
Modern Apps and App LifecycleMarc Hoppers
 
Ims Primavera
Ims PrimaveraIms Primavera
Ims Primaveracleary21
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTSMicrosoft Iceland
 
From Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methodsFrom Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methodsBjörn Jónsson
 
Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMDebora Di Piano
 
Planning for Fixed Price Agile projects. Second step_Problem investigation.
Planning for Fixed Price Agile projects. Second step_Problem investigation.Planning for Fixed Price Agile projects. Second step_Problem investigation.
Planning for Fixed Price Agile projects. Second step_Problem investigation.Транслируем.бел
 
Se lect12 btech
Se lect12 btechSe lect12 btech
Se lect12 btechIIITA
 
Se lect13 btech
Se lect13 btechSe lect13 btech
Se lect13 btechIIITA
 
SOFTWARE PROJECT MANAGEMENT TOOL PPT
SOFTWARE PROJECT MANAGEMENT TOOL PPTSOFTWARE PROJECT MANAGEMENT TOOL PPT
SOFTWARE PROJECT MANAGEMENT TOOL PPTSai Charan
 
Chapter 1 1 - intro ppt
Chapter 1   1 - intro pptChapter 1   1 - intro ppt
Chapter 1 1 - intro pptNancyBeaulah_R
 
BDD presentation
BDD presentationBDD presentation
BDD presentationtemebele
 
WorkEngine Overview
WorkEngine OverviewWorkEngine Overview
WorkEngine OverviewEPM Live
 
Heart of agile by Pierre Hervouet
Heart of agile by Pierre HervouetHeart of agile by Pierre Hervouet
Heart of agile by Pierre HervouetAgile ME
 

Similar to Agile Software Development - Making Programming Fun Again (20)

Agile software development
Agile software development Agile software development
Agile software development
 
Agile
AgileAgile
Agile
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
Poor Man's Kanban
Poor Man's KanbanPoor Man's Kanban
Poor Man's Kanban
 
Agile Injection, Varberg
Agile Injection, VarbergAgile Injection, Varberg
Agile Injection, Varberg
 
Modern Apps and App Lifecycle
Modern Apps and App LifecycleModern Apps and App Lifecycle
Modern Apps and App Lifecycle
 
Ims Primavera
Ims PrimaveraIms Primavera
Ims Primavera
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTS
 
From Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methodsFrom Waterfall to Agile - from predictive to adaptive methods
From Waterfall to Agile - from predictive to adaptive methods
 
Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALM
 
Planning for Fixed Price Agile projects. Second step_Problem investigation.
Planning for Fixed Price Agile projects. Second step_Problem investigation.Planning for Fixed Price Agile projects. Second step_Problem investigation.
Planning for Fixed Price Agile projects. Second step_Problem investigation.
 
Agile 101
Agile 101 Agile 101
Agile 101
 
SE chapter 4
SE chapter 4SE chapter 4
SE chapter 4
 
Se lect12 btech
Se lect12 btechSe lect12 btech
Se lect12 btech
 
Se lect13 btech
Se lect13 btechSe lect13 btech
Se lect13 btech
 
SOFTWARE PROJECT MANAGEMENT TOOL PPT
SOFTWARE PROJECT MANAGEMENT TOOL PPTSOFTWARE PROJECT MANAGEMENT TOOL PPT
SOFTWARE PROJECT MANAGEMENT TOOL PPT
 
Chapter 1 1 - intro ppt
Chapter 1   1 - intro pptChapter 1   1 - intro ppt
Chapter 1 1 - intro ppt
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
 
WorkEngine Overview
WorkEngine OverviewWorkEngine Overview
WorkEngine Overview
 
Heart of agile by Pierre Hervouet
Heart of agile by Pierre HervouetHeart of agile by Pierre Hervouet
Heart of agile by Pierre Hervouet
 

More from Calen Legaspi

Agile Myths and Misconceptions
Agile Myths and MisconceptionsAgile Myths and Misconceptions
Agile Myths and MisconceptionsCalen Legaspi
 
The Internet of Things
The Internet of ThingsThe Internet of Things
The Internet of ThingsCalen Legaspi
 
Why Most IT Projects Fail
Why Most IT Projects FailWhy Most IT Projects Fail
Why Most IT Projects FailCalen Legaspi
 
Revisiting the O&B Vision
Revisiting the O&B VisionRevisiting the O&B Vision
Revisiting the O&B VisionCalen Legaspi
 
Lesser Known Opportunities in Technology
Lesser Known Opportunities in TechnologyLesser Known Opportunities in Technology
Lesser Known Opportunities in TechnologyCalen Legaspi
 
Technology Trends & Your Career (Y4IT 2012)
Technology Trends & Your Career (Y4IT 2012)Technology Trends & Your Career (Y4IT 2012)
Technology Trends & Your Career (Y4IT 2012)Calen Legaspi
 

More from Calen Legaspi (6)

Agile Myths and Misconceptions
Agile Myths and MisconceptionsAgile Myths and Misconceptions
Agile Myths and Misconceptions
 
The Internet of Things
The Internet of ThingsThe Internet of Things
The Internet of Things
 
Why Most IT Projects Fail
Why Most IT Projects FailWhy Most IT Projects Fail
Why Most IT Projects Fail
 
Revisiting the O&B Vision
Revisiting the O&B VisionRevisiting the O&B Vision
Revisiting the O&B Vision
 
Lesser Known Opportunities in Technology
Lesser Known Opportunities in TechnologyLesser Known Opportunities in Technology
Lesser Known Opportunities in Technology
 
Technology Trends & Your Career (Y4IT 2012)
Technology Trends & Your Career (Y4IT 2012)Technology Trends & Your Career (Y4IT 2012)
Technology Trends & Your Career (Y4IT 2012)
 

Recently uploaded

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

Agile Software Development - Making Programming Fun Again

  • 1. Agile Software Development making programming fun again
  • 2. How Projects Really Work Software engineering done right.
  • 3. How the customer explained it Software engineering done right.
  • 4. How the project leader understood it Software engineering done right.
  • 5. How the analyst designed it Software engineering done right.
  • 6. How the programmer wrote it Software engineering done right.
  • 7. How the business consultant described it Software engineering done right.
  • 8. How the project was documented Software engineering done right.
  • 9. How much the project cost Software engineering done right.
  • 10. What the customer really needed Software engineering done right.
  • 11. “CHAOS Report” by Standish Group Software engineering done right.
  • 12. Challenged Projects - Reasons  Lack of User Input  Technology  Incomplete Incompetence Requirements &  Lack of Resources Specifications  Unrealistic Expectations  Changing Requirements  Unclear Objectives & Specifications  Unrealistic Time Frames  Lack of Executive  New Technology Support Software engineering done right.
  • 13. Failed Projects - Reasons  Incomplete  Changing Requirements Requirements & Specifications  Lack of User  Lack of Planning Involvement  Didn't Need It Any  Lack of Resources Longer  Unrealistic Expectations  Lack of IT Management  Lack of Executive  Technology Illiteracy Support Software engineering done right.
  • 14. Successful Projects - Reasons  User involvement  Project manager  Executive management expertise support  Financial management  Clear business  Skilled resources objectives  Formal methodology  Optimizing scope  Standard tools and  Agile process methodology Software engineering done right.
  • 15. What's wrong with “Waterfall”? Software engineering done right.
  • 16. What's wrong with “Waterfall”?  Mistakes are hard to find in early stages  Expensive to fix mistakes in later stages  Customers don't know what they want from the beginning  Developers don't know how long a project will take from the beginning  Business needs change Software engineering done right.
  • 17. Effects of “Waterfall”  Death March projects ‒ Mis-estimated schedules lead to successive overtime ‒ Delays in one stage cause delays in succeeding stages  Conflict between customers and developers ‒ Customers don't get the software that they want ‒ Developers don't get clear requirements  Process and tool obsession ‒ People focus on creating artifacts but lose sight of the goal of working software ‒ Processes replace natural communication Software engineering done right.
  • 18. The Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Software engineering done right.
  • 19. Selected Practices  Iterative Development  User Stories  Test-Driven Development  One Team  Self-Managed Teams  Sustainable Pace Software engineering done right.
  • 20. Iterative Development  Software development as an evolutionary process Software engineering done right.
  • 21. Iterative Development  All steps of SDLC are done at each iteration Software engineering done right.
  • 22. Iterative Development  Working software produced at each iteration – No such thing as “X% complete”, only done and not done Software engineering done right.
  • 23. Iterative Development  Benefits ‒ Customers can evaluate what they want and adjust requirements ‒ Developers get better estimates of future tasks ‒ Better communication between customer and developers and among developers  Talk is about something concrete, not abstract ‒ Just enough artifacts are created to produce working software  Less waste Software engineering done right.
  • 24. User Stories Traditional requirements: “The system shall... the system shall...” Software engineering done right.
  • 25. User Stories As a < user role > In order to < business goal > I want to < behavior >  Focus on business goals - Requirements have context  Story-telling is the most natural way of communication Software engineering done right.
  • 26. Test-Driven Development  Bugs are harder to find and fix when found later  Modifying code tends to introduce bugs - Difficult to know if one has introduced bugs without tests  Manual tests are expensive to repeat and provide limited information Software engineering done right.
  • 27. Test-Driven Development  Programmers should write automated tests as they code - Write test before implementation  Provides immediate feedback if their code works  Builds suite of automated tests that can be run each time code is modified  Makes it safe to modify existing code  Frameworks: JUnit, NUnit, hundreds of others... Software engineering done right.
  • 29. TDD Benefits  Code is safe to modify  Tests are excellent documentation - Programmers hate writing documentation, but they like to code  Design improves - Programmers think of their code's behavior before coding - Programmers see their code from a second-person's point-of-view • Is my code readable? Easy to use? - Components become decoupled to facilitate testing Software engineering done right.
  • 30. One Team  Everyone is considered part of one team, including the customer  Developers, testers, business analysts, project managers, web designers, etc, work in the same place, place usually on the same table Software engineering done right.
  • 32. One Team  Faster communication – Issues resolved faster  Natural communication – Face-to-face, ad hoc and continuous throughout the day  Less misunderstanding and antagonism between functional groups Software engineering done right.
  • 33. Self-Managed Teams When teams manage themselves...  Higher motivation  More creative solutions  Faster resolution of issues  Drive for continuous improvement Software engineering done right.
  • 34. Self-Managed Teams Practices/Tools  Daily Stand-Up Meetings  Retrospectives  Big Visible Charts, Whiteboards  Direct access to customers Software engineering done right.
  • 35. Sustainable Pace  Overtime leads to lower productivity  Lowers morale Software engineering done right.
  • 36. Sustainable Pace  Team should measure “velocity” at each iteration  Keep work load within velocity  If iteration load was underestimated, ask customer to decide which features to move to future iterations Software engineering done right.
  • 37. Other Practices...  Planning  Tracking  Continuous Integration  Pair Programming  Refactoring  Planning Boards  Burn-Down Charts  Collective Code Ownership  Coding Standards Many more... Software engineering done right.
  • 38. Agile at Orange & Bronze • Been doing Agile since its foundation in 2005 – Before it became mainstream • We've tried different methodologies and practices – XP, Scrum, Kanban – Not all practices work in all conditions • The first to offer training in Agile methodologies and practices – Scrum, TDD, Agile Business Analysis, Agile QA, etc – Trainers are seasoned practictioners Software engineering done right.