SlideShare a Scribd company logo
Agile Engineering Practices – a
Short Overview
Dr. Serhiy Yevtushenko, 08 May 2014
Introduction
• Goal – short overview about existing
engineering practices
• Agile Methods
– Scrum, XP, Kanban, FDD, DSDM, …
• Practice – software development practices
applied within methods
– Some methods (not all) have recommended set of
practices
• One Slide per practice
History – XP & FDD
Extreme Programming Feature Driven
Development
Project size 3-12 2 – 250
Units of planning User Story Feature
Code Ownership Collective Individual
Domain Modeling Shared Metaphor Color Modeling
Collaborative
Construction
Pair Programming Formal Inspection (on
many levels)
Development Testing Unit Testing/Test driven
Development
Unit testing
Integration Testing Automated Acceptance
Testing
Manual Testing
Builds Continuous Integration Daily Builds
Practices/Level of Feedback
Practice Feedback Time
Pair Programming/Code Review/Formal
Inspection
From seconds to 1-2 days
Unit Testing From minutes to tens of minutes
Builds/Continuous Integration 10 minutes – daily
Integration Test/Acceptance Tests Hour(s) – Days
Frequent Releases/Continuous Delivery Tens per day – 1 per quartal
Collaborative construction
Pair Programming
• Joint problem solving &
checking
• Requires coordination of
developers schedule
• Exhaustive
• May not function with
certain pairs
Formal Inspection
• Most formal Code Review
style – with checklists &
metrics tracking
• Most effective & most
heavyweight
• Lightweight code reviews
with systems – viable
alternative
Rotation
• Forced postponed code
review
• Saves times for code
review meetings
• Requires unit testing in
place for functioning
Code Review
• Less coordination required
• Could synchronous and
asynchronous
• Good systems for
distributed code reviews
currently available
Unit Testing
• Two major styles
– Stated Based Testing
– Interaction Based Testing
• Property-based testing (a-la QuickChecks) is currently being
explored
• Difficulty varies
– Class without dependencies (easy)
– …
– GUI code
– Legacy code
– Asynchronous Code
Test Driven Development
THINK !
What is the best way to complete
the code?
TEST!
Add a small failing test
IMPLEMENT!
Add production code, so all tests
will pass
REFACTOR!
Maximally simplify the code
Behaviour Driven Development
• Based on Test Driven Development
• Different language is used for expressing tests
– Behaviour instead of Test
– Should instead of Assert
• Suits good for workflow tests
– Given
– When
– Then
• Tests:
– (a little bit) better documented
– more higher level compared to TDD
Acceptance Testing/Specification by
Example
• Requirements specification intermixed with examples
(in tabular form)
• Focus on doing right things, instead of doing things
right
• Most problematic practice in implementation
– Tests are easy to create
– Hard to debug & maintain, long to run
– Number of framework exists
• They do not always pull their weight
– Business Users involvement is the hardest problem
• Should be supported on architecture level for success
Exploratory Testing
• Skillful manual testing
• Test design and test execution at the same
time
• Sophisticated, thoughtful approach to “ad-
hoc” testing
Polyglot Programming & Domain
Specific Languages
• New Generation of software development
languages
– Groovy, Clojure, Scale, …
• Well-suited for Domain-Specific Languages (DSL)
• Suitable for builds and environment scripting
• Usage of several languages on the same project
could be more productive & beneficial
– Unit Tests Code is more compact in scripting
languages
Continuous Integration
Continuous Testing
• Let’s run tests on every save
• „Continuous Integration“ for individual
developer
Static Code Checking and Monitoring
Agile Databases
• DB Sandbox – DB instance per Developer
• In Memory DB for testing
• Automatic propagation of DB Schema Changes
• Refactoring Databases
• Unit Testing DB Code
• Test Driven Development for Databases
• No SQL – “schemaless” DB
Lightweight Domain Modeling
Continuous Delivery
Q & A
Dr. Serhiy Yevtushenko
codecentric AG
An der Welle 3
60322 Frankfut
serhiy.yevtushenko@codecentric.de
http://asffm.blogspot.de

More Related Content

What's hot (20)

PPT
Trends in Agile Testing by Lisa Crispin
Directi Group
 
PDF
Agile Testing – embedding testing into agile software development lifecycle
Kari Kakkonen
 
PPTX
Agile Testing - presentation for Agile User Group
suwalki24.pl
 
PPTX
Agile Testing – Is it for me and how are others doing it?
Alexander Tarlinder
 
ODP
Presentation on Agile Testing
1Solutions Pvt. Ltd.
 
PPTX
Agile Testing by Example
Mikalai Alimenkou
 
PPT
Scrum Testing Methodology
Gaya1985
 
PPT
Testing in Agile Projects
sriks7
 
PPTX
Introducing QA Into an Agile Environment
Joseph Beale
 
PPTX
Agile testing presentation
Komal Garg
 
PDF
What is Agile Testing?
Dr. Alexander Schwartz
 
PDF
ATD 2018: Journey Ice-cream cone approach
Karla Silva
 
PDF
Agile Adoption Story in LGE (Aps2010)
Woogon Shim
 
PPTX
Why Automated Testing Matters To DevOps
dpaulmerrill
 
PPTX
Agile testing - Testing From Day 1
Kaizenko
 
PPT
Two Things You Must Have for Lasting Agility
Larry Apke
 
PPT
Agile testing
Yogita patil
 
PPT
Agile Tester in a Nutshell
HASTQB
 
ODP
Extreme Programming
Knoldus Inc.
 
PPTX
Guide to Agile testing
Subrahmaniam S.R.V
 
Trends in Agile Testing by Lisa Crispin
Directi Group
 
Agile Testing – embedding testing into agile software development lifecycle
Kari Kakkonen
 
Agile Testing - presentation for Agile User Group
suwalki24.pl
 
Agile Testing – Is it for me and how are others doing it?
Alexander Tarlinder
 
Presentation on Agile Testing
1Solutions Pvt. Ltd.
 
Agile Testing by Example
Mikalai Alimenkou
 
Scrum Testing Methodology
Gaya1985
 
Testing in Agile Projects
sriks7
 
Introducing QA Into an Agile Environment
Joseph Beale
 
Agile testing presentation
Komal Garg
 
What is Agile Testing?
Dr. Alexander Schwartz
 
ATD 2018: Journey Ice-cream cone approach
Karla Silva
 
Agile Adoption Story in LGE (Aps2010)
Woogon Shim
 
Why Automated Testing Matters To DevOps
dpaulmerrill
 
Agile testing - Testing From Day 1
Kaizenko
 
Two Things You Must Have for Lasting Agility
Larry Apke
 
Agile testing
Yogita patil
 
Agile Tester in a Nutshell
HASTQB
 
Extreme Programming
Knoldus Inc.
 
Guide to Agile testing
Subrahmaniam S.R.V
 

Similar to Agile engineering practices – a short overview (20)

PDF
Agile testing
Madhu Packiam Duraisamy
 
PPTX
Agile testing
Sony India Software Center
 
PPTX
Extreme Programming (XP): Revisted
Mike Harris
 
PPTX
03 fse agiledevelopment
Mohesh Chandran
 
PPT
software engineering notes for msc stude
DharaniMani4
 
PPTX
Lean-Agile Development with SharePoint - Bill Ayers
SPC Adriatics
 
PDF
Agile Testing 20021015
Raghu Karnati
 
PDF
Enter the mind of an Agile Developer
BSGAfrica
 
PPTX
Extreme programming - a quick and agile overview !
Vinit Kumar Singh
 
PPTX
"X" Driven-Development Methodologies
Damian T. Gordon
 
PPT
Agile Methodology-extreme programming-23.07.2020.ppt
PerumalPitchandi
 
PPTX
agile modeling in project management.pptx
RahatUllah55
 
PPTX
Extreme programming
Chuu Htet Naing
 
DOCX
Methods of agile
MelaniePascaline
 
ODP
Agile Engineering
John Lewis
 
PDF
Agile Talk 30 Jul 1o2
Akhil Kumar
 
PPTX
Agile-Software-Development in SAP ERP.pptx
tuyethanhftu2
 
PPTX
Software presentation
JennaPrengle
 
PPT
Chapter 3 - Agile Software Development.ppt
RaviRaval36
 
Extreme Programming (XP): Revisted
Mike Harris
 
03 fse agiledevelopment
Mohesh Chandran
 
software engineering notes for msc stude
DharaniMani4
 
Lean-Agile Development with SharePoint - Bill Ayers
SPC Adriatics
 
Agile Testing 20021015
Raghu Karnati
 
Enter the mind of an Agile Developer
BSGAfrica
 
Extreme programming - a quick and agile overview !
Vinit Kumar Singh
 
"X" Driven-Development Methodologies
Damian T. Gordon
 
Agile Methodology-extreme programming-23.07.2020.ppt
PerumalPitchandi
 
agile modeling in project management.pptx
RahatUllah55
 
Extreme programming
Chuu Htet Naing
 
Methods of agile
MelaniePascaline
 
Agile Engineering
John Lewis
 
Agile Talk 30 Jul 1o2
Akhil Kumar
 
Agile-Software-Development in SAP ERP.pptx
tuyethanhftu2
 
Software presentation
JennaPrengle
 
Chapter 3 - Agile Software Development.ppt
RaviRaval36
 
Ad

More from Serhiy Yevtushenko (6)

PDF
TOC ConWIP Kanban
Serhiy Yevtushenko
 
PDF
User story mapping
Serhiy Yevtushenko
 
PDF
Innovation games
Serhiy Yevtushenko
 
PDF
Models for forming teams
Serhiy Yevtushenko
 
PPTX
Impact mapping-cc
Serhiy Yevtushenko
 
PDF
Continuous delivery
Serhiy Yevtushenko
 
TOC ConWIP Kanban
Serhiy Yevtushenko
 
User story mapping
Serhiy Yevtushenko
 
Innovation games
Serhiy Yevtushenko
 
Models for forming teams
Serhiy Yevtushenko
 
Impact mapping-cc
Serhiy Yevtushenko
 
Continuous delivery
Serhiy Yevtushenko
 
Ad

Recently uploaded (20)

PDF
Biomechanics of Gait: Engineering Solutions for Rehabilitation (www.kiu.ac.ug)
publication11
 
PDF
Zilliz Cloud Demo for performance and scale
Zilliz
 
PPTX
The Role of Information Technology in Environmental Protectio....pptx
nallamillisriram
 
PDF
MAD Unit - 1 Introduction of Android IT Department
JappanMavani
 
PPTX
UNIT DAA PPT cover all topics 2021 regulation
archu26
 
PPTX
Product Development & DevelopmentLecture02.pptx
zeeshanwazir2
 
PDF
Unified_Cloud_Comm_Presentation anil singh ppt
anilsingh298751
 
PPTX
Introduction to Neural Networks and Perceptron Learning Algorithm.pptx
Kayalvizhi A
 
PDF
Introduction to Productivity and Quality
মোঃ ফুরকান উদ্দিন জুয়েল
 
PPTX
Snet+Pro+Service+Software_SNET+Pro+2+Instructions.pptx
jenilsatikuvar1
 
PPTX
Shinkawa Proposal to meet Vibration API670.pptx
AchmadBashori2
 
DOC
MRRS Strength and Durability of Concrete
CivilMythili
 
PPTX
GitOps_Repo_Structure for begeinner(Scaffolindg)
DanialHabibi2
 
PPTX
Element 7. CHEMICAL AND BIOLOGICAL AGENT.pptx
merrandomohandas
 
PPTX
artificial intelligence applications in Geomatics
NawrasShatnawi1
 
PPTX
Arduino Based Gas Leakage Detector Project
CircuitDigest
 
PPTX
MobileComputingMANET2023 MobileComputingMANET2023.pptx
masterfake98765
 
PPTX
Break Statement in Programming with 6 Real Examples
manojpoojary2004
 
PPTX
Introduction to Design of Machine Elements
PradeepKumarS27
 
PDF
PORTFOLIO Golam Kibria Khan — architect with a passion for thoughtful design...
MasumKhan59
 
Biomechanics of Gait: Engineering Solutions for Rehabilitation (www.kiu.ac.ug)
publication11
 
Zilliz Cloud Demo for performance and scale
Zilliz
 
The Role of Information Technology in Environmental Protectio....pptx
nallamillisriram
 
MAD Unit - 1 Introduction of Android IT Department
JappanMavani
 
UNIT DAA PPT cover all topics 2021 regulation
archu26
 
Product Development & DevelopmentLecture02.pptx
zeeshanwazir2
 
Unified_Cloud_Comm_Presentation anil singh ppt
anilsingh298751
 
Introduction to Neural Networks and Perceptron Learning Algorithm.pptx
Kayalvizhi A
 
Introduction to Productivity and Quality
মোঃ ফুরকান উদ্দিন জুয়েল
 
Snet+Pro+Service+Software_SNET+Pro+2+Instructions.pptx
jenilsatikuvar1
 
Shinkawa Proposal to meet Vibration API670.pptx
AchmadBashori2
 
MRRS Strength and Durability of Concrete
CivilMythili
 
GitOps_Repo_Structure for begeinner(Scaffolindg)
DanialHabibi2
 
Element 7. CHEMICAL AND BIOLOGICAL AGENT.pptx
merrandomohandas
 
artificial intelligence applications in Geomatics
NawrasShatnawi1
 
Arduino Based Gas Leakage Detector Project
CircuitDigest
 
MobileComputingMANET2023 MobileComputingMANET2023.pptx
masterfake98765
 
Break Statement in Programming with 6 Real Examples
manojpoojary2004
 
Introduction to Design of Machine Elements
PradeepKumarS27
 
PORTFOLIO Golam Kibria Khan — architect with a passion for thoughtful design...
MasumKhan59
 

Agile engineering practices – a short overview

  • 1. Agile Engineering Practices – a Short Overview Dr. Serhiy Yevtushenko, 08 May 2014
  • 2. Introduction • Goal – short overview about existing engineering practices • Agile Methods – Scrum, XP, Kanban, FDD, DSDM, … • Practice – software development practices applied within methods – Some methods (not all) have recommended set of practices • One Slide per practice
  • 3. History – XP & FDD Extreme Programming Feature Driven Development Project size 3-12 2 – 250 Units of planning User Story Feature Code Ownership Collective Individual Domain Modeling Shared Metaphor Color Modeling Collaborative Construction Pair Programming Formal Inspection (on many levels) Development Testing Unit Testing/Test driven Development Unit testing Integration Testing Automated Acceptance Testing Manual Testing Builds Continuous Integration Daily Builds
  • 4. Practices/Level of Feedback Practice Feedback Time Pair Programming/Code Review/Formal Inspection From seconds to 1-2 days Unit Testing From minutes to tens of minutes Builds/Continuous Integration 10 minutes – daily Integration Test/Acceptance Tests Hour(s) – Days Frequent Releases/Continuous Delivery Tens per day – 1 per quartal
  • 5. Collaborative construction Pair Programming • Joint problem solving & checking • Requires coordination of developers schedule • Exhaustive • May not function with certain pairs Formal Inspection • Most formal Code Review style – with checklists & metrics tracking • Most effective & most heavyweight • Lightweight code reviews with systems – viable alternative Rotation • Forced postponed code review • Saves times for code review meetings • Requires unit testing in place for functioning Code Review • Less coordination required • Could synchronous and asynchronous • Good systems for distributed code reviews currently available
  • 6. Unit Testing • Two major styles – Stated Based Testing – Interaction Based Testing • Property-based testing (a-la QuickChecks) is currently being explored • Difficulty varies – Class without dependencies (easy) – … – GUI code – Legacy code – Asynchronous Code
  • 7. Test Driven Development THINK ! What is the best way to complete the code? TEST! Add a small failing test IMPLEMENT! Add production code, so all tests will pass REFACTOR! Maximally simplify the code
  • 8. Behaviour Driven Development • Based on Test Driven Development • Different language is used for expressing tests – Behaviour instead of Test – Should instead of Assert • Suits good for workflow tests – Given – When – Then • Tests: – (a little bit) better documented – more higher level compared to TDD
  • 9. Acceptance Testing/Specification by Example • Requirements specification intermixed with examples (in tabular form) • Focus on doing right things, instead of doing things right • Most problematic practice in implementation – Tests are easy to create – Hard to debug & maintain, long to run – Number of framework exists • They do not always pull their weight – Business Users involvement is the hardest problem • Should be supported on architecture level for success
  • 10. Exploratory Testing • Skillful manual testing • Test design and test execution at the same time • Sophisticated, thoughtful approach to “ad- hoc” testing
  • 11. Polyglot Programming & Domain Specific Languages • New Generation of software development languages – Groovy, Clojure, Scale, … • Well-suited for Domain-Specific Languages (DSL) • Suitable for builds and environment scripting • Usage of several languages on the same project could be more productive & beneficial – Unit Tests Code is more compact in scripting languages
  • 13. Continuous Testing • Let’s run tests on every save • „Continuous Integration“ for individual developer
  • 14. Static Code Checking and Monitoring
  • 15. Agile Databases • DB Sandbox – DB instance per Developer • In Memory DB for testing • Automatic propagation of DB Schema Changes • Refactoring Databases • Unit Testing DB Code • Test Driven Development for Databases • No SQL – “schemaless” DB
  • 18. Q & A Dr. Serhiy Yevtushenko codecentric AG An der Welle 3 60322 Frankfut [email protected] http://asffm.blogspot.de