Agile Engineering Environment (Agile Tour 2009 Chengdu)

1,446 views

Published on

Overview of several open source tools which can be integrated together to establish a highly effective agile engineering support environment.

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

No Downloads
Views
Total views
1,446
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
87
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • Agile Engineering Environment (Agile Tour 2009 Chengdu)

    1. 1. An Agile Engineering Environment (in 59 minutes or less) October 24, 2009 Presented by: Vernon Stinebaker ( )
    2. 2. Agenda  Ground rules  Purpose and expected outcomes  About the presenter  An agile engineering environment  Summary  Q&A 2
    3. 3. Ground Rules  Mute your cell phone  Participate – ask and answer questions Do Don’t 3
    4. 4. Purpose and expected outcomes Purpose: – To describe an agile engineering environment and share some options for establishing such an environment Outcomes: – Understand many of the key components that can be used to establish an agile engineering environment – Gain exposure to various tools which can be used to build out an agile engineering environment – Hopefully everyone will walk away with knowledge of at least one new tool (that you can go back and think about putting into use on Monday)
    5. 5. About Me Vernon Stinebaker ( http://www.linkedin.com/in/vernonstinebaker – Director of Technology/Principal Architect – 20+ years software development and process experience • CMMI, SDLC/waterfall, and agile methodologies – Certified ScrumMaster/Certified Scrum Practitioner – 9+ years experience with Feature Driven Development – Founding member of the open source FDD Tools project 5
    6. 6. About Perficient  Established presence in Hangzhou in 2004  150 people in Hangzhou/1500 across Perficient  Early adapter of agile methodologies  17 offices in the US  Public company (NASDAQ: PRFT)  20 CSMs in China  CMMI Level 5 using agile methodology  Track record of success delivering distributed projects using agile 6
    7. 7. Today’s Focus Establishing and Agile Engineering Environment 7
    8. 8. Agile Engineering Environment 8
    9. 9. Agile Engineering Environment  What comprises an agile engineering environment? 8
    10. 10. Agile Engineering Environment  What comprises an agile engineering environment? – The environment itself 8
    11. 11. Agile Engineering Environment  What comprises an agile engineering environment? – The environment itself • Open environment -- bring your screwdriver 8
    12. 12. Agile Engineering Environment  What comprises an agile engineering environment? – The environment itself • Open environment -- bring your screwdriver • No walls, open, whiteboards 8
    13. 13. Agile Engineering Environment  What comprises an agile engineering environment? – The environment itself • Open environment -- bring your screwdriver • No walls, open, whiteboards • Open minds/open culture 8
    14. 14. Agile Engineering Environment  What comprises an agile engineering environment? – The environment itself • Open environment -- bring your screwdriver • No walls, open, whiteboards • Open minds/open culture – Tools 8
    15. 15. Agile Engineering Environment  What comprises an agile engineering environment? – The environment itself • Open environment -- bring your screwdriver • No walls, open, whiteboards • Open minds/open culture – Tools • This is what we’ll focus on today 8
    16. 16. Agile Engineering Environment  What comprises an agile engineering environment? – The environment itself • Open environment -- bring your screwdriver • No walls, open, whiteboards • Open minds/open culture – Tools • This is what we’ll focus on today • What do you use? 8
    17. 17. First things first  If you have a chance to do so, start off right  If you don’t have a chance to start right, set a plan to make things right 9
    18. 18. Pieces of the puzzle  Where do we start? 10
    19. 19. Pieces of the puzzle  Hudson – Simple, single WAR (JAR) installation – Up and running in one command – Excellent plug-in support Co ntin – Advanced features u Inte ous  Not gra the only option tion 11
    20. 20. Pieces of the puzzle  Mercurial – Distributed version control – Works well on-the-go and with distributed teams Ver sion Co ntr ol  Not the only option 12
    21. 21. Pieces of the puzzle IDE  NetBeans – Strong support for a variety of languages – Excellent plug-in support for other components presented – Looks great on the Mac :-)  Not the only option 13
    22. 22. Pieces of the puzzle  xUnit Tes – The granddaddy of Unit Testing t Fra ing – Great IDE support me wo rks  Fit/Fitnesse – The granddaddy of Functional Testing  Selenium – Solid web-UI testing tool – Recording/scripting capabilities  Not the only options 14
    23. 23. Pieces of the puzzle  Review Board – Web based code review – Scalable – Works well for distributed Teams  Not the only option Co de Rev iew 15
    24. 24. Pieces of the puzzle  Sonar – Integrates numerous open source projects – Excellent dashboard  Not the only option Co de Qu alit y 16
    25. 25. Putting it all together Tes t Fra ing IDE me wo rks Co Ver ntin s Co u ion de Inte ous Co Rev gra ntr iew tion ol Co de Qu alit y 17
    26. 26. More pieces? Req Tes t uire me Fra ing IDE nts me wo rks Tes Co Ver tC ntin s Co Ma ase u ion de nag Inte ous Co Rev em gra ntr iew ent tion o l Co Proj Co mm ect de uni Qu (W catio alit iki) ns y 18
    27. 27. A deployment-time view Organizational Requirements Management & Defect Tracking Developer's Desktop Workgroup/Team Organizational DVCS DVCS DVCS IDE (Mercurial) (Mercurial) (Mercurial) Web CI Web CI Web CI Server (Hudson) Server (Hudson) Server (Hudson) Quality Quality Quality (Sonar) (Sonar) (Sonar) 19
    28. 28. Why this toolset?  Cross platform  High degree of integration/interoperability  Scalable  Supported/rapidly developing  Simple – Require little or no configuration – Can be started with just a single command  They ‘just work’  But don’t forget. There are other options! 20
    29. 29. A quick demo  Iftime permits  Script – Mercurial • sudo easy_install mercurial – Download hudson.war • nohup java -jar hudson.war & • Verify and add plug-ins -- Mercurial and Sonar – Download Sonar • unzip, and change to root of unzipped archive • ./bin/macosx-universal-32/sonar.sh start – Download NetBeans, install and run • Create simple Maven app • Configure Hudson in NetBeans • Kick off Hudson build – Verify build in Hudson and review Sonar results 21
    30. 30.  Q&A 22
    31. 31. References Tools discussed – Hudson -- http://hudson-ci.org/ – Mercurial -- http://mercurial.selenic.com/wiki/ – NetBeans -- http://www.netbeans.org – JUnit -- http://www.junit.org/ – Review Board --http://www.reviewboard.org/ – Sonar -- http://sonar.codehaus.org/ – Maven -- http://maven.apache.org/
    32. 32. References Alternatives (one for each, but there are many) – CI • Luntbuild -- http://luntbuild.javaforge.com/ – Version Control • Bazaar -- http://bazaar-vcs.org/en/ – IDE • IDEA -- http://www.jetbrains.com/idea/index.html – Testing Frameworks • TestNG -- http://testng.org/doc/index.html – Code Review • Rietveld -- http://code.google.com/p/rietveld/ – Code Analysis • Checkstyle -- http://checkstyle.sourceforge.net/

    ×