SlideShare a Scribd company logo
1 of 61
Agile Practices : case of small teamand small software project ThatchapholSaranurak 11 August 2009
What is ‘Agility’ ?
What is ‘Agility’ ? Coined in 2001 "The ability to move faster than those things that can harm your project…"
Agility matters (in our lives) because of CHANGES
Agility matters (in our lives) because of CHANGES Frequently
Agility matters (in our lives) because of CHANGES Frequently&Simultaneously
CHANGES
Begin -->
Before that… Tune team’s mindset ,[object Object]
 To be open-minded
 To be courageous,[object Object]
Practice : Release frequently Release MonthlyAnd you will…
Practice : Release frequently #1Assure aboutintegration and deployment issues early
Practice : Release frequently You project is alwaysready to submit
Practice : Release frequently Use automated installer(Setup Projectis extremely easy in VS.NET 2008 )
Practice : Release frequently #2Be Productive
Practice : Release frequently Timebox forces you to implement only themostimportant
Practice : Release frequently Reachable goal boosts
Practice : Release frequently #3Get Feedback
Practice : Release frequently Evaluate trade-offs, actively(More memory-efficient, less performance ?)
Practice : Release frequently  Design is gradually more accurate direction
 5 Practices (for small team and small project) Release frequently Design for ideas Test! Code for future Communicate agilely
Practice : Design for ideas  Design idea will be evolving during development(Especially when using unfamiliar technology)
Practice : Design for ideas  If you design it too specifically… (Method details, datatypes, parameters)
Practice : Design for ideas  and even document it
Practice : Design for ideas You will surely REDO it againor else…GET STUCK with your bad design
Suggestion 1 Design in Paper or whiteboard Take a photo for sharing Practice : Design for ideas
Suggestion 2 Practice : Design for ideas CRC design method Class name Responsibility What it is supposed to do ? Collaborator  what other objects it works with ?
Suggestion 3  Practice : Design for ideas Make it easy for test
Suggestion 4  Practice : Design for ideas As simple as possible KISS Principle
 5 Practices (for small team and small project) Release frequently Design for ideas Test! Code for future Communicate agilely
Practice : Test! Test it!programmatically
Practice : Test! Fewer Bugs & Faster DebugKnow problem early and specifically
Practice : Test! Comfortably RefactorNo need to check if it still really works
Practice : Test! Simple DesignTest Before (TDD): design will be never  over complicatedTest After: method that hard to test is need to simplify
Practice : Test! Good DocumentationGood test covers use cases
Practice : Test! Unit Testing Framework(Nunit for .NET, Junit for Java, HttpUnitofr testing web,…)
Practice : Test! Use Mock when method touches another class More Reason for test ? Where to start ?
 5 Practices (for small team and small project) Release frequently Design for ideas Test! Code for future Communicate agilely
Practice : Code for future Your code is used many many more times than it is written
Practice : Code for future Make code EASY to
Practice : Code for future Make code EASY to Read
Practice : Code for future Make code EASY to Read Test
Practice : Code for future Make code EASY to Read Test & Debug
#1 EASY to Read Reader get what code does without reading comment Expressive naming Comment why code does it Use enum Don’t quick hack  Insert +1 or -1  and it just works! Don’t concern performance too much <<1 instead of *2 Practice : Code for future
#2 EASY to Test Query – command separation Make query code has no side-effect (it’s easy to test now) Small class One method one purpose Practice : Code for future
#3 EASY to Debug Always handle or throw all exception No empty catch block Provide useful error messages Categorize them Program defects Environment problems User Error Practice : Code for future
 5 Practices (for small team and small project) Release frequently Design for ideas Test! Code for future Communicate agilely
Practice : Communicate agilely Documents that dictateall of what to do
Practice : Communicate agilely Documents that dictateall of what to do
Practice : Communicate agilely Need more dynamic communication techniques
Practice : Communicate agilely Complete but Flexible
Stand up Meeting Twice a week Everybody answers in 3 minutes What did I do? What will I do? What problems I  face? Everybody Stands Up And you ain’tgonna waste time :)
PivotalTracker(Project Management Software)
PivotalTracker(Project Management Software) User story Focus on features Measure velocity Can generate charts
Mailing List For Sharing Ideas New design ? Problem’s solution ? Important Issue ?
Message in Version Control You know
Practice : Communicate agilely Stand up MeetingPivotalTrackerMailing ListMessage in Version Control
Conclusion This concludes Agile practicesI suggest  for small  team and small project
Conclusion However, there are… Many Other Practices
Conclusion And Many Ways to Apply How? Image fromhttp://www.flickr.com/photos/legojeff/1296661311/

More Related Content

What's hot

I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application Testing
Peter Presnell
 
Alexandru Bolboaca - Unit Testing from the Trenches
Alexandru Bolboaca - Unit Testing from the TrenchesAlexandru Bolboaca - Unit Testing from the Trenches
Alexandru Bolboaca - Unit Testing from the Trenches
Mozaic Works
 

What's hot (20)

From objectives to materials
From objectives to materialsFrom objectives to materials
From objectives to materials
 
Striving for zero bugs
Striving for zero bugsStriving for zero bugs
Striving for zero bugs
 
Improve your TDD skills
Improve your TDD skillsImprove your TDD skills
Improve your TDD skills
 
Preocupações Desenvolvedor Ágil
Preocupações Desenvolvedor ÁgilPreocupações Desenvolvedor Ágil
Preocupações Desenvolvedor Ágil
 
Testing in the Wild
Testing in the WildTesting in the Wild
Testing in the Wild
 
Reactome: Usability testing - is it useful?
Reactome: Usability testing - is it useful? Reactome: Usability testing - is it useful?
Reactome: Usability testing - is it useful?
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application Testing
 
Introduction to test programming
Introduction to test programmingIntroduction to test programming
Introduction to test programming
 
Technical Writing Overview: WTD Nigeria
Technical Writing Overview: WTD NigeriaTechnical Writing Overview: WTD Nigeria
Technical Writing Overview: WTD Nigeria
 
Dancing for a product release
Dancing for a product releaseDancing for a product release
Dancing for a product release
 
Mistakes I have made
Mistakes I have madeMistakes I have made
Mistakes I have made
 
Peer review
Peer reviewPeer review
Peer review
 
Pragmatic 1
Pragmatic 1Pragmatic 1
Pragmatic 1
 
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingMaking the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To Testing
 
Easy and affordable user testing - Front Trends 2017
Easy and affordable user testing - Front Trends 2017Easy and affordable user testing - Front Trends 2017
Easy and affordable user testing - Front Trends 2017
 
A Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven DevelopmentA Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven Development
 
What You are Doing Wrong with Automated Testing
What You are Doing Wrong with Automated TestingWhat You are Doing Wrong with Automated Testing
What You are Doing Wrong with Automated Testing
 
Is Groovy better for testing than Java?
Is Groovy better for testing than Java?Is Groovy better for testing than Java?
Is Groovy better for testing than Java?
 
Alexandru Bolboaca - Unit Testing from the Trenches
Alexandru Bolboaca - Unit Testing from the TrenchesAlexandru Bolboaca - Unit Testing from the Trenches
Alexandru Bolboaca - Unit Testing from the Trenches
 
Life of a Remote Developer - Productivity tips (MSBuild 2020)
Life of a Remote Developer - Productivity tips (MSBuild 2020)Life of a Remote Developer - Productivity tips (MSBuild 2020)
Life of a Remote Developer - Productivity tips (MSBuild 2020)
 

Similar to Agile Practices

Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
Svetlin Nakov
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
Igor Moochnick
 

Similar to Agile Practices (20)

Best pratice
Best praticeBest pratice
Best pratice
 
Test-Driven Development
 Test-Driven Development  Test-Driven Development
Test-Driven Development
 
TDD in Agile
TDD in AgileTDD in Agile
TDD in Agile
 
TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019
 
Design Sprints
Design SprintsDesign Sprints
Design Sprints
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven Development
 
Intro to TDD
Intro to TDDIntro to TDD
Intro to TDD
 
Introduction to TDD
Introduction to TDDIntroduction to TDD
Introduction to TDD
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
iOS Test-Driven Development
iOS Test-Driven DevelopmentiOS Test-Driven Development
iOS Test-Driven Development
 
Intro to Agile Practices and Values
Intro to Agile Practices and ValuesIntro to Agile Practices and Values
Intro to Agile Practices and Values
 
What is Agile Scrum
What is Agile ScrumWhat is Agile Scrum
What is Agile Scrum
 
Unit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking SkeletonUnit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking Skeleton
 
Never show a design you haven't tested
Never show a design you haven't testedNever show a design you haven't tested
Never show a design you haven't tested
 
The Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The BeginningThe Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The Beginning
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
 
Agile testing
Agile testingAgile testing
Agile testing
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
 
Continuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul StackContinuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul Stack
 

More from Thatchaphol Saranurak

Max flows via electrical flows (long talk)
Max flows via electrical flows (long talk)Max flows via electrical flows (long talk)
Max flows via electrical flows (long talk)
Thatchaphol Saranurak
 
Summary of "A Universally-Truthful Approximation Scheme for Multi-unit Auction"
Summary of "A Universally-Truthful Approximation Scheme for Multi-unit Auction"Summary of "A Universally-Truthful Approximation Scheme for Multi-unit Auction"
Summary of "A Universally-Truthful Approximation Scheme for Multi-unit Auction"
Thatchaphol Saranurak
 

More from Thatchaphol Saranurak (9)

Computer Science in Saarland
Computer Science in Saarland Computer Science in Saarland
Computer Science in Saarland
 
Max flows via electrical flows (long talk)
Max flows via electrical flows (long talk)Max flows via electrical flows (long talk)
Max flows via electrical flows (long talk)
 
เรียนต่อเยอรมนีที่ Saarland University
เรียนต่อเยอรมนีที่ Saarland Universityเรียนต่อเยอรมนีที่ Saarland University
เรียนต่อเยอรมนีที่ Saarland University
 
Summary of "A Universally-Truthful Approximation Scheme for Multi-unit Auction"
Summary of "A Universally-Truthful Approximation Scheme for Multi-unit Auction"Summary of "A Universally-Truthful Approximation Scheme for Multi-unit Auction"
Summary of "A Universally-Truthful Approximation Scheme for Multi-unit Auction"
 
A Universally-Truthful Approximation Scheme for Multi-unit Auction
A Universally-Truthful Approximation Scheme for Multi-unit AuctionA Universally-Truthful Approximation Scheme for Multi-unit Auction
A Universally-Truthful Approximation Scheme for Multi-unit Auction
 
แข่งเขียนโปรแกรม
แข่งเขียนโปรแกรมแข่งเขียนโปรแกรม
แข่งเขียนโปรแกรม
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
No-Mouse Word Processor
No-Mouse Word ProcessorNo-Mouse Word Processor
No-Mouse Word Processor
 
Augmented Reality -- very brief
Augmented Reality -- very briefAugmented Reality -- very brief
Augmented Reality -- very brief
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Agile Practices

Editor's Notes

  1. You will not face “die at the end” event because of Integration or Deployment problems.
  2. More memory-efficient, less performance ?Evaluate trade-offsDesign
  3. How to build agile atmospherePair programmingHow to deal with customer ….