MSF Agile - Embarcadero Technologies

Download Report

Transcript MSF Agile - Embarcadero Technologies

MSF for Agile
Software
Development
Granville Miller
8 November 2005
Project Failure Rates
2000
1998
Failed
Challenged
Succeeded
23%
49%
28%
28%
1995
1994
46%
40%
31%
26%
33%
53%
27%
16%
This chart depicts the outcome of the 30,000 application projects in large, medium,
and small cross-industry U.S. companies tested by The Standish Group since 1994.
Source: The Standish Group International, Extreme Chaos, The Standish Group
International, Inc., 2000
The State is Improving

Small Releases

Increased Customer Involvement
Agile Manifesto




Individuals and interactions over
processes and tools
Working software over
comprehensive documentation
Customer collaboration over contract
negotiation
Responding to change over following
a plan
Source: http://www.agilemanifesto.org/
What are Personas?


In the context of product development,
personas are descriptions of a group
of typical users.
Instead of talking about the group of
users in an abstract, impersonal way, a
persona represents a 'proxy' for the
user group, and provides a means to
talk and reason about the group
through the characteristics of one
fictional individual, the persona.
Where do Personas Fit?
On-site
Customer
Persona
Actor
Customer Involvement
Personas
Scenarios
Working Software
Review
Refine
Real Customers
Personas at Microsoft
Source: http://www.research.microsoft.com/research/coet/Grudin/Personas/Pruitt-Grudin.doc
What is in a Persona?


A persona describes the typical
knowledge, skills, abilities, needs,
desires, working habits, tasks, usage
patterns and backgrounds of a
particular set of users.
A persona is fictional reality, collecting
together real data describing the
important characteristics of a
particular user group in a fictional
character.
Jack



Role: Online Shopper
Motivation: Get it Quick
Usage: Jack hates to shop but wants
his equipment immediately. He will
place his order on Thursday night for
his weekend activity. Jack doesn’t want
to wade through a catalog. Instead, he
wants things that he typically orders to
show immediately.
Judith



Role: Online Shopper
Motivation: Get it Cheap
Usage: Judith shops for the best
bargain. She looks for the best deal on
similar items. She will visit half a dozen
sites to find the best deal.
MSF for Agile Software
Development



Scenario-driven development process
for building .NET, Web, Web Service,
and other object-oriented applications.
Directly incorporates practices for
handling quality of service
requirements such as performance and
security.
Utilizes a context-driven approach
(context-based) to determine how to
operate the project.
Getting the Whole Team
Involved
Larry
Sykes
Business Analyst
Gaines
Developer
Jacqui
Ackerman
Project Manager
Mort
Renee Davis
Tester

Art
Benson
Architect
Ian Manning
Release Manager

Roles -> Constituencies
Shadow Architecture

With the visual modeling tools
commonly available today, working
code can cast shadows
To See the Forest…

Architects should allow work at the
component or “application” level
Trailing Shadows

Trailing Shadows are visual
reflections of the code base

These should come for free or nearly
free
Leading Shadows



Sometimes we need to sketch out
architecture/design before we
implement them
Whiteboard is often used
Should become working code within
the iteration – no BDUF
Larger Projects….
Lead team
Program
Management
Function team
User
Experience
Product
Management
Development
User
Experience
Test
Release
Operations
Program
Management
Architecture
Architecture
Program
Management
Architecture
Development
Catalog
User
Experience
Development
Fulfillment
Test
Test
Release
Operations
Program
Management
Architecture
User
Experience
Development
Site Engine &
Design
Test
Feature teams
Getting the Whole Team
Involved
Larry
Sykes
Business Analyst
Mort
Gaines
Developer
Jacqui
Ackerman
Project Manager
Renee Davis
Tester

Art
Benson
Architect
Ian Manning
Release Manager

Context Driven Testing

Testing that is acceptable on one project
may be criminal on another

Release Criteria
Testing Thresholds
Trend Analysis
Process Feedback



Release Criteria

No Sev 1s and 2s in the shipping
product
Test Thresholds

Code Coverage for Unit Test


Which statements of my application
are being executed?
Useful to identify incomplete testing
Code Coverage
void PurchaseItem(int itemID)
{
if (itemID == 0)
{
throw new Exception();
}
else
{
ProcessOrder(itemID);
}
}
void UnitTest()
{
PurchaseItem(1);
// test the output
}
Code Coverage
void PurchaseItem(int itemID)
{
if (itemID == 0)
{
throw new Exception();
}
else
{
ProcessOrder(itemID);
}
}
void UnitTest()
{
PurchaseItem(1);
// test the output
}
Code Coverage
void PurchaseItem(int itemID)
{
if (itemID == 0)
{
throw new Exception();
}
else
{
ProcessOrder(itemID);
}
}
void UnitTest()
{
PurchaseItem(1);
// test the output
}
Code Coverage
void PurchaseItem(int itemID)
{
if (itemID == 0)
{
throw new Exception();
}
else
{
ProcessOrder(itemID);
}
}
void UnitTest()
{
PurchaseItem(1);
// test the output
}
Code Coverage
void PurchaseItem(int itemID)
{
if (itemID == 0)
{
throw new Exception();
}
else
{
ProcessOrder(itemID);
}
}
void UnitTest()
{
PurchaseItem(1);
// test the output
}
Code Coverage
void PurchaseItem(int itemID)
{
if (itemID == 0)
{
throw
thrownew
newException();
Exception();
}
else
{
}
}
ProcessOrder(itemID);
ProcessOrder(itemID);
void UnitTest()
{
PurchaseItem(1);
// test the output
}
Problems with Code
Coverage

Focusing on statement and branch
coverage is not sufficient, you may
miss:





Missing code
Incorrect handling of boundary
conditions
Timing problems
Memory Leaks
Use coverage sensibly


Objective, but incomplete
Too often distorts sensible action
The Problem with Process
Predictable
Repeatable
Productive
• Complex
• Disconnected
• Hardened
Challenges
• Getting people to know about it
• Getting people to use it
How we use process
The Limitations of Process


Process can only take you to the
point where others have solved the
problem before and captured their
experience in a process form.
Process that is integrated with the
tooling is more likely to be used
when schedules get tight.
Tooling
Agile Manifesto




Individuals and interactions over
processes and tools
Working software over
comprehensive documentation
Customer collaboration over contract
negotiation
Responding to change over following
a plan
Source: http://www.agilemanifesto.org/
Date or Feature Driven


Projects can be driven by date or functionality.
When a project is driven by date, project
deadlines are usually determined by the market,
events, competitors, regulations, financial
implications, or other business reasons.
Understanding the progress of the system is
critical to managing expectations and planning
according. Additionally, organizational,
technical, and project risks may need to be
tracked when they have a time component. Even
if a project is not date-driven, understanding the
estimated time of arrival helps to other groups
put the sales/deployment/marketing/
training/operations elements in place.
Small Releases are not…
Schedule Pressure
Small Releases
Incremental

Risk reduction




Changes
Delivery
Progress
Activities need to
be able to handle
small increments
up to a single
change
Bug Bash, by Hans Bjordahl
Most Importantly


MSF for Agile Software
Development is now available at:
http://www.microsoft.com/msf
Caveat: This is a beta version.
There is additional work in
progress to refine the content. We
have several external pilot projects
underway.
Conclusions




MSF is a vehicle for delivering
Microsoft’s contributions to the
software development community
MSF version 4.0 comes in two flavors
to deliver maximum flexibility
MSF updates will be delivered via
MSDN
MSF can become a basis for your
software development process
This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.
© 2001 Microsoft Corporation. All rights reserved.