29
[email protected] The Real World Agile Roadshow – Getting started with Agile Application Lifecycle Management Agile in Action – Act 2: The Backend

Agile in Action - Act 2: Development

  • Upload
    spiffy

  • View
    1.119

  • Download
    4

Embed Size (px)

DESCRIPTION

 

Citation preview

  • 1. The Real World Agile Roadshow Getting started with Agile Application Lifecycle ManagementAgile in Action Act 2:The Backend

2. The ALM [email protected] ManagementDevelopersWrite and Debug CodeSolution Requirements DeploymentManagementVersion Control Code Quality ApplicationLifecycle Database SpecialistsQualitySolution Assurance andDatabase Design ArchitectureTesting Database VersioningTest Data Generation Development | 2 3. [email protected] Windows Azure Platform:A (Very Quick!) Introduction 4. The Windows Azure [email protected] Azure is an internet-scale cloud services platform hostedin Microsoft data centers around the world, providing a simple, reliable andpowerful platform for the creation ofweb applications and services. Benefits FLEXIBILITY & CONTROL: Host services in the cloud, or integrateSCALABLE COMPUTING with on-premises applications AGILITY: Respond quickly to business needs with software andSECURE STORAGE services integration EFFICIENCY: Deploy new solutionsSERVICES MANAGEMENTquickly, leveraging existing expertise and assets FOCUS: Invest in deliveringWINDOWS AZUREservices and value, not onPLATFORM INTEGRATION managing technology infrastructure TRUST: A reliable and secure platform, hosted in best-of-class data centers around the world, provided by the leader in service and support| 4 5. Windows Azure Building Blocks [email protected]| 5 6. Windows Azure Compute Services [email protected] out by replicating worker Two role types: Web Role & Worker Roleinstances as needed.Windows Azure applications are built withweb roles, worker roles, or a combination ofAllows applications to scaleboth deployed to a number of VM instances.user and compute processingindependently.Each instance runson its own VM(virtual machine),replicated as needed | 6 7. Windows Azure Storage Services [email protected] | 7 8. Our MicroFinance HD Application [email protected] ... uses Azure Table Storage to store data ... is a web application hosted in a web role ... exposes table storage data through a WCF data service Client applications can access the WCF service: HTML 5 rich client application (with optimizations for IE9 and Safari/iDevices) Windows Phone 7 Silverlight client application (with push notification feature) any native client application through REST/web service calls Different clients provide different, customized user experiences. Focus on re-use, we do not want to write completely new applications| 8 9. Table Storage [email protected] Each storage account can have an unlimited number of tables withunlimited size per table. Tables contain entity objects (rows) which have properties (columns). Each entity requires 3 properties: RowKey, PartitionKey, TimeStamp. The storage API is REST-based storage operations use standard HTTPtransport and verbs (GET/PUT).| 9 10. [email protected] withWindows Azure | 10 11. [email protected] Studio 2010 ALM for Developers 12. Visual Studio 2010 ALM for Developers [email protected] Understand and model the application and make changes to sourcecode that meet users requirements Write code to create new functionality based on users requirements View source code changeset merges and branch hierarchies Resolve version conflicts quickly and easily See detailed information about the effect of changes Use rollback to eliminate the effect of one or more changesets View how code changes affect testing by using Test Impact Analysis Create virtual environments using Visual Studio Lab Management| 12 13. Typical Agile Developer [email protected] Review existing architecture and design Set up the development environment Development and test environments require source code Manage schedules and work Tasks, bugs and other work items are managed against schedules Perform common development tasks Create new code Make code changes select a task or bug check out required files modify code verify that changes are correct check in | 13 14. Setting Up the Development [email protected] Developers will find themselves having to: Update their development environment so that they have the required source code: TFS uses the concept of workspaces to map server resources to dev resources See http://www.woodwardweb.com/teamprise/000333.html for details Workspaces can be private, public or public (limited) Workspaces can be cloaked or active Organisations might want to use TFS sidekicks from www.attrice.info Fix bugs in a released or deployed version of the application this requires a specific version of the source code instead of the latest version Easily achieved with TFS version control| 14 15. Identifying and Managing Work [email protected] Developers typically identify their workload using Work Item queries Queries are available at both team and individual levels Task and Bug are important work items for developers to address Easily accessed through Team Explorer from Visual Studio: | 15 16. Working [email protected] Source Code can be made available for disconnected working Train, plane, on the road A VS 2010 extension is available from the Visual Studio Gallery Go online to commit changes: | 16 17. Enhancing Code Quality [email protected] Check-in policies are rules that are set at the team project level andenforced on developer machines before code can be checked in 4 out-of-the-box, but others available from the TFS Power Tools: Builds - requires that build breaks must be fixed before a new check-in Code Analysis - requires that code analysis is run before check-in Testing Policy - requires that check-in tests are completed before check-in Work Items - requires that one or more work items be associated with the check- in Custom policies can be created in-house usingMicrosoft.TeamFoundationServer.VersionControl.Client.PolicyBase | 17 18. Enhancing Code [email protected] Check-in notes is free-form text that can be associated with a check-in 3 out-of-the-box note types, but others can easily be added Code Review Security Reviewer Performance Reviewer| 18 19. Using TFS Version [email protected] Team Project settings control functionality and behaviour: | 19 20. Version Control Security [email protected] Configurable access permissions deny/grant Windows groups Windows users TFS 2010 groups Inherited from containers or explicit Can be managed from: Team Explorer tf.exe (the administration command line) 3rd party tools | 20 21. [email protected] Represent checked-in changes: Can be associated with work items Can have associated comments Can be the subject of check-in policies Can cause an email notification via alerts Simple HTML or via SOAP web service for complete customization Are atomic they succeed or fail as a unit Are numbered sequentially within Team Project Collections| 21 22. Shelvesets [email protected] Represent server-controlled but unchecked changes Shelvesets are different from changesets There are no shelveset policies (unlike check-in policies) Shelvesets can be deleted Shelvesets are not version-controlled they have no history etc. Shelvesets cannot be linked to work items Shelvesets are often used for: Interrupted work Code review Code handoff Build validation (builds are possible against shelvesets) | 22 23. Version Control [email protected] Allows answers to questions such as: Which work items were completed by a specific file change? Who checked in changes? What changes have been made this week? Have bug fixes been merged across all necessary branches? | 23 24. Version Control [email protected] In-built comparison functionality Files and folders 2 server files/folders 2 local files/folders 1 local file/folder and 1 server file/folder Annotate functionality Shows changes made by each user in earlier versions of a file | 24 25. Version Control [email protected] Temporarily stop changes to files/folders Check-in Users can continue to make local changes in other workspaces Changes cannot be checked-in until the lock is removed Check-out More restrictive Stops users from checking out and making changes Guarantee first check-in to the holder of the lock| 25 26. Branching and Merging [email protected] Branching Creates parallel code versions Isolates risks from different code changes Takes code snapshots for isolated changes (e.g. releases) Helps manage concurrent work by multiple teams Can add complexity Merging Brings together parallel versions Both can be visualised in new TFS 2010 windows Branching and Merging strategies whitepaper:http://msdn.microsoft.com/en-us/library/bb668955.aspx| 26 27. [email protected] TFS Version Control | 27 28. [email protected]| 28 29. [email protected]