SlideShare uma empresa Scribd logo
1 de 64
Baixar para ler offline
Agile Technical Practices
          Sandy Mamoli




        @smamol
        www.nomad8.com
user stories

acceptance testing                          unit testing
                                                       TDD
                                                 refactoring
 load testing



coding standards                                  whole team



                                     collective code ownership
pair programming

                   continuous integration
Quality

• Overview of Agile
• Agile Acceptance Testing
• Deployment pipeline (CI)
Agile
What is Agile?

• Software development framework
• Based on adaptive planning
• Used since 1995 (Scrum)
Responding to change

                                              Features: 6 months



                                              As Defined
                                                                           In Changed Form




                                                          Not Wanted Anymore




                                           In Changed Form            Not Wanted Anymore     As Defined



Standish	
  Group,	
  Chaos	
  Report
How does it work?
Incrementing one bit at a time




            1                           2                       3   4   5




© Jeff Patton, all rights reserved, www.AgileProductDesign.com
Vertical slices - feedback & innovation




© Johnathan Rasmussen, The Agile Samurai
Working, shippable software
Build important things first
Technical excellence
Continuous improvement
Agile Quality
Cost of bugs
A more scientific way of saying this ...

                                                                      >150
                         150.0




                         112.5




                          75.0




                                                               50x

                          37.5


                                                        20x
                                         5x      10x
                                 1x
                            0


Source: Standish Group
                                 Reqs   Design   Code   DevT   AccT   Ops
Agile Testing Quadrants



Agile Acceptance Test
Functional Test
Story Test




Unit Tests
The dev’s view

   exploratory testing

   acceptance testing

          unit
        testing
User Stories
“incrementing” builds one bit at a time




            1                          2                        3   4   5




© Jeff Patton, all rights reserved, www.AgileProductDesign.com
Story&ID:&                                        Priority:
                                                    high
             Photo album privacy
                                                  Size:
Descrip/on:                                         13
   As&a&...
            photographer
   I&want&to&...
            make some photo albums private
   So&that&...
             I can have a backup of my personal
             photos online
Acceptance(Criteria
1. I can set the privacy of photo albums
2. I can see my private albums
3. My private albums are not visible to others
Agile Acceptance
     Testing
Agile Testing Quadrants



Agile Acceptance Test
Functional Test
Story Test




Unit Tests
Acceptance tests

• Check that the implementation
  matches the intent
• Focus on shared understanding by
  developers, testers and business people
• End to end
Scenarios

 • Create a new private album
 • Make a public album private
 • Make a private album public



<vertical slices through the acceptance criteria>
Examples

Given I create an album named “My holiday”
When I choose to make it private
Then I can see the album “My holiday”
But Kai cannot see the album
Examples

Given ... <something we accept to be true>
When ...<indicates the event in a scenario>
Then ...<indicates the expected outcome>
<Melomel API>
Cucumber

• Features
• Scenarios
• Steps
• Cucumber command
cucumber: example
cucumber: example

                    Features
cucumber: example

                    Scenarios
cucumber: example

                    Steps
cucumber: example

        Cucumber command
cucumber: example


        Cucumber command
cucumber: example


        Cucumber command
Good practices


• Hide unnecessary detail
• Make tests independent
• Don’t test absolutely everything
Declarative vs. imperative style

    Scenario: transfer money (imperative)
     
      Given I have $100 in checking

      And I have $20 in savings

      When I go to the transfer form

      And I select "Checking" from "Source Account"

      And I select "Savings" from "Target Account"

      And I fill in "Amount" with "15"
     
      And I press "Execute Transfer"
     
      Then I should see that I have $85 in checking
     
      And I should see that I have $35 in savings
Declarative vs. imperative style



  Scenario: transfer money (declarative)
   
    Given I have $100 in checking
   
    And I have $20 in savings
   
    When I transfer $15 from checking to savings
   
    Then I should have $85 in checking
   
Make tests independent




  • Maintenance
  • Where did it fail?
  • Parallelise
Don’t test absolutely everything



               GUI
              Tests


          Acceptance
             Tests


           Unit Tests
Why I like ATDD

• Ensures the intent is well understood
• Ensures the implementation matches the
  intent
• Ensures the implementation keeps matching
  the intent
Living documentation
Unit testing
Agile Testing Quadrants



Agile Acceptance Test
Functional Test
Story Test




Unit Tests
Unit tests
• Check that the program behaves as the
  developer thinks it should
• Tend to be focussed on the structural
  (internal) quality of the code
• Hard for testers and business people to
  understand
Unit tests/TDD

• FlexUnit
• MXUnit
Deployment
  Pipeline
Agile Testing Quadrants



Agile Acceptance Test
Functional Test
Story Test




Unit Tests
As often as possible to get
early and instant feedback
Deployment pipeline




               Deployment pipeline: Jez Humble, www.continuousdelivery.com
Agile deployment pipeline




                  Deployment pipeline: Jez Humble, www.continuousdelivery.com
Deployment pipeline: Commit stage



• Create deployable artifacts
• Or fail fast and notify the team



                        • Triggered by CI server
                        • 5 minutes or less to run
                        • Jenkins, TeamCity, etc
Continuous integration is a practice not a tool




• Commit regularly (at least once a day)
• Fix any broken build immediately
• Write automated tests
Deployment pipeline: Acceptance test stage



• Verify acceptance criteria have been met
• Verify business value



                           • Run in parallel
                           • Refactor
How to get started
• Create a walking skeleton with placeholders
• Automate the build and deploy process
• Automate unit tests and code analysis
• Automate acceptance tests
• Evolve the pipeline
Recommended reading




  +         +
Call to action

• Work on Melomel & Cucumber
• Participate in CI projects (Jenkins)
• Steal from Ruby on Rails :-)
Contact me
   Sandy Mamoli




 @smamol
 sandy@nomad8.com

Mais conteúdo relacionado

Mais procurados

Continuous deployment
Continuous deploymentContinuous deployment
Continuous deploymentDaniel
 
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex Environments
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex EnvironmentsDr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex Environments
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex EnvironmentsAgileSparks
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users AnonymousDave Haeffner
 
PRDC11-tdd-common-mistakes
PRDC11-tdd-common-mistakesPRDC11-tdd-common-mistakes
PRDC11-tdd-common-mistakesAmir Barylko
 
2012 regina TC - 103 quality driven
2012 regina TC - 103 quality driven2012 regina TC - 103 quality driven
2012 regina TC - 103 quality drivenAmir Barylko
 
Simulating Software Teams
Simulating Software Teams Simulating Software Teams
Simulating Software Teams AgileSparks
 
Shirly Ronen - rapid release flow and agile testing-as
Shirly Ronen - rapid release flow and agile testing-asShirly Ronen - rapid release flow and agile testing-as
Shirly Ronen - rapid release flow and agile testing-asAgileSparks
 
Test pyramid agile pune conference
Test pyramid   agile pune conferenceTest pyramid   agile pune conference
Test pyramid agile pune conferenceSachin Natu
 
Scaling Kanban in the Enterprise with GreenHopper
Scaling Kanban in the Enterprise with GreenHopperScaling Kanban in the Enterprise with GreenHopper
Scaling Kanban in the Enterprise with GreenHopperDavid Jellison
 
Automate Debugging with git bisect
Automate Debugging with git bisectAutomate Debugging with git bisect
Automate Debugging with git bisectCamille Bell
 
Scrum + Behavior Driven Development (BDD) - Colombo
Scrum + Behavior Driven Development (BDD) - ColomboScrum + Behavior Driven Development (BDD) - Colombo
Scrum + Behavior Driven Development (BDD) - ColomboNaveen Kumar Singh
 
What is agile_testing
What is agile_testingWhat is agile_testing
What is agile_testingsubhash85
 
Scaling Continuous Integration in the Cloud
Scaling Continuous Integration in the CloudScaling Continuous Integration in the Cloud
Scaling Continuous Integration in the CloudAtlassian
 
Developing for Remote Bamboo Agents, AtlasCamp US 2012
Developing for Remote Bamboo Agents, AtlasCamp US 2012Developing for Remote Bamboo Agents, AtlasCamp US 2012
Developing for Remote Bamboo Agents, AtlasCamp US 2012Atlassian
 
Why your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itWhy your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itFarooq Ali
 
AtlasCamp US 2012 Keynote, Jean-Michel Lemieux
AtlasCamp US 2012 Keynote, Jean-Michel LemieuxAtlasCamp US 2012 Keynote, Jean-Michel Lemieux
AtlasCamp US 2012 Keynote, Jean-Michel LemieuxAtlassian
 
Agile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingAgile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingDimitri Ponomareff
 

Mais procurados (20)

Continuous deployment
Continuous deploymentContinuous deployment
Continuous deployment
 
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex Environments
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex EnvironmentsDr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex Environments
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex Environments
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users Anonymous
 
PRDC11-tdd-common-mistakes
PRDC11-tdd-common-mistakesPRDC11-tdd-common-mistakes
PRDC11-tdd-common-mistakes
 
2012 regina TC - 103 quality driven
2012 regina TC - 103 quality driven2012 regina TC - 103 quality driven
2012 regina TC - 103 quality driven
 
Simulating Software Teams
Simulating Software Teams Simulating Software Teams
Simulating Software Teams
 
Test Automation Pyramid
Test Automation PyramidTest Automation Pyramid
Test Automation Pyramid
 
Shirly Ronen - rapid release flow and agile testing-as
Shirly Ronen - rapid release flow and agile testing-asShirly Ronen - rapid release flow and agile testing-as
Shirly Ronen - rapid release flow and agile testing-as
 
Test pyramid agile pune conference
Test pyramid   agile pune conferenceTest pyramid   agile pune conference
Test pyramid agile pune conference
 
Scaling Kanban in the Enterprise with GreenHopper
Scaling Kanban in the Enterprise with GreenHopperScaling Kanban in the Enterprise with GreenHopper
Scaling Kanban in the Enterprise with GreenHopper
 
Automate Debugging with git bisect
Automate Debugging with git bisectAutomate Debugging with git bisect
Automate Debugging with git bisect
 
Scrum + Behavior Driven Development (BDD) - Colombo
Scrum + Behavior Driven Development (BDD) - ColomboScrum + Behavior Driven Development (BDD) - Colombo
Scrum + Behavior Driven Development (BDD) - Colombo
 
What is agile_testing
What is agile_testingWhat is agile_testing
What is agile_testing
 
Scaling Continuous Integration in the Cloud
Scaling Continuous Integration in the CloudScaling Continuous Integration in the Cloud
Scaling Continuous Integration in the Cloud
 
Developing for Remote Bamboo Agents, AtlasCamp US 2012
Developing for Remote Bamboo Agents, AtlasCamp US 2012Developing for Remote Bamboo Agents, AtlasCamp US 2012
Developing for Remote Bamboo Agents, AtlasCamp US 2012
 
The Test Pyramid
The Test PyramidThe Test Pyramid
The Test Pyramid
 
Why your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itWhy your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating it
 
AtlasCamp US 2012 Keynote, Jean-Michel Lemieux
AtlasCamp US 2012 Keynote, Jean-Michel LemieuxAtlasCamp US 2012 Keynote, Jean-Michel Lemieux
AtlasCamp US 2012 Keynote, Jean-Michel Lemieux
 
Agile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingAgile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated Testing
 
why-tdd
why-tddwhy-tdd
why-tdd
 

Semelhante a Flexing your Agile Muscle - Agile Technical Concepts Explained

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
 
What CS Class Didn't Teach About Testing
What CS Class Didn't Teach About TestingWhat CS Class Didn't Teach About Testing
What CS Class Didn't Teach About TestingCamille Bell
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterDeclan Whelan
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev opsAgile Montréal
 
Agile Testing at eBay
Agile Testing at eBayAgile Testing at eBay
Agile Testing at eBayDominik Dary
 
Definition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementDefinition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementChristian Vos
 
Battle for Code Quality - A Story of One Java Project
Battle for Code Quality - A Story of One Java ProjectBattle for Code Quality - A Story of One Java Project
Battle for Code Quality - A Story of One Java ProjectGlobalLogic Ukraine
 
Engaging IV&V Testing Services for Agile Projects
Engaging IV&V Testing Services for Agile ProjectsEngaging IV&V Testing Services for Agile Projects
Engaging IV&V Testing Services for Agile ProjectsRavi Kumar
 
Testing in a DevOps team
Testing in a DevOps teamTesting in a DevOps team
Testing in a DevOps teamLaurent PY
 
SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA
 
Iakiv Kramarenko: “Quality Driven Development”
Iakiv Kramarenko: “Quality Driven Development” Iakiv Kramarenko: “Quality Driven Development”
Iakiv Kramarenko: “Quality Driven Development” Dakiry
 
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionBeyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionProduct Marketing Services
 
QA Role in Agile Teams
QA Role in Agile Teams QA Role in Agile Teams
QA Role in Agile Teams Synerzip
 
An Overview of automated testing (1)
An Overview of automated testing (1)An Overview of automated testing (1)
An Overview of automated testing (1)Rodrigo Lopes
 
Agile Base Camp - Agile metrics
Agile Base Camp - Agile metricsAgile Base Camp - Agile metrics
Agile Base Camp - Agile metricsSerge Kovaleff
 
Tester Challenges in Agile ?
Tester Challenges in Agile ?Tester Challenges in Agile ?
Tester Challenges in Agile ?alind tiwari
 
Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012Imaginet
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013David Funaro
 

Semelhante a Flexing your Agile Muscle - Agile Technical Concepts Explained (20)

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
 
What CS Class Didn't Teach About Testing
What CS Class Didn't Teach About TestingWhat CS Class Didn't Teach About Testing
What CS Class Didn't Teach About Testing
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
 
Agile Testing at eBay
Agile Testing at eBayAgile Testing at eBay
Agile Testing at eBay
 
Definition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementDefinition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinement
 
Battle for Code Quality - A Story of One Java Project
Battle for Code Quality - A Story of One Java ProjectBattle for Code Quality - A Story of One Java Project
Battle for Code Quality - A Story of One Java Project
 
Engaging IV&V Testing Services for Agile Projects
Engaging IV&V Testing Services for Agile ProjectsEngaging IV&V Testing Services for Agile Projects
Engaging IV&V Testing Services for Agile Projects
 
Agile testing
Agile testingAgile testing
Agile testing
 
Testing in a DevOps team
Testing in a DevOps teamTesting in a DevOps team
Testing in a DevOps team
 
SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612
 
Iakiv Kramarenko: “Quality Driven Development”
Iakiv Kramarenko: “Quality Driven Development” Iakiv Kramarenko: “Quality Driven Development”
Iakiv Kramarenko: “Quality Driven Development”
 
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionBeyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
 
QA Role in Agile Teams
QA Role in Agile Teams QA Role in Agile Teams
QA Role in Agile Teams
 
An Overview of automated testing (1)
An Overview of automated testing (1)An Overview of automated testing (1)
An Overview of automated testing (1)
 
Agile Base Camp - Agile metrics
Agile Base Camp - Agile metricsAgile Base Camp - Agile metrics
Agile Base Camp - Agile metrics
 
Tester Challenges in Agile ?
Tester Challenges in Agile ?Tester Challenges in Agile ?
Tester Challenges in Agile ?
 
Agile process
Agile processAgile process
Agile process
 
Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 

Mais de Sandy Mamoli

Individual performace is irrelevant
Individual performace is irrelevant Individual performace is irrelevant
Individual performace is irrelevant Sandy Mamoli
 
"Gold Medal Me" - Olympic Tips to Be the Best You Can Be
"Gold Medal Me" - Olympic Tips to Be the Best You Can Be"Gold Medal Me" - Olympic Tips to Be the Best You Can Be
"Gold Medal Me" - Olympic Tips to Be the Best You Can BeSandy Mamoli
 
How I Tried holacracy and Lived to Tell the Tale
How I Tried holacracy and Lived to Tell the TaleHow I Tried holacracy and Lived to Tell the Tale
How I Tried holacracy and Lived to Tell the TaleSandy Mamoli
 
Decentralising Leadership - Holacracy for Humans
Decentralising Leadership - Holacracy for Humans Decentralising Leadership - Holacracy for Humans
Decentralising Leadership - Holacracy for Humans Sandy Mamoli
 
Formando Times Memoráveis - Como a auto-seleção proporciona excelência
Formando Times Memoráveis - Como a auto-seleção proporciona excelênciaFormando Times Memoráveis - Como a auto-seleção proporciona excelência
Formando Times Memoráveis - Como a auto-seleção proporciona excelênciaSandy Mamoli
 
Creating Great Teams - How Self-Selection Lets People Excel
Creating Great Teams - How Self-Selection Lets People ExcelCreating Great Teams - How Self-Selection Lets People Excel
Creating Great Teams - How Self-Selection Lets People ExcelSandy Mamoli
 
The Self Selecting Organisation - Total Squadification at Trade Me
The Self Selecting Organisation - Total Squadification at Trade MeThe Self Selecting Organisation - Total Squadification at Trade Me
The Self Selecting Organisation - Total Squadification at Trade MeSandy Mamoli
 
Portfolio Kanban - Seeing the Big Picture
Portfolio Kanban - Seeing the Big Picture Portfolio Kanban - Seeing the Big Picture
Portfolio Kanban - Seeing the Big Picture Sandy Mamoli
 
The evils of multi-tasking and how personal Kanban can help you
The evils of multi-tasking and how personal Kanban can help you The evils of multi-tasking and how personal Kanban can help you
The evils of multi-tasking and how personal Kanban can help you Sandy Mamoli
 
User Stories: Stories for Grown-Ups
User Stories: Stories for Grown-UpsUser Stories: Stories for Grown-Ups
User Stories: Stories for Grown-UpsSandy Mamoli
 
User experience vs. agile development
User experience vs. agile developmentUser experience vs. agile development
User experience vs. agile developmentSandy Mamoli
 

Mais de Sandy Mamoli (12)

Individual performace is irrelevant
Individual performace is irrelevant Individual performace is irrelevant
Individual performace is irrelevant
 
"Gold Medal Me" - Olympic Tips to Be the Best You Can Be
"Gold Medal Me" - Olympic Tips to Be the Best You Can Be"Gold Medal Me" - Olympic Tips to Be the Best You Can Be
"Gold Medal Me" - Olympic Tips to Be the Best You Can Be
 
How I Tried holacracy and Lived to Tell the Tale
How I Tried holacracy and Lived to Tell the TaleHow I Tried holacracy and Lived to Tell the Tale
How I Tried holacracy and Lived to Tell the Tale
 
Decentralising Leadership - Holacracy for Humans
Decentralising Leadership - Holacracy for Humans Decentralising Leadership - Holacracy for Humans
Decentralising Leadership - Holacracy for Humans
 
Formando Times Memoráveis - Como a auto-seleção proporciona excelência
Formando Times Memoráveis - Como a auto-seleção proporciona excelênciaFormando Times Memoráveis - Como a auto-seleção proporciona excelência
Formando Times Memoráveis - Como a auto-seleção proporciona excelência
 
Creating Great Teams - How Self-Selection Lets People Excel
Creating Great Teams - How Self-Selection Lets People ExcelCreating Great Teams - How Self-Selection Lets People Excel
Creating Great Teams - How Self-Selection Lets People Excel
 
The Self Selecting Organisation - Total Squadification at Trade Me
The Self Selecting Organisation - Total Squadification at Trade MeThe Self Selecting Organisation - Total Squadification at Trade Me
The Self Selecting Organisation - Total Squadification at Trade Me
 
Portfolio Kanban - Seeing the Big Picture
Portfolio Kanban - Seeing the Big Picture Portfolio Kanban - Seeing the Big Picture
Portfolio Kanban - Seeing the Big Picture
 
The evils of multi-tasking and how personal Kanban can help you
The evils of multi-tasking and how personal Kanban can help you The evils of multi-tasking and how personal Kanban can help you
The evils of multi-tasking and how personal Kanban can help you
 
Scrum101
Scrum101Scrum101
Scrum101
 
User Stories: Stories for Grown-Ups
User Stories: Stories for Grown-UpsUser Stories: Stories for Grown-Ups
User Stories: Stories for Grown-Ups
 
User experience vs. agile development
User experience vs. agile developmentUser experience vs. agile development
User experience vs. agile development
 

Último

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"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
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
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
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Último (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"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
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
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
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 

Flexing your Agile Muscle - Agile Technical Concepts Explained

Notas do Editor

  1. - Debating with myself - agile or not\n- come from Agile space\n- good technical practices, increase quality &amp; software health \n- whether agile or not great benefits - if agile even more important \n\n
  2. - WHO?\n- ABOUT DELIVERING QUALITY\n- will focus on those 3 \n- who is doing them already? who CI? Who user stories? Who acceptance testing?\n
  3. - WHO?\n- ABOUT DELIVERING QUALITY\n- will focus on those 3 \n- who is doing them already? who CI? Who user stories? Who acceptance testing?\n
  4. - WHO?\n- ABOUT DELIVERING QUALITY\n- will focus on those 3 \n- who is doing them already? who CI? Who user stories? Who acceptance testing?\n
  5. - WHO?\n- ABOUT DELIVERING QUALITY\n- will focus on those 3 \n- who is doing them already? who CI? Who user stories? Who acceptance testing?\n
  6. - WHO?\n- ABOUT DELIVERING QUALITY\n- will focus on those 3 \n- who is doing them already? who CI? Who user stories? Who acceptance testing?\n
  7. - WHO?\n- ABOUT DELIVERING QUALITY\n- will focus on those 3 \n- who is doing them already? who CI? Who user stories? Who acceptance testing?\n
  8. - WHO?\n- ABOUT DELIVERING QUALITY\n- will focus on those 3 \n- who is doing them already? who CI? Who user stories? Who acceptance testing?\n
  9. - WHO?\n- ABOUT DELIVERING QUALITY\n- will focus on those 3 \n- who is doing them already? who CI? Who user stories? Who acceptance testing?\n
  10. - WHO?\n- ABOUT DELIVERING QUALITY\n- will focus on those 3 \n- who is doing them already? who CI? Who user stories? Who acceptance testing?\n
  11. - WHO?\n- ABOUT DELIVERING QUALITY\n- will focus on those 3 \n- who is doing them already? who CI? Who user stories? Who acceptance testing?\n
  12. - WHO?\n- ABOUT DELIVERING QUALITY\n- will focus on those 3 \n- who is doing them already? who CI? Who user stories? Who acceptance testing?\n
  13. \n
  14. - Who? Experience?\n
  15. \n
  16. - recommended development methodology for UK government projects \n-&gt; rapidly emerging standard for organisations providing critical business functionality\n\n
  17. - half life\n- rate of change (1980s 10 - 1990s 5 - 2000 1-2 - 2005 (3 - 6 months), \n- process to accommodate rate of change without ending in chaos\n\n
  18. - to accommodate this rate of change we need to find a framework \n -&gt; accept reality, manage change, flexibility - without ending up in chaos\n- Here&amp;#x2019;s how it works\n
  19. - Mona Lisa - da Vinci\n
  20. - Mona Lisa - da Vinci\n
  21. - Mona Lisa - da Vinci\n
  22. - Mona Lisa - da Vinci\n
  23. - Mona Lisa - da Vinci\n
  24. - vertical slices, \n- innovation (resist change), feedback\n- misunderstood? bug?\nbuilding a car\n\n\n\n\n
  25. - primary measure of progress = working software \n- NO DEFECTS\n- 1) Planning (90%), 2) Done/ROI\n
  26. - functionality is implemented in order of business priority (balancing people and technical risk)\n- management of risk - run out of resources, feedback\n\n
  27. - quality obsessed\n- DoD: -&gt; no known bugs -&gt; airplane disasters \n=&gt; tech. practices help us \n\n
  28. \n
  29. \n
  30. - requirements bugs\n- code bugs\n
  31. - only waterfall numbers - not for Agile =&gt; proves that testing earlier reduced the cost of fix\n- Why?\n
  32. - Building the right thing - building the thing right\n
  33. \n
  34. - Step back and explain Agile requirements\n\n
  35. \n\n\n
  36. - Independently testable by user/business person\n\n
  37. - define the boundaries - conditions of satisfaction\n- State an intent not a solution - Independent of implementation\n- Help a shared understanding\n
  38. - focus on more\n
  39. - focuses on user stories\n- 56% of all defects are requirements defects\n
  40. - Does it do what we want?\n- Also called BDD, ATDD, Specification by Example\n
  41. - How can we test? Define scenarios as vertical slices through the acceptance criteria\n\n
  42. - Very useful as beginning with end in mind\n- It is okay to have more than one outcome in a scenario -&gt; AND, BUT\n\n
  43. - Template for examples\n- Given: not a pre-condition, true =&gt; e.g. given i have $20 in my account, given monday is a holiday\n\n
  44. - wouldn&amp;#x2019;t it be great if we could automate our tests?\n- of course we could test manually - would be a great achievement already - but ...\n- ESPECIALLY AGILE\n
  45. - 1 of many free tools =&gt; anyone using?\n- BDD in a Nutshell\n-&gt; mainly from the RoR world, Java, .Net =&gt; Flex, CF (www.cukes.info)\n\n
  46. - Melomel =&gt;Melomel is an API for accessing ActionScript objects in the Flash virtual machine through external languages. \n- Currently only available for Ruby but it is actively being expanded to other languages.\n\n
  47. - 4 parts: Features/stories - steps - cucumber command\n- NEXT: example\n
  48. \n
  49. - Will guide you though full example - feature/scenario/example/steps/cucumber\n- Simple CRUD\n
  50. - Feature files\n- Scenario headings \n- Happy path, 1 or 2 exception paths (if happened in the past, or risky)\n\n
  51. - Declarative language (avoid click xyz, anything GUI specific) as much as possible \n- Keep implementation independent, keep understandable for non developers\n- Where do I hide the details? Connect the scenarios into code\n\n
  52. - A step is a Given/When/Then/And/But expressed in code\n- Lots of steps come built in (click_link, visit url), possible to nest them\n\n\n
  53. - The cucumber command runs all the *.feature files below the features directory\n- Cucumber is very helpful - generates stubs\n- Tags\n
  54. - Once we have a file with a feature in it we can run it with the cucumber command\n- The cucumber command runs all the *.feature files below the features directory\n
  55. - Tags\n
  56. - details: avoid brittleness (GUI), keep understandable for everyone\n
  57. - What do you think? They do +/-\n- Imperative: more composable -&gt; need fewer step definitions, less work at beginning\n- Declarative: less dependent on GUI, less verbose\n- Balance, taste which easier to read \n\n
  58. \n
  59. \n
  60. - Maintenance, brittle - GUI most expensive, Unit least\n- Happy path, 1 or 2 edge cases - high risk, most common ones\n\n
  61. - speaks everybody&amp;#x2019;s language, involves whole team\n- Advantages\n- Then wrapup repeat\n
  62. - speaks everybody&amp;#x2019;s language, involves whole team\n- Advantages\n- Then wrapup repeat\n
  63. \n
  64. - code facing\n
  65. - Code facing\n
  66. - good frameworks exist - won&amp;#x2019;t focus to much on it\n
  67. - To get the full benefit =&gt; need to run the tests - regular basis\n
  68. - Tie all together - have automation need to run it to get value out of it\n\n
  69. - Tie all together - have automation need to run it to get value out of it\n\n
  70. - Tie all together - have automation need to run it to get value out of it\n\n
  71. Re-iterate goals: small valuable chunks, low cycle time, hgh quality\n
  72. - Jez Humble\n=&gt; release candidates\n- AUTOMATED releases!!!\n\n
  73. - done for each user story (facebook etc)\n- same exit criteria, work in parallel\n- AUTOMATED releases!!!\n
  74. - drill down into 3 automated parts: commit, acceptance, load &amp; capacity\n- coverage: no numbers; commit stage fail if coverage or quality increases (warnings)\n- if it breaks: team&amp;#x2019;s highest priority to fix it!!\n
  75. - Small increments\n- Team agreement\n=&gt; send to other session\n\n
  76. - CI server does this \n
  77. - Start by having one or two of each type test and add to that\n- Unit: new code, every time a bug\n- Acceptance: Most common, if manually testing more than once automate\n- Stuff just talked about - tie back together\n
  78. \n
  79. - great community\n- missing frameworks: cucumber (AIR!) - melomel =&gt; AIR, ColdFusion\n
  80. \n