0
Agile Software
Development
Process Practice
in Thai Culture
               Weerasak Witthawaskul, Ph.D.
                  ...
Agile                  คล่อง
        Introduction




 ฉบไว
  ั                    พริ้ว
Objective



  a presenter,

    make audiences excited about Agile
 methods,

you will consider applying agile concepts i...
Daily Stand-up Meeting
Who is this presenter?

Agile Software Consultant from
Software Architecture Group member at the
University of Illinois at...
Daily Standup - Thai Cutural Impact
 Traffic
 Shyness to speak in front of crowds
 Not sure what to update
 Afraid to ment...
Release 1 - Iteration Planning
Iteration 0
      Problems with software projects
      How Agile methods help
      Agile ...
Iteration 0
Project Nightmare   Project Deadline
                    Scope Increase
                    Codebase Complexit...
Knowledge Sources




         Where are Thai books?
Knowledge Sources




         Do we have to wait
         for Thai books?
Introducing Agile




”After I moved to Agile, I don't want to go back
to work in non-Agile projects again”


            ...
Introducing Agile
Agile methodology is an umbrella of software
development methods that are based on shared
values and pri...
Agile Values
Individuals and interactions over
                 processes and tools
Working software over
              co...
Thai Cultural Impacts
Afraid of / Reluctant to / Resist to change
Uncomfortable to work closely with senior
management / o...
Agile Organization
Group teams across functional areas
     Business
          ●   Sponsor
          ●   Product Owner – U...
Iteration 1
Common Agile Practices
     Scrum as a project management practice



     XP as an engineering practice
Iteration 1
Scrum as a project management practice
User Stories
Iteration / Sprint
                                               New User Story
                                         ...
Burn-up chart
Burn Down Charts
Retrospective

Feedback meeting at the end of each
iteration
     Team feeback
     Vote and Action Items
Common Agile Methods

XP as an engineering practice
eXtreme Programming
                                      Move People                                   100%
             ...
Pair Programming

          Proverb: สองหัวดีกว่าหัว
          เดียว

          One types (driver), one
          thinks (...
Test Driven Development (TDD)
Little Design Up Front (LDUF)
Test, test, test mentality
      Write tests first before impl...
Demo




Story 1
Title: Customer withdraws cash
As a customer,
I want to withdraw cash from an ATM,
so that I don’t have t...
Demo – ATM Withdrawal
Scenario 1: Account is in credit     Scenario 2: Account is overdrawn past
                         ...
Spec-first Design – User/BA pairing
BA / Dev Pairing



                   Dev Pairing
Test / Code / Test Cycle
Dev done when we see all dots



                    With nested option, test result
            ...
Iteration 2
Introduce Agile into your organization
      Get executive buy-in
      Start with a pilot project
      Gradu...
Practical Advice
Use face-to-face communication
        Walk & talk instead of emails
        Use whiteboard to show progr...
Where is Release 2?
Narisa Tech Talk 7 – Sat Aug 29, 2009
http://tinyurl.com/narisa7
Focusing on technical aspects
      T...
Q&A
Please provide feedback at
http://tinyurl.com/agilefeedback
Upcoming SlideShare
Loading in...5
×

Agile Software Development Process Practice in Thai Culture

2,112

Published on

Presentation from the Thailand Software Park Annual Conference 2009 (http://www.swpark.or.th/swpconference2009/)

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,112
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
104
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Agile Software Development Process Practice in Thai Culture"

  1. 1. Agile Software Development Process Practice in Thai Culture Weerasak Witthawaskul, Ph.D. ThoughtWorks Inc., USA
  2. 2. Agile คล่อง Introduction ฉบไว ั พริ้ว
  3. 3. Objective a presenter, make audiences excited about Agile methods, you will consider applying agile concepts in your projects.
  4. 4. Daily Stand-up Meeting
  5. 5. Who is this presenter? Agile Software Consultant from Software Architecture Group member at the University of Illinois at Urbana-Champaign Pattern Languages of Programs (PLoP) conference chair 2002 ”นายข้าวโพดหวาน”,Voluntary Consultant at since 2003 (Mr SweetCorn)
  6. 6. Daily Standup - Thai Cutural Impact Traffic Shyness to speak in front of crowds Not sure what to update Afraid to mention problems
  7. 7. Release 1 - Iteration Planning Iteration 0 Problems with software projects How Agile methods help Agile principles Iteration 1 Scrum / XP / TDD Iteration 2 Introducing Agile methods to your organization More Information
  8. 8. Iteration 0 Project Nightmare Project Deadline Scope Increase Codebase Complexity Defects Staff Turnover Transparency & Accountability
  9. 9. Knowledge Sources Where are Thai books?
  10. 10. Knowledge Sources Do we have to wait for Thai books?
  11. 11. Introducing Agile ”After I moved to Agile, I don't want to go back to work in non-Agile projects again” - Client Developer
  12. 12. Introducing Agile Agile methodology is an umbrella of software development methods that are based on shared values and principles It focuses on delivering frequent releases of high-quality working software self-organizing teamwork and accountability ● Self-discipline is very important It embraces changes in a flexible, controlled way
  13. 13. Agile Values Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan http://agilemanifesto.org/
  14. 14. Thai Cultural Impacts Afraid of / Reluctant to / Resist to change Uncomfortable to work closely with senior management / other departments? 'Yes, boss' attitude Afraid to show problems until last minutes This is not my code / problem / work
  15. 15. Agile Organization Group teams across functional areas Business ● Sponsor ● Product Owner – Users / Customer Laisons IT Development ● PM / BA / Dev / QA Engineering ● Deployment / Operations Support
  16. 16. Iteration 1 Common Agile Practices Scrum as a project management practice XP as an engineering practice
  17. 17. Iteration 1 Scrum as a project management practice
  18. 18. User Stories
  19. 19. Iteration / Sprint New User Story Project Velocity Release Learn and Plan User Stories Unfinished Tasks Communicate Project New Functionality Next Velocity Iteration Latest Iteration Development Planning Iteration Bug Fixes Version Plan Bugs Failed Acceptance Tests Day by Day Copyright 200 J. D. Wells
  20. 20. Burn-up chart
  21. 21. Burn Down Charts
  22. 22. Retrospective Feedback meeting at the end of each iteration Team feeback Vote and Action Items
  23. 23. Common Agile Methods XP as an engineering practice
  24. 24. eXtreme Programming Move People 100% CRC Around Cards Unit Change We Tests Simple Pair Need Help Passed Design Complex Problem Run All Unit Failed Tests Unit New Unit Next Task Create Test Pair Tests Run Or Failed Programming Continuous Failed a Unit Integration Acceptance Acceptance Test Passed New Test Test Unit Functionality Simple Complex Code Code Refactor Acceptance Mercilessly Test Passed Copyright 200 J. D. Wells
  25. 25. Pair Programming Proverb: สองหัวดีกว่าหัว เดียว One types (driver), one thinks (navigator) Watch out for: Chitchatting Dominator Ping-pong programming
  26. 26. Test Driven Development (TDD) Little Design Up Front (LDUF) Test, test, test mentality Write tests first before implementing new features Write tests first before fixing bugs Tests become Specification Executable, live documents Guards
  27. 27. Demo Story 1 Title: Customer withdraws cash As a customer, I want to withdraw cash from an ATM, so that I don’t have to wait in line at the bank.
  28. 28. Demo – ATM Withdrawal Scenario 1: Account is in credit Scenario 2: Account is overdrawn past the overdraft limit Given the account is in credit Given the account is overdrawn And the card is valid And the card is valid And the dispenser contains cash When the customer requests cash Then ensure a rejection message is When the customer requests cash displayed Then ensure the account is debited And ensure cash is not dispensed And ensure the card is returned And ensure cash is dispensed And ensure the card is returned
  29. 29. Spec-first Design – User/BA pairing
  30. 30. BA / Dev Pairing Dev Pairing
  31. 31. Test / Code / Test Cycle Dev done when we see all dots With nested option, test result becomes documentation
  32. 32. Iteration 2 Introduce Agile into your organization Get executive buy-in Start with a pilot project Gradually apply agile techniques ● Daily Stand-up ● Demo every 2 weeks ● Refactoring ● TDD/Test coverage ● Core pair progamming hours ● Retrospective meeting
  33. 33. Practical Advice Use face-to-face communication Walk & talk instead of emails Use whiteboard to show progress, discuss designs Quick huddle when issues involve more than a pair Early release, active feedback Learn from mistakes as well as try new things Trust
  34. 34. Where is Release 2? Narisa Tech Talk 7 – Sat Aug 29, 2009 http://tinyurl.com/narisa7 Focusing on technical aspects TDD / BDD (Test / Behavior Driven Designs) ● 3 rules of TDD ● Functional tests/ Unit tests / External tests ● How to write maintainable tests Refactoring Techniques Tools ● Automated Build / Tests
  35. 35. Q&A Please provide feedback at http://tinyurl.com/agilefeedback
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×