The Real World Agile Roadshow – Getting started with Agile Application Lifecycle ManagementAgile in Action – Act 1:Setup, Requirements and Architecture Presented by: Colin Nah Biz-Era.Net Pte Ltd Silver Microsoft ALM Partner
Illustrating ALMGovernanceDevelopmentOperations Idea Deployment End of Life | 2
The ALM Cycle Business Analysts Requirements Management Operations QoS Management Management Requirements Analysis Solution Requirements Architects Deployment Management Architecture Modeling Application Analysis and Design Lifecycle Design for Deployment Quality Solution Assurance and Architecture Testing Project Managers Project Planning Development Task Assignment Bug Tracking
Visual Studio ALM Features Plan and track your project Adopt Agile processes to help turn requirements into software Design and develop functionality Develop, unit test, debug, analyse and profile the application Use source code version control Build/compile the application Test the application by running manual or automated tests Manage testing systematically Deploy into virtual or physical environments
Agile Development Using TFS Complete ‘out-of-the-box’ Agile tooling Provides process enactment – supports your variation of Agile Supports traceability through work item tracking Provides stakeholder visibility via SharePoint portal Supports Windows security/group management Fully integrated with Office clients for non-developer roles Planning tools and reports integrated in Team Projects Customizable and extensible
TFS Process Templates Variety of Agile process templates available MSF for Agile Software Development 5.0 Visual Studio SCRUM 1.0 Scrum for Team System 3.0 … A process template defines: Work item types, templates, categories and links Portal structure Reports and documents Groups and permissions Version control settings All templates can be modified/extended to suit your process The free TFS Power Tools include a visual editor to easily modify process template settings
DemoIntroducing our Sample Project: MicroFinance HD
DemoSetting Up an Agile Project with Visual Studio 2010
Requirements Gathering Purpose: Detailed analysis and collection of business and technical requirements in the requirements specification, taking account of possibly conflicting requirements of various stakeholders such as users. Includes: Stakeholder Analysis: who has requirements for our system? Requirements Analysis: Identify duplicate requirements, consolidate and prioritize requirements, categorize requirements. The Requirements specification document forms the basis for release planning.
How Visual Studio Helps Requirements must be documented, actionable, measurable, testable, traceable, related to business needs or opportunities, and defined to a level of detail sufficient for system design. Requirements can be architectural, structural, behavioral, functional, and non-functional.
Requirements Gathering through Modeling Visual Studio Ultimate provides UML modeling tools: Use case diagrams Link directly to TFS as work items Have acceptance tests linked to Microsoft Test Manager Sequence diagrams Provide details of message interchange in the system Component diagrams Describe the physical structure of the software Activity diagrams Describe business processes and software algorithms Class diagrams Focus on logical data types and their relationships
DemoRequirements Gathering with Visual Studio 2010
SCRUM: An Agile Methodology Scrum is a process skeleton that contains sets of practices (in the form of meetings) and predefined roles. Sprint (Iteration) A sprint is the basic unit of development in Scrum. Sprints tend to last between one week and one month and are a time-boxed (i.e. restricted to a specific duration) effort of a constant length. Each sprint is preceded by a planning meeting, where the tasks for the sprint are identified and an estimated commitment for the sprint goal is made. During each sprint, the team creates a potentially deliverable product increment (for example, working and tested software). The set of features that go into a sprint come from a product backlog, which is a prioritized set of high level requirements of work to be done. Meetings Daily Scrum - Each day during the sprint, a project status meeting occurs. This is called a daily scrum, or the daily standup. Progress since the last meeting is reviewed and issues are discussed. Sprint Planning Meeting - At the beginning of the sprint cycle (every 7–30 days), a Sprint Planning Meeting is held. Work is identified and the backlog is created. Sprint Review Meeting – After completion of an individual Sprint cycle, the progress and work is reviewed and the working product is demo‘ed to stakeholders. Sprint Retrospective – After a Sprint, team members reflect on the Sprint and define potential weaknesses and process improvements.
Agile Planning Tools in Visual Studio 2010 Long range planning tool: Product backlog (holds user stories in MSF Agile 5.0) Release and iteration planning: Iteration backlog (holds user stories and tasks in MSF Agile 5.0)
Agile Planning Tools in Visual Studio 2010 Planning workbooks Integrated with TFS using work item queries Product backlog Defines the requirements of the application Provides an estimated ‘cost’ of the requirements Iteration backlog Defines the scope of the iteration Provides capacity planning capabilities Reports Burndown and Velocity Remaining Work
Agile Planning Tools in Visual Studio 2010 Product backlog workbook: Iteration backlog workbook:
Agile Planning Tools in Visual Studio 2010 Iteration backlog workbook – capacity planning:
Agile Planning Tools in Visual Studio 2010 Remaining work report:
DemoUsing VS 2010 Agile planning tools and workbooks
Architecture Blueprints: Patterns & Practices Patterns & Practices Windows Azure Architecture Guidance - Part 1: Moving applications to the cloud http://msdn.microsoft.com/en-us/library/ff728592.aspx Patterns & Practices Windows Azure Architecture Guidance - Part 2: Developing Applications for the cloud on the Windows Azure Platform http://msdn.microsoft.com/en-us/library/ff966499.aspx Project Silk: Client-Side Web Development for Modern Browsers http://msdn.microsoft.com/en-us/library/hh396380.aspx Windows Phone 7 Developer Guide http://msdn.microsoft.com/en-us/library/gg490765.aspx