Lean/Agile Myth #34• Lean and Agile Methodologies are only applicable for greenfield opportunities - Not applicable for brownfield - Not applicable for Package Integration (Thursday @ 9:00 AM) - Not applicable for Application Maintenance Services
Agenda• What are Application Maintenance Services?• Application Maintenance Services Key Components• Why are Application Maintenance Services an Ideal test bed for Lean?• Key Components of Lean AMS Services• Questions
Application Maintenance Services• Application Maintenance Services are the services that are used to support the evolution of a system between the initial development of the system and the de- commissioning.• This includes: - Defect Fixing - Enhancements - Release Planning and execution - Project and Defect Management
Application Maintenance ServicesComponents Business Priorization and Work Ticket Queue Business Value Project Management and Reporting Support Team Release Planning
Work Ticket Queue• At the heart of Application Maintenance Services is a queue or list of all the defects and enhancements that have been reported and requested.• This list is usually kept in true defect systems but can also be kept in Sharepoint Lists or Excel Spreadsheets
Business Priorization and Business Value• Another key component is the active involvement of the business stakeholders to priorize all of the work tickets• In addition, the business is also heavily involved in designing and determining the composition of the releases• Usually the priorization is done at the time of reporting of the defect, and then validated on a recurring basis• There is also the additional focus on business value for each and every ticket. There is limited opportunity to ‘gold plate’ solutions.
Release Planning• Release are planned in Application Maintenance Services in a very iterative manner - Items are reviewed with the business to determine the items which will return the most value - This is reviewed and a schedule is created based on the capacity of the support team - The release size is a negotiation to maximize efficiency and time to market - Plan to schedule recurring releases to provide recurring/predictable business value
Support Team• Application Maintenance Services as usually supported by a semi-permanent team• This team includes resources to resolve work tickets from start to finish. This includes: - Project Management - Analysis - Development - Testing - Implementation
Project Management and Reporting• Application Maintenance Services Project Management and Reporting are typically satisfied by the following processes: - Textual Status Reporting - Weekly team meetings - Work Ticket Reporting
• Why are Application Maintenance Services an Ideal test bed for Lean?
Lean Principles Refresher• Before we review why Application Maintenance Services are an ideal test bed for Lean, let’s do a Lean Principles Refresher
Lean Software Development• Lean Software development is a style of software development that emphasizes customer satisfaction through continuous delivery of functional software. In contrast to traditional software development methods, lean developers liaise continuously with business clients.• Their objective is to deliver working software as frequently as every two weeks during a project, and welcome changes to the requirements in response to evolving business needs.
Lean Software Development• The most crucial aspect of Lean is the execution of the project in iterations and quick feedback loops possible because of these iterations. It is essential to note that these iterations to not just apply to construction, they also apply to the following tasks: - Project Management and Planning - Analysis - Technical Design - Testing - Deployment
Lean Software Development• Iteration planning is ‘the’ key planning initiative - Iterations need to be planned in conjunction with the client to accomplish the following: • Deliver functionality to define the cadence and tempo of the project • Deliver functionality to deliver real value to the client • Deliver functionality to reduce and minimize risk for the entire project • Lessons learned from one iteration must feed into subsequent iterations so that we don’t execute the project in iterations with similar results, but that we execute the project in iterations with better results. - We execute better, smarter, and quicker
Lean Software Development Principles• Eliminate Waste - The three biggest wastes in software development are: - Extra Features - Churn - Crossing Boundaries• Build Quality In - If you routinely find defects in your verification process, your process is defective. - Mistake-Proof Code with Test-Driven Development - Stop Building Legacy Code - The Big Bang is Obsolete
Lean Software Development Principles• Create Knowledge - Planning is useful. Learning is essential. - Use the Scientific Method - Standards Exist to be Challenged and Improved - Predictable Performance is Driven by Feedback• Defer Commitment - Abolish the idea that it is a good idea to start development with a complete specification. - Break Dependencies - Maintain Options - Schedule Irreversible Decisions at the Last Responsible Moment
Lean Software Development Principles• Deliver Fast - Lists and queues are buffers between organizations that simply slow things down. - Rapid Delivery, High Quality, and Low Cost are Fully Compatible - Queuing Theory Applies to Development, not Just Servers - Limit Work to Capacity• Respect People - Engaged, thinking people provide the most sustainable competitive advantage. - Teams Thrive on Pride, Commitment, Trust, and Applause - Provide Effective Leadership - Respect Partners• Optimize the Whole - Brilliant products emerge from a unique combination of opportunity and technology. - Focus on the Entire Value Stream - Deliver a Complete Product - Measure UP
Lean Mandatory Requirements• Iteration length - Maximum Iteration length of 1 month • Day 1 planning • No changes after Day 1 • Day 30 – Demo and installation• Vision must be created before iterations start - Technical (proof of concepts, architecture and vision) - Business (storyboard, requirements document at least 20% complete) - Delay decisions as long as possible. But make architectural or other decisions early if they are required.• Daily progress meetings (15 minutes maximum) - 3 questions - What have you worked on since last meeting - What are you planning to work on next? - Do you have any issues you require assistance on?
Lean Mandatory Requirements• Test driven development - Function specification/test case combined if it makes sense. - Developer also writes the test cases. - Test driven development where it makes sense. This approach may apply more to client functionality than batch or nightly processes.• Requires full access to business users or stakeholders. (Preferably on site)
Lean Mandatory Requirements• Frequent Builds - Build at least weekly internally - Build at least monthly for customer deployment - It is acceptable that the first deployment to the client may not occur until Iteration2.• Sub-deliverables/task size about 1 week maximum (if possible)• Visual Project Management - This is done with a combination of providing the project plan and tasks on SharePoint or other visual means
• Why are Application Maintenance Services an Ideal test bed for Lean?
Lean Application Maintenance ServicesComponentsWork Ticket Queue Business Priorization• Backlog • Frequent Stakeholder Involvement • Limited ‘Gold Plating’ Project Management and ReportingSupport Team Release Planning• Velocity • Deliver in Iterations • Deliver continuous value
Project Management and Reporting• But where does that leave us with Project Management and Reporting• This is one of the large areas that sometimes is not done in a Lean Fashion• There are several simple enhancements that can be made to manage AMS in a Lean Fashion• One of the biggest issues in AMS Project Management is providing the visibility into the progress and status.
Daily Standups• Implement daily 15 minute stand-ups - What did you do yesterday - What are you planning to do today - Do you have any issues?
Visual Project Management• Visual Status Reporting - Graphical Status Reporting - Ticket Board – Literally - Service Level Dashboard - Service Level Trend Dashboard
Graphical Status Reporting504540 Number of Tickets resolved last week35 Number of New Tickets since the last30 status report Number of Tickets scheduled to be25 resolved last week that were not resolved Number of Tickets scheduled to be worked on this week20 Number of Tickets scheduled to be resolved this week15 Number of Tickets not yet started10 5 0 1 2 3 4 5 6
Ticket Board Work Ticket Status Board Resource Triaged Backlog Analysis Construction Testing Complete Issue Manager Business Analyst 1 Business Analyst 2 Java Developer System User Analyst Vendor
Service Level Trend Dashboard 10.9 0.8 0.7 0.6 severity 1 severity 2 0.5 severity 3 0.4 severity 4 0.3 SLA 0.2 SLA 0.1 severity 4 0 severity 3 january severity 2 february march april severity 1 may june july
Conclusion• Application Maintenance Services are an ideal area to try Agile or Lean processes to see how they will work in your corporation• The components of AMS lend themselves easily to iterative development with high stakeholder involvement• The semi-permanent nature of the team also allows for the establishment of team ‘velocity’• The work ticket queue is the product backlog we hear discussed frequently in Agile circles
Background• The information for this presentation has been based on Application Maintenance Services that Protegra has delivered for: - Multiple Government departments - Multiple Financial institutions - Multiple Insurance companies• Protegra currently provides AMS services for 7 corporations.