Agile in Action - Act 2: Development


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

Agile in Action - Act 2: Development

  1. 1. The Real World Agile Roadshow – Getting started with Agile Application Lifecycle ManagementAgile in Action – Act 2:The Backend
  2. 2. The ALM Cycle Operations Management Developers Write and Debug Code Solution Requirements Deployment Management Version Control Code Quality Application Lifecycle Database Specialists Quality Solution Assurance and Database Design Architecture Testing Database Versioning Test Data Generation Development | 2
  3. 3. choon@azaas.comThe Windows Azure Platform:A (Very Quick!) Introduction
  4. 4. The Windows Azure Platform choon@azaas.comWindows 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 integrate SCALABLE COMPUTING with on-premises applications AGILITY: Respond quickly to business needs with software and SECURE STORAGE services integration EFFICIENCY: Deploy new solutions SERVICES MANAGEMENT quickly, leveraging existing expertise and assets FOCUS: Invest in delivering WINDOWS AZURE services and value, not on PLATFORM 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. 5. Windows Azure Building Blocks | 5
  6. 6. Windows Azure Compute Services choon@azaas.comScale out by replicating worker Two role types: Web Role & Worker Roleinstances as needed. Windows Azure applications are built with web roles, worker roles, or a combination ofAllows applications to scale both deployed to a number of VM instances.user and compute processingindependently. Each instance runs on its own VM (virtual machine), replicated as needed | 6
  7. 7. Windows Azure Storage Services | 7
  8. 8. Our MicroFinance HD Application … ... 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. 9. Table Storage Basics Each storage account can have an unlimited number of tables with unlimited 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 HTTP transport and verbs (GET/PUT). | 9
  10. 10. DemoDeveloping withWindows Azure | 10
  11. 11. choon@azaas.comVisual Studio 2010 ALM… for Developers
  12. 12. Visual Studio 2010 ALM for Developers Understand and model the application and make changes to source code 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. 13. Typical Agile Developer Tasks 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. 14. Setting Up the Development Environment 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 for details  Workspaces can be private, public or public (limited)  Workspaces can be cloaked or active  Organisations might want to use TFS sidekicks from  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. 15. Identifying and Managing Work 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. 16. Working Offline 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. 17. Enhancing Code Quality Check-in policies are rules that are set at the team project level and enforced 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 using Microsoft.TeamFoundationServer.VersionControl.Client.PolicyBase | 17
  18. 18. Enhancing Code Quality 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. 19. Using TFS Version Control Team Project settings control functionality and behaviour: | 19
  20. 20. Version Control Security 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. 21. Changesets 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. 22. Shelvesets 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. 23. Version Control History 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. 24. Version Control Compare 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. 25. Version Control Lock 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. 26. Branching and Merging 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: | 26
  27. 27. DemoUsing TFS Version Control | 27
  28. 28. | 28
  29. 29.