KEMBAR78
Agile in Action - Act 2: Development | PPTX
The Real World Agile Roadshow – Getting started with Agile Application Lifecycle Management




Agile in Action – Act 2:
The Backend
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
choon@azaas.com




The Windows Azure Platform:
A (Very Quick!) Introduction
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
Windows Azure Building Blocks   choon@azaas.com




                                          |   5
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
Windows Azure Storage Services   choon@azaas.com




                                           |   7
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
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
choon@azaas.com




    Demo
Developing with
Windows Azure

                   |   10
choon@azaas.com




Visual Studio 2010 ALM
… for Developers
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
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
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
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
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
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
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
Using TFS Version Control                                        choon@azaas.com




   Team Project settings control functionality and behaviour:




                                                                           |   19
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
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
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
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
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
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
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
choon@azaas.com




              Demo
Using TFS Version Control


                             |   27
choon@azaas.com




          |   28
choon@azaas.com

Agile in Action - Act 2: Development

  • 1.
    The Real WorldAgile 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
  • 3.
    choon@azaas.com The Windows AzurePlatform: A (Very Quick!) Introduction
  • 4.
    The Windows AzurePlatform 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
  • 5.
    Windows Azure BuildingBlocks choon@azaas.com | 5
  • 6.
    Windows Azure ComputeServices 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
  • 7.
    Windows Azure StorageServices choon@azaas.com | 7
  • 8.
    Our MicroFinance HDApplication … 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
  • 10.
    choon@azaas.com Demo Developing with Windows Azure | 10
  • 11.
    choon@azaas.com Visual Studio 2010ALM … for Developers
  • 12.
    Visual Studio 2010ALM 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 DeveloperTasks 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 theDevelopment 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 ManagingWork 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 VersionControl 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
  • 27.
    choon@azaas.com Demo Using TFS Version Control | 27
  • 28.
  • 29.