Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Enterprise agile Process


Published on

A "balancing act" to achieve Agile Reusability an standardize application development for the enterprise.
A collection of agile practices that support the Agile Manifesto
Manage several applications simultaneously
Encourage the creation and use of reusable components at all levels of scale

Published in: Technology
  • Be the first to comment

Enterprise agile Process

  1. 1. Business improvement by Enterprise Agile Process
  2. 2. (About Ravindra) <ul><li>Electronics and communication engineer from Rajasthan university </li></ul><ul><li>Pursuing MBA (IT) from symbiosis international university </li></ul><ul><li>Did project on SAP practice operations management from fujitsu consulting india private limited </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  3. 3. EAP <ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  4. 4. What is EAP? <ul><li>A &quot;balancing act&quot; to achieve Agile Reusability an standardize application development for the enterprise. </li></ul><ul><li>A collection of agile practices that support the Agile Manifesto </li></ul><ul><li>Manage several applications simultaneously </li></ul><ul><li>Encourage the creation and use of reusable components at all levels of scale </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  5. 5. <ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  6. 6. Roles <ul><li>Application Developers </li></ul><ul><li>Coaches/Architects (only when technical guidance and agile practice guidance is needed, otherwise NOT required) </li></ul><ul><li>Team leaders/Scrum masters </li></ul><ul><li>Support: Systems, CM, testing, etc. </li></ul><ul><li>Shared Resources team </li></ul><ul><li>Shared Resources developers </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  7. 7. (continued) <ul><li>Enterprise Architect (needed only if Shared Resources team developers cannot articulate a vision) </li></ul><ul><li>Shared Resources team leader </li></ul><ul><li>Project/Application Sponsors </li></ul><ul><li>Clients: business process owners, external clients </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  8. 8. Project Management <ul><li>Break Multi-Application Project In Sprints == 1-3 month Iterations. </li></ul><ul><li>Break the lifecycle of each individual project into 1 month Sprints (Iterations). Use the All-At-Once Model to develop software: Analysis, Design, Implementation, Testing and finish with an executable release </li></ul><ul><li>Master Product Backlog – Manage everything there is to do through a master prioritized list. This list includes: features, upgrades, release management, configuration management, adopting new tools, etc. </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  9. 9. (continued) <ul><li>Application Product Backlog - Each application contributes to the overall Product Backlog </li></ul><ul><li>Shared Product Backlog - In addition shared Product Backlog contributes to the overall product backlog </li></ul><ul><li>Do daily internal releases to integration boxes </li></ul><ul><li>Test each System through banks of unit tests per application </li></ul><ul><li>Release the product to external customers after a few internal iterations </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  10. 10. (continued) <ul><li>Sprint Planning Meeting: At the beginning of an iteration, get everyone together in one room, prioritize the features of the project and decide which features go into that Sprint == Iteration </li></ul><ul><li>System and Application Spring Planning Meeting </li></ul><ul><li>Sprint Backlog. Break Product Backlog chosen for Sprint into 2-4 hr tasks. Evaluate timelines with these estimates. Recalculate timelines every day after getting the status of completion from the Daily Scrums. </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  11. 11. (continued) <ul><li>Sprint Review Meeting. Give a Demo to the customer after each Sprint. Get customer feedback and reintroduce the feedback into the Product Backlog </li></ul><ul><li>Scrum of Scrums - frequent meetings, once or twice a week, at the same time and place, where team leaders share information about the status of their applications </li></ul><ul><li>Daily Scrums - Daily 15 min. meeting, at the same time and place, where resources report 3 things: </li></ul><ul><ul><li>1) what they worked on for the last 24 hrs. </li></ul></ul><ul><ul><li>2) what issue they have </li></ul></ul><ul><ul><li>3) what they will be working for the next 24 hrs. </li></ul></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  12. 12. (continued) <ul><li>Visible Status - keep a visible chart with the stories and their completion status. Hang it on the wall! (document) </li></ul><ul><li>Sustainable Pace - Practice long-term sustainable development. (In most cases this means don’t exceed 40 hr. of work in the US or 35 in Europe) </li></ul><ul><li>Pair Programming. Use pairs for mentoring, collaboration, and the creation of X-functional team </li></ul><ul><li>Collective Ownership - every developer is responsible for the deliverable and must be able to change, upon coordination, any component of the system </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  13. 13. Analysis <ul><li>CRC Stories - short UCs on CRC (5’’ by 3’’) cards for all Use Cases … then play cards with the customer to decide which features will be implemented! (document) </li></ul><ul><li>Use Case docs only for more complicated behavior (document) </li></ul><ul><li>On-Site Customer - Developers don’t know business rules and business needs…… An on-site customer, or at least an Available Customer is a key priority </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  14. 14. Testing <ul><li>Test first – Write the a unit test for the functionality you are developing before you write the component and maintain the test while you do development. </li></ul><ul><li>Unit Test - Create and maintain a Unit Test for every major component of the system </li></ul><ul><li>Application Regression Testing - base Regression Testing on Unit Tests. Any other way to do it will duplicate resources and knowledge requirements. </li></ul><ul><li>Multi-application/system regression tests. </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  15. 15. Architecture <ul><li>Metaphor - Simple story of how the whole system works (document) </li></ul><ul><li>Simple Design - Don’t add features you are not needing now (YAGNI) </li></ul><ul><li>Layered Architecture through Patterns </li></ul><ul><li>Strong architectural Style, preferably enforced with/through Frameworks </li></ul><ul><li>Refactoring - Redesign without changing the behavior. Refactoring can provide great efficiency gains. </li></ul><ul><li>Coding Standards - all code must look as if it was developed by the same developer </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  16. 16. Layered Architecture <ul><li>Enterprise Agent Network (servlet-based PAC/MVC framework) </li></ul><ul><ul><li>applications </li></ul></ul><ul><ul><li>workflows </li></ul></ul><ul><ul><li>visual components </li></ul></ul><ul><ul><li>services </li></ul></ul><ul><ul><li>transactions </li></ul></ul><ul><ul><li>business objects </li></ul></ul><ul><ul><li>architectural services </li></ul></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  17. 17. Release Management <ul><li>Continuous Integration - Integrate and build the system many times a day. </li></ul><ul><li>Release architectural layers in inverted order </li></ul><ul><li>Use versions to use and simultaneous develop multiple new code bases </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  18. 18. Values and Beliefs <ul><li>Commitment - Care for the project </li></ul><ul><li>Focus - Concentrate on the task at hand </li></ul><ul><li>Openness - Problems, status and plans </li></ul><ul><li>Respect - for other team members and customers </li></ul><ul><li>Courage - Admit faults, request necessary things, talk about things as they are </li></ul><ul><li>Share Knowledge - technical and non-technical </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  19. 19. Examples <ul><li>William Mercer, 3 applications in production </li></ul><ul><li>Nike Securities, 5 application in production </li></ul><ul><li>Caremark, 15 applications in production </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  20. 20. Conclusions <ul><li>Agile Development is a paradigm shift for software development </li></ul><ul><li>EAP is easy and cheap to implement </li></ul><ul><li>EAP can save millions of dollars through reusable components </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>
  21. 21. References – Agile Software <ul><li>EAP: </li></ul><ul><li>Extreme Programming Explained - Kent Beck, Addison and Wesley </li></ul><ul><li>06/07/09 </li></ul><ul><li></li></ul><ul><li>Ravindra EAP </li></ul>