4. Gartner Report for ALM, Sept 2013
Microsoft is leading the
Application Life Cycle
Management with it’s broad
coverage of development cycle
stages and simplicity of
deployment.
6. Work What is SCRUM?
Is an iterative and incremental agile software development framework for managing
software application development
• Enables teams to self-organize by encouraging collaboration of all team members and daily
face to face communication among all team members and disciplines in the project.
• Requirements are captured as
items in a list of “product backlog”
• No specific engineering practices
prescribed
• One of the “agile processes”
7.
8. Manifesto for Agile Software Development
We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value: (http://www.agilemanifesto.org/)
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more
9. Principles behind the Agile Manifesto
• Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
• Welcome changing requirements, even late in development. Agile processes harness change for the customer's
competitive advantage.
• Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the
shorter timescale.
• Business people and developers must work together daily throughout the project.
• Build projects around motivated individuals. Give them the environment and support they need, and trust them
to get the job done.
• The most efficient and effective method of conveying information to and within a development team is face-to-face
conversation.
• Working software is the primary measure of progress.
• Agile processes promote sustainable development. The sponsors, developers, and users should be able to
maintain a constant pace indefinitely.
• Continuous attention to technical excellence and good design enhances agility.
• Simplicity--the art of maximizing the amount of work not done--is essential.
• The best architectures, requirements, and designs emerge from self-organizing teams.
• At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior
accordingly.
10. Product Backlog, Working in Iterations
By defining and managing product
backlog items, your team can capture the
requirements of the product. Your
product owner defines, prioritizes, and
maintains your backlog items. Your team
estimates the effort, the business value
and the priority for each backlog item and
delivers the highest priority items in each
sprint
11. Work on the Kanban board
You can use the Kanban
board to view work in
progress, who's doing the
work, what needs to be done
next, and what's been
accomplished
12. Work on the Kanban board
You can use the Kanban board to view work in progress, who's doing the work, what needs to be done next,
and what's been accomplished
13. Burndown
By reviewing a sprint or release burndown report, you can track how much work remains in a the backlog,
understand how quickly your team has completed tasks, and predict when your team will achieve the goal
or goals of the sprint
15. Collaborate in a team room
Increase team productivity by
discussing work in progress,
asking questions, sharing
status, and clarifying issues
that arise.
Your team room provides an
area for fostering and
capturing communication
among team members, both
near and far.
16. Alerts
As changes occur to work items, code reviews,
source control files, and builds, you can receive
email notifications for alerts that you define.
For example, you can set an alert to be
notified whenever a bug that you opened is
resolved or a work item is assigned to you. You
can set personal alerts or team alerts.
17. BA - Storyboarding
With storyboarding, you
turn your ideas and goals
into something visual. Your
ideas are easier for other
people to understand, so
they can give you
constructive feedback,
sooner. You can bring your
ideas to life with storyboard
shapes, text, animation,
and all the other features
that PowerPoint
Storyboarding provides
18. BA - Request Feedback
Once you have working software, you're ready to get feedback from your stakeholders.
You can ask reviewers to provide videos, screenshots, type-written comments, and
ratings. Their feedback is captured into work items that you can review and use to create
a bug or suggest a new backlog item
19. Version Control
• Local and server workspaces
• Suspend your work
• Check in your work
• Check out and edit
• Add and Download
• Use branches
• Delete or restore
• View and manage past versions
• Compare folders and files
• Work with version control locks
20. Suspend Your Work – Manage Your Shelvesets
For a variety of reasons, sometimes you need to set aside some or all of your
work in progress. Shelvesets are useful when you want to stop work for:
• Interruption: You have pending changes that are not ready for check in, but you need to work
on a different task.
• Collaboration: You have pending changes that are not ready for check in but you need to share
them with another team member.
• Code Review: You want another team member to perform a code review of your pending
changes.
• Private Build: Before you check in your changes, you can use your automated build system to
build and test your code.
• Backup: You have work in progress that you cannot finish now so you want a backup copy that
is stored on your server and available to other team members who might need to access it.
• Handoff: You have work in progress that you want to hand off to another team member.
21. Branch strategically
• How does your team manage sources that
implement different user stories?
• How does the team manage releases from
the version control perspective?
22. SQL Database Projects
• Importing SQL Database to Database Project
• Navigating a Database Project Using Object View and Schema View
• Modifying Database Schema
• Deploying and debugging locally
• Using database schema compare
• Deploying Database to Non-Local Environments
• Using Static Code Analysis on Database Projects
• Using dacpac packages to deploy database
• Creating and Modifying a Data Generation Plan
• Full and Incremental deployment
23. Testing
Visual Studio Ultimate, Visual Studio Premium, and Test Professional include
Microsoft Test Manager to help you define and manage your test plans for manual
and automated system tests. These test plans are stored on Team Foundation
Server, and are closely integrated with its build and application lifecycle
management tools
24. Testing
• Testing using Microsoft Team Web Access and Test Manager
• Plan and CreateManual Tests (Test Case Management)
• Running Manual Tests
• Tracking Bugs - Bugs Management
• Track your test results
• Repeat a test with different data
• Exploratory testing
• Collect more diagnostic data in manual tests
• Record and play back manual tests
• Test on a lab environment
• Tracking software quality
• Automate system tests
• Recommend Test
• System testing your application using Visual Studio
25. Testing - Test Manager
Test Manager lets you create test cases and organize them into test plans and suites.
When you perform a test, Team Web Access displays the test steps and lets you mark
which steps passed or failed. Also Test Manager can record your actions, screenshots,
Intellitrace logs and other diagnostic data. It also lets you manage lab environments
26. Testing – Team Web Access
Team Web Access lets you create test cases
and organize them into test plans and
suites. When you perform a test, Team
Web Access displays the test steps and lets
you mark which steps passed or failed.
27. Testing – Raising Bugs
While you are running Manual Testing, you can create a bug with just one click, the bug
description automatically includes:
• Screenshots taken as you work.
• A record of the actual actions you
performed
• System information such as the operating
system version and machine id.
28. Testing – Tracking and Verifying Bugs
Use the Verify Bugs page to
run the queries that finds
bug created by you or
assigned to you. If you
created a bug, it will be
assigned back to you when
the developer has checked
in the fixed code and has set
the bug’s state to Done
29. Testing – Exploratory testing
While you work with your application, Test Manager can record your actions,
comments, screenshots and other data. Test Manager can write the test case for
you based on the recorded actions
30. Testing – Analyze Test Runs
You can track your progress for your test suites immediately after you run your tests
from Microsoft Test Manager. You can view your progress in the Run Tests activity. You
can view the tests that have passed and failed. You can mark tests as blocked or reset
tests to active when you are ready to run them again
32. Testing - Record and play back manual tests
• Let Microsoft Test Manager record your keystrokes and gestures while you are testing
an application. The next time you run the test, you can play back your actions quickly
and accurately.
• Playback is very useful for reproducing bugs. You can retrace the exact actions that the
tester performed to the point where the fault was discovered
• Playback can also help when you want
to run a test with different data, on
multiple configurations, or where there
are shared steps that are the same in
many test cases. It also speeds up
regression testing—that is, tests that
you run from one sprint to the next to
make sure that everything is still
working correctly
33. Testing - Collect more diagnostic data
While you are testing your application,
Microsoft Test Manager can collect
data that will help diagnose any fault
that you might find. If you create a
bug report while you’re testing, the
data is automatically attached to the
bug work item
34. Testing – Recommended Tests
You can use Microsoft Test
Manager to help you determine
which tests might have to be
run, based on coding changes
that were made to the
application you are testing. To
be able to use this functionality,
you have to use Team
Foundation Build to build your
application and use Visual
Studio for version control for
your source code
35. Testing – Test Automation
• In each sprint, you’ll want to focus your manual test effort on the new requirements
that are implemented in each sprint. At the same time, you’ll want to repeat some of
the tests from previous sprints, to make sure that recent development work hasn’t
introduced bugs into features that were working before. The workload of this
regression testing gradually increases through the life of your project. It’s a necessary
aspect of agile development, which starts with a simple end-to-end implementation and
then revisits each component to add new functionality.
• To reduce the load of regression testing, you can automate the system tests that you
performed manually. Typically you create test cases for each requirement and perform
them manually for one or two sprints; and then you automate some of them for future
sprints
36. Testing – Automated build-deploy-test workflows
Build your application, then deploy it and run automated tests on it in a lab environment.
This workflow enables you to run a series of tests from a test plan, on a deployed
application, as part of your build process. This scenario is common when running build
verification tests.
37. Testing – Run automated tests on multiple computers at the same time
This way the test run can take less time to complete
The test controller communicates with test agents to start tests, stop tests, track test
agent status, and collect test results
38. Testing – Test on a lab environment
A lab environment is a
group of computers that
you manage as a single
entity. If you’re testing a
distributed application
such as a web app, you
can perform realistic
tests by deploying each
component on a
separate machine
39. Testing – Load and Performance Test
You can use web
performance and load
tests on your Web
applications to verify
performance and stress
abilities. Load tests can
be configured to emulate
conditions such as user
loads, browser types,
and network types
40. Build Management
With Team Foundation Build, you can create and manage
build processes that automatically compile and test your
applications, and perform other important functions. You
can use your build system to support a strategy of
continuous integration or put even more rigorous quality
checks in place that prevent bad quality code from
“breaking the build.”
TFS Supports Manual Build, And Continuous Integration
trigger to queue a build when a change is checked in, And
Gated Check-in trigger to queue a build when a team
member tries to check in a change and to block the
change if the build fails
41. Release Management
By using Release Management, your development and operations teams can enable additional
capabilities in TFS 2013 so that they can more easily and confidently configure and automate
complex deployments to a variety of target environments. You can also model release
processes, track approvals and sign-offs, and display release status graphically.
42. Release Management
• Set up release paths that
represent your stages from
development to production.
• Run actions to deploy your
app to an environment for
that stage.
• Add approvers to sign off
that the app has successfully
passed each stage
43. Reports (SQL Server Reporting Services)
You can analyze the progress and quality of your project by
using the reports in SQL Server Reporting Services. These
reports aggregate metrics from work items, version control,
test results, and builds. These reports answer questions about
the actual state of your project.
Most of these reports provide
filters that you can use to
specify contents to include in
the report. Filters include time
period, iteration and area
paths, work item types, and
work item states.
44. Visualize Progress - Charts
You can quickly view
the status of work in
progress by charting
the results of a flat-list
query. You can create
several types of
charts—such as pie,
bar, column, or
stacked column—for
the same query
45. Excel reports
You can use the Microsoft Excel reports to display
information from the data warehouse for your
team project
46. Excel reports – Sharepoint Dashboard
You can use the Microsoft Excel reports to display
information from the data warehouse for your
team project.
48. Visualize Code -Map dependencies across your code on dependency graphs
When you want to understand
dependencies across your code, map
them with Visual Studio Ultimate. This
helps you see how the code fits
together without reading through
files and lines of code
49. Modeling User Requirements with Sequence Diagram
In Visual Studio Ultimate, you
can draw a use case diagram to
summarize who uses your
application or system, and what
they can do with it
50. Layer Diagrams
In Visual Studio Ultimate, you can
use a layer diagram to visualize the
high-level, logical architecture of
your system. A layer diagram
organizes the physical artifacts in
your system into logical, abstract
groups called layers. These layers
describe major tasks that the
artifacts perform or the major
components of your system. Each
layer can also contain nested layers
that describe more detailed tasks
51. UML Activity Diagrams
In Visual Studio Ultimate, you can
draw an activity diagram to
describe a business process or a
software algorithm as a flow of
work through a series of actions.
People, software components, or
devices can perform these actions
52. UML Component Diagrams
In Visual Studio Ultimate, you can
draw a component diagram to
show the structure a software
system
53. UML Class Diagrams
A UML class diagram describes the object and information structures used by your
application, both internally and in communication with its users. It describes the information
without reference to any particular implementation. Its classes and relationships can be
implemented in many ways, such as database tables, XML nodes, or compositions of
software objects
56. Application Insight
Application Insights for Visual Studio Online lets you monitor
your deployed live application:
• Find out what users are doing with your app, so that you can
focus your development work where it’s most useful.
• Make sure your web service is available and responsive.
Whether your app is a web site or a device app that uses a
web service, we’ll test your URL every few minutes from
locations around the world, and let you know if there’s a
problem.
• Quickly diagnose any performance issues or exceptions in
your web service. Find out if CPU or other resources are being
stretched, get stack traces from exceptions, and easily search
through log traces. And if the app’s performance drops below
acceptable limits, we can send you an email. You can monitor
both .NET and Java web services.
58. Synchronize Team Foundation Server with Project Server
By installing Team Foundation Server Extensions for Project Server, project managers can
use Microsoft Project Server to access up-to-date project status and resource availability
across agile and formal software teams who work in Team Foundation. This integration
enables data to flow from work items in Team Foundation Server to tasks in enterprise
project plans in Project Server
59. ALM and Azure
Using Azure virtual machines with release management
deploy applications on azure websites and database
Deploy applications on azure virtual machines