Test of the PPT Title


Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Test of the PPT Title

  1. 1. Project management: Adapting Agile/Scrum Krishna Prasad GM (Technology) HCL EAI Services (Formerly Aalayance)
  2. 2. Agenda <ul><li>Describe my experiences in </li></ul><ul><ul><li>Executing an ODC </li></ul></ul><ul><ul><li>Developing and adapting best practices in </li></ul></ul><ul><ul><ul><li>Technology </li></ul></ul></ul><ul><ul><ul><li>Process </li></ul></ul></ul><ul><ul><ul><li>Management </li></ul></ul></ul>
  3. 3. <ul><li>This talk will cover </li></ul><ul><ul><li>Examples from our experience in executing an ODC </li></ul></ul><ul><ul><li>Limitations of certain project management techniques </li></ul></ul><ul><ul><li>How we overcame these limitations </li></ul></ul><ul><li>This talk will not cover </li></ul><ul><ul><li>Basics of project management </li></ul></ul><ul><ul><li>Compare and contrast each model </li></ul></ul>Scope of this talk
  4. 4. How the talk is structured <ul><li>Introduction to our business context </li></ul><ul><li>Illustration of XP and SCRUM </li></ul><ul><ul><li>Introduction to XP and Scrum </li></ul></ul><ul><ul><li>Requirements best practices </li></ul></ul><ul><ul><li>Design and implementation best practices </li></ul></ul><ul><ul><li>Delivery best practices </li></ul></ul><ul><ul><li>Project tracking best practices </li></ul></ul><ul><li>Our lessons and experiences </li></ul><ul><li>Q & A </li></ul>
  5. 5. <ul><li>Client profile </li></ul><ul><ul><li>Products: 7 products including Web time sheet, Vacation tracking and Resource management product </li></ul></ul><ul><ul><li>Business model: Point and click downloads of different products </li></ul></ul><ul><ul><li>Users: Small to medium businesses </li></ul></ul><ul><li>Characteristics of the products </li></ul><ul><ul><li>Focused solutions </li></ul></ul><ul><ul><li>No hassle experience </li></ul></ul><ul><ul><li>Quarterly releases </li></ul></ul><ul><li>ODC should goals </li></ul><ul><ul><li>Rapid product delivery cycle </li></ul></ul><ul><ul><li>Launch web and integration products </li></ul></ul><ul><ul><li>Maintain the launched products </li></ul></ul><ul><ul><li>Manage professional services group </li></ul></ul>Business context
  6. 6. Illustrating XP and SCRUM
  7. 7. What is XP/Scrum? <ul><li>Definitions </li></ul><ul><ul><li>XP: Extreme Programming. Set of best practices for software development </li></ul></ul><ul><ul><ul><li>User Stories, pair programming, test driven development, refactoring, frequent integration </li></ul></ul></ul><ul><ul><li>Agile: A set of best practices in project management </li></ul></ul><ul><ul><ul><li>Iterative incremental project management </li></ul></ul></ul><ul><ul><li>Scrum: A specific variant of Agile </li></ul></ul><ul><ul><ul><li>Characterized by Scrum meetings, product backlogs, Sprints, burn down charts </li></ul></ul></ul><ul><ul><ul><li>Primarily managing the chaos </li></ul></ul></ul><ul><ul><ul><li>Adapted for rapid cycles </li></ul></ul></ul><ul><li>Scrum:PM :: XP:Development </li></ul><ul><li>As release cycles were frequent we used XP and Scrum in all the phases </li></ul>
  8. 8. XP and SCRUM in action
  9. 9. Requirements gathering: XP and Scrum way <ul><li>Requirements gathering </li></ul><ul><ul><li>What is it? </li></ul></ul><ul><ul><li>How did we XP/Scrum? </li></ul></ul><ul><ul><li>Lessons learnt using XP in requirements gathering </li></ul></ul><ul><ul><li>How we overcame the challenges? </li></ul></ul><ul><ul><li>Summing up our experiences </li></ul></ul>
  10. 10. <ul><li>Identify the needs </li></ul><ul><ul><li>Elaborate on the requirement </li></ul></ul><ul><ul><li>Document and prioritize features </li></ul></ul><ul><li>Software requirement specification (SRS) </li></ul><ul><ul><li>Living document </li></ul></ul><ul><ul><li>Maintains a list of requirements </li></ul></ul><ul><ul><li>Prioritizes these requirements </li></ul></ul><ul><li>Identify performance and throughput requirements </li></ul>Requirement gathering: Definition
  11. 11. <ul><li>Scrum product backlog: Requirement tracking </li></ul><ul><ul><li>List of requirements to be completed for the release </li></ul></ul><ul><ul><ul><li>Super set of wish lists from product stake holders </li></ul></ul></ul><ul><ul><ul><li>Maintained and prioritized by one person </li></ul></ul></ul><ul><ul><ul><li>Anyone can request for new requirement to be added </li></ul></ul></ul><ul><li>User stories: Problem definitions of requirements </li></ul>Best practices: Documenting requirements
  12. 12. Typical Scrum product backlog
  13. 13. <ul><li>XP mandates: Domain expert should be part of development team </li></ul><ul><li>In our ODC this was not the case </li></ul><ul><li>How did it go? </li></ul><ul><ul><li>Requirements were not finalized quickly </li></ul></ul><ul><ul><li>Delivery dates were getting impacted </li></ul></ul><ul><li>What is the lesson? </li></ul><ul><ul><li>Requirement should be least 70% complete before development starts </li></ul></ul>Where else we used XP? What lesson we learnt?
  14. 14. <ul><li>Identify strong sponge , </li></ul><ul><ul><li>Who can absorb the requirement in 2-3 weeks short term onsite visit </li></ul></ul><ul><ul><li>Writes detailed problem definition before the design/implementation starts </li></ul></ul><ul><ul><li>Will return offshore and translate problem definition to technical implementation </li></ul></ul><ul><li>We followed water fall model in this phase </li></ul>How we over came the challenges?
  15. 15. Summing up our experiences <ul><li>Waterfall model worked better for requirements gathering in our ODC. </li></ul><ul><li>Requirements should be as close to completion as possible </li></ul><ul><li>We used XP for documenting requirements </li></ul>
  16. 16. Design and implementation: XP way <ul><li>Design and implementation </li></ul><ul><ul><li>What is it? </li></ul></ul><ul><ul><li>How did we use XP? </li></ul></ul><ul><ul><li>How did we use other best practices? </li></ul></ul><ul><ul><li>Summing up our experiences </li></ul></ul>
  17. 17. <ul><li>Map domain to technical requirement </li></ul><ul><li>Identify </li></ul><ul><ul><li>Technological choices : ORM, frameworks, objects, entities, relationship, dataflow </li></ul></ul><ul><ul><li>Resource : People with right skill composition </li></ul></ul><ul><ul><li>Tools : Right IDE </li></ul></ul><ul><li>Setup </li></ul><ul><ul><li>Infrastructure : Nightly build and release, bug tracking </li></ul></ul><ul><ul><li>Process : Code walk through, code analysis, code coverage </li></ul></ul><ul><ul><li>Development environment : Unit testing framework, continuous build integration frameworks </li></ul></ul><ul><li>Implementation </li></ul><ul><ul><li>Coding : Completing the functionality </li></ul></ul><ul><ul><li>Test plans : Document and execute functional test cases </li></ul></ul><ul><ul><li>Test automation : Implement test automation framework </li></ul></ul>Design and implementation: Definition
  18. 18. Best practices: Development <ul><li>XP mentor pair programming </li></ul><ul><ul><li>Problem it solves </li></ul></ul><ul><ul><ul><li>Truck factor and code walk through enforcement problems </li></ul></ul></ul><ul><ul><li>Juniors learns the best practices if paired with seniors </li></ul></ul><ul><li>XP refactoring </li></ul><ul><ul><li>Problem it solves </li></ul></ul><ul><ul><ul><li>Complex code base </li></ul></ul></ul><ul><ul><ul><li>O ver engineering of the system </li></ul></ul></ul><ul><ul><li>Refactor mercilessly to make the code easier to understand, modify, and extend </li></ul></ul><ul><ul><li>Tools: Eclipse, Reshaper </li></ul></ul><ul><li>XP code to standard </li></ul><ul><ul><li>Problem it solves </li></ul></ul><ul><ul><ul><li>Coding standard enforcements </li></ul></ul></ul><ul><ul><li>Keeps the code consistent and easy to read and refactor </li></ul></ul><ul><ul><li>Tools: Eclipse, Fxcop </li></ul></ul>
  19. 19. Tool for code analysis: Fxcop
  20. 20. <ul><li>XP test driven development (TDD) </li></ul><ul><ul><li>Problem it solves </li></ul></ul><ul><ul><ul><li>Ad-hoc unit testing </li></ul></ul></ul><ul><ul><li>Focuses meeting design with requirements , not on testing </li></ul></ul><ul><ul><li>Each unit test corresponds to a requirement </li></ul></ul><ul><ul><li>Provides a consistent way of refactoring </li></ul></ul><ul><ul><li>TDD follows the below rhythm </li></ul></ul><ul><ul><ul><li>Pick a test to implement </li></ul></ul></ul><ul><ul><ul><li>Write a failing test </li></ul></ul></ul><ul><ul><ul><li>Quickly, make the test green </li></ul></ul></ul><ul><ul><ul><li>Refactor to eliminate duplication </li></ul></ul></ul>Best practices: Unit testing
  21. 21. TDD: Process
  22. 22. Tools for TDD: Nunit and NunitASP
  23. 23. Best practices: Build automation <ul><li>XP continuous integration </li></ul><ul><ul><li>Problem it solves </li></ul></ul><ul><ul><ul><li>Broken builds </li></ul></ul></ul><ul><ul><ul><li>Additional resource for integration build </li></ul></ul></ul><ul><ul><li>Build automation needs to be implemented </li></ul></ul><ul><ul><ul><li>Tool: Nant </li></ul></ul></ul><ul><ul><li>Build happens after developer checks in code </li></ul></ul><ul><ul><ul><li>Cruisecontrol keeps tab on integration quality by </li></ul></ul></ul><ul><ul><ul><ul><li>Compiling latest source code </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Creating Database </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Running Unit/regression test </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Deploying onto Test web server </li></ul></ul></ul></ul><ul><ul><ul><li>Tool: Cruisecontrol.net </li></ul></ul></ul>
  24. 24. Tool for build automation: Nant
  25. 25. Tool for continuous build integration: Cruisecontrol.net
  26. 26. <ul><li>Design </li></ul><ul><ul><li>Layered design </li></ul></ul><ul><ul><ul><li>Presentation </li></ul></ul></ul><ul><ul><ul><li>Business </li></ul></ul></ul><ul><ul><ul><li>Data access </li></ul></ul></ul><ul><ul><li>Domain driven design </li></ul></ul><ul><ul><li>ORM for Database connectivity </li></ul></ul><ul><ul><li>Framework-based approach </li></ul></ul><ul><ul><ul><li>Example: Mapping framework in integration module </li></ul></ul></ul>Best practices: Others
  27. 27. <ul><li>Delivery </li></ul><ul><ul><li>Code complete : Complete all functionality </li></ul></ul><ul><ul><li>Code freeze : Test the functionality and bug fixing </li></ul></ul><ul><ul><li>Regression testing : Rigorous testing all platforms </li></ul></ul><ul><ul><li>Basic health test : Smoke testing before release by onsite team </li></ul></ul><ul><ul><li>Release : Internal and external release process </li></ul></ul>Best practices: Others - continued
  28. 28. Summing up our experiences <ul><li>XP provides the best practices in product development </li></ul><ul><li>It help in solving challenges we face during development </li></ul><ul><li>Tools facilitates XP way of development </li></ul>
  29. 29. Project tracking: Scrum way <ul><li>Project tracking </li></ul><ul><ul><li>What is it? </li></ul></ul><ul><ul><li>How did we use Scrum? </li></ul></ul><ul><ul><li>Summing up our experiences </li></ul></ul>
  30. 30. <ul><li>Focuses on what and when to deliver </li></ul><ul><li>Aware of </li></ul><ul><ul><li>Tasks to be completed </li></ul></ul><ul><ul><li>Current state </li></ul></ul><ul><ul><li>Inter dependency </li></ul></ul><ul><ul><li>Challenges and issues </li></ul></ul><ul><li>Plan for delivery date </li></ul><ul><li>Tool: MS project </li></ul>What is project tracking?
  31. 31. Best practices: Status meeting <ul><li>Scrum meeting </li></ul><ul><ul><li>Problem it solves </li></ul></ul><ul><ul><ul><li>Difficulty in forcing decisions due to status quo </li></ul></ul></ul><ul><ul><ul><li>Improper participation from team members </li></ul></ul></ul><ul><ul><li>Daily 30 minutes meeting </li></ul></ul><ul><ul><li>Conversation is restricted to </li></ul></ul><ul><ul><ul><li>What is done since the last Scrum meeting? </li></ul></ul></ul><ul><ul><ul><li>What are the challenges to complete a task? </li></ul></ul></ul><ul><ul><ul><li>What is planned between now and the next Scrum meeting? </li></ul></ul></ul><ul><ul><li>Scrum master </li></ul></ul><ul><ul><ul><li>Makes decisions immediately </li></ul></ul></ul><ul><ul><ul><li>Notes impediments to be resolved externally </li></ul></ul></ul>
  32. 32. Best practices: Project tracking <ul><li>Burndown chart </li></ul><ul><ul><li>Problem it solves </li></ul></ul><ul><ul><ul><li>Scope creeps </li></ul></ul></ul><ul><ul><ul><li>Incorrect estimate </li></ul></ul></ul><ul><ul><li>Monitor progress during a sprint </li></ul></ul><ul><ul><li>Provide an intuitive feel for the progress </li></ul></ul><ul><ul><li>In a chart </li></ul></ul><ul><ul><ul><li>Remaining work: Y axis </li></ul></ul></ul><ul><ul><ul><li>Time: X axis </li></ul></ul></ul><ul><ul><ul><li>If tasks are completed , line slopes down </li></ul></ul></ul><ul><ul><li>If scope creeps happens the chart slopes upward </li></ul></ul>
  33. 33. Typical burndown chart
  34. 34. Best practices: Release management <ul><li>Sprint release </li></ul><ul><ul><li>Problem it solves </li></ul></ul><ul><ul><ul><li>Frequent release due to scope creeps </li></ul></ul></ul><ul><ul><li>Cross functional team consists of around 9 members </li></ul></ul><ul><ul><li>Focus on </li></ul></ul><ul><ul><ul><li>30 days release cycle </li></ul></ul></ul><ul><ul><ul><li>Deliverables as per the goals set by the team </li></ul></ul></ul><ul><ul><li>Sprint team </li></ul></ul><ul><ul><ul><li>Determines what can be delivered </li></ul></ul></ul><ul><ul><ul><li>Restart the sprint if they are working on wrong tasks </li></ul></ul></ul><ul><ul><li>Scrum master: Decides to include new item if it will enhance the viability </li></ul></ul>
  35. 35. Typical sprint release
  36. 36. Summing up our experiences <ul><li>Scrum solved challenges related to status meeting, it improved the effective communication in meetings </li></ul><ul><li>Scrum helped in effectively tracking the product delivery </li></ul><ul><li>Scrum helped in rapid delivery of products using sprints </li></ul>
  37. 37. Conclusion <ul><li>We found inadequacies in various project management techniques </li></ul><ul><li>We evolved an hybrid from various project management processes and practices </li></ul><ul><ul><li>Requirement gathering: Used waterfall model , by sending a business analyst for 2-3 weeks and getting fully baked requirements during inception phase </li></ul></ul><ul><ul><li>Requirement documenting: Used user stories </li></ul></ul><ul><ul><li>Design and implementation: Used XP techniques like TDD, pair programming, continuous integration, code to standard </li></ul></ul><ul><ul><li>Scrum: project tracking </li></ul></ul><ul><li>Just having this best practices in place is not enough, we need to constantly enforce it </li></ul>
  38. 38. Thank You [email_address]
  39. 39. Q & A