1. The Real World Agile Roadshow – Getting started with Agile Application Lifecycle Management
Agile in Action – Act 2:
The Backend
2. The ALM Cycle choon@azaas.com
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
4. The Windows Azure Platform choon@azaas.com
Windows Azure is an internet-scale cloud services platform hosted
in Microsoft data centers around the world, providing a simple, reliable and
powerful platform for the creation of
web 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
6. Windows Azure Compute Services choon@azaas.com
Scale out by replicating worker Two role types: Web Role & Worker Role
instances as needed. Windows Azure applications are built with
web roles, worker roles, or a combination of
Allows applications to scale both deployed to a number of VM instances.
user and compute processing
independently.
Each instance runs
on its own VM
(virtual machine),
replicated as needed
| 6
8. Our MicroFinance HD Application … choon@azaas.com
... 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 Basics choon@azaas.com
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
12. Visual Studio 2010 ALM for Developers choon@azaas.com
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. Typical Agile Developer Tasks choon@azaas.com
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 Environment
choon@azaas.com
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 choon@azaas.com
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 Offline choon@azaas.com
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 choon@azaas.com
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. Enhancing Code Quality choon@azaas.com
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 Control choon@azaas.com
Team Project settings control functionality and behaviour:
| 19
20. Version Control Security choon@azaas.com
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. Changesets choon@azaas.com
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 choon@azaas.com
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 History choon@azaas.com
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 Compare choon@azaas.com
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 Lock choon@azaas.com
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 choon@azaas.com
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