The status of agile at Capgemini in the Netherlands
BEING SMART AT ENTERPRISE AGILE
2BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
Capgemini
 Principal technology officer
 Chief architect Accelerated Delivery Platform
(ADP)
Other
 Author books and articles
 Speaker at international conferences
 Microsoft Partner Advisory Council .NET
 Capping IT Off Blog
 Magazine columns
 Editorial boards & Advisory boards
Web
 www.sanderhoogendoorn.com
 www.smartusecase.com
 Twitter: @aahoogendoorn
 LinkedIn: aahoogendoorn
SANDER HOOGENDOORN
WHAT DOES BEING AGILE MEAN?
4BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
Collaborate
 Different roles, same time (and location)
Iterate
 Two to four weeks iterations
 Plan – Deliver - Evaluate
Deliver
 Small unit of work – smart use cases
 Test early and often
 Early and frequent delivery
Plan
 Plan and measure continuously
Simplify communication
 Simple dashboards, burn down charts
 Pair programming, planning games
WHAT DOES BEING AGILE MEAN?
5BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
SCRUM
Where “lightweight” agile isn’t sufficient
CHALLENGES IN ENTERPRISE PROJECTS
7BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
Challenges
 Many different stakeholders
 Many external dependencies (availibility)
 Changing requirements
 Many different types of deliverables
 Complex software architectures
Mission impossible
 Difficult to estimate
 Hard to plan
 Tough to build
 Impossible to test
 Thus: extremely high percentages of project
and program failure
CHALLENGES IN ENTERPRISE PROJECTS
8BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
COMPLEX IT LANDSCAPES
9BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
On implementing enterprise agile
LEVERAGING CAPGEMINI EXPERIENCE
10BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
ACCELERATED DELIVERY PLATFORM
Process
Agile
Lifecycle
Smart
Use Cases
Smart
Estimation
Agile
Dashboards
Unified
Testing
Technology
Model driven
development
Reference
Architectures
Frameworks
People
Open
Community
Coaching
Learning
11BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
“Regular” projects
 Java
 .NET – Windows, web, Silverlight
Enterprise projects
 Service oriented architecture (SAP SOA)
 Distributed projects (agile co-creation)
Other projects
 Business intelligence
 Re-engineering existing applications
 Application management
 Release management
PROJECT TYPES?
12BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
ACCELERATED DELIVERY PLATFORM - SOME REFERENCES
ADP Based
Software Factories
Smart &
Smart Use Cases
(Capgemini) Projects Coaching & Learning
13BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
SAP QUALITY AWARD 2010 GOLD WINNER
It’s all about being Smart
DELIVERING IN AN ENTERPRISE AGILE PROCESS
16BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
Involve
 Product owner, business users
 Enterprise architects, business analysts
 Application management, operations
 Distributed delivery
Standardize
 Simplify product life cycle
 All roles work on same product
 Model front end and services in smart use cases
 Test and deliver individual services
 Integrate front end and services each iteration
Expect issues
 “Agile is for small projects.”
 “We need to design the whole system up-front.”
 “Sorry. Connectivity to our system will not be available until
January.”
 “We need to review every use case before you can
implement it.”
WHAT DOES ENTERPRISE AGILE MEAN?
17BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
SMART
Create
project
proposal
Write
project
plan
Deliver
working
software
Round up
software
Maintain
software
18BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
SMART
What product(s) do
we want to deliver?
Define done
Deliver product(s)
using product cycle
Visualise progress
Are we up to speed?
Is our process
optimal?
Are the product(s)
done?
19BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
PLAN
20BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
BUILD
21BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
EVALUATE
Mixing YAGNI and structure
ENTERPRISE AGILE REQUIREMENTS
23BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
USER STORIES – APPLES AND PEARS
Often too unstructured
Unsuitable in complex
environments
24BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
COMPLEX IT LANDSCAPES
25BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
HUGE CASES Hard to build,
impossible to test
A YAGNI approach to requirements
SMART USE CASES
27BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
AGILE REQUIREMENTS - APPROACH
D
E
F
Smart
Use Cases
A
Project
Scope
D
Use Cases
A
B C
Hierarchical
Processes
B
D
D
Hierarchical
Processes
Chronological
Processes
Cloud Level Kite Level Sea Level Fish Level
C
28BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
CLOUD LEVEL
29BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
KITE LEVEL
30BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
MODELING SMART USE CASES
31BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
WORK IN PROGRESS ...
ESTIMATING SMART USE CASES
33BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
SOFTWARE ESTIMATION – ABSOLUTE OR RELATIVE?
34BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
1. Piece of cake
 Simple selection, simple maintenance
2. Moderate
 Normal selection
3. Average
 Normal maintenance, normal search
4. Hard
 Reporting, one-many
5. Very difficult
 Graphs, extensive reporting, interfacing
8. Extreme, but known
 Complex interfacing
10. Extreme and unknown
 Distributed interfacing, calculations
ABSTRACT WEIGHT OF SMART USE CASES
35BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
SMART ESTIMATION POKER
36BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
SMART USE CASE STEREOTYPES
37BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
Estimating smart use cases
with the whole team
Agile dashboarding for the enterprise
MAKING COMMUNICATION EASY
39BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
SMART USE CASE CYCLE
Plan and
prioritize
use cases
Write
test cases
Generate
and build
use case
Run
test cases
Adjust
logic
Define
use case
logic
Accept
use case
40BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
SOME STRUCTURE ISN’T BAD
41BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
41
Project wall
and dashboard
42BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
AGILE DASHBOARDING
43BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
AGILE DASHBOARDING - DASHBOARD
44BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
AGILE DASHBOARDING – CHANGING STATUS
45BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
AGILE DASHBOARDING – BURN DOWN CHART
46BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
TESTING SMART USE CASES
47BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
BOEHM’S LAW
48BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
SMART USE CASE CYCLE
Plan and
prioritize
use cases
Write
test cases
Generate
and build
use case
Run
test cases
Adjust
logic
Define
use case
logic
Accept
use case
49BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
RELEASE PLANNING – THE TEST HURDLE
50BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
Model activity diagram per use case
 Define which use cases will be tested
 User goal level use cases?
 Sub-function level use cases?
 Models all scenarios in the activity diagram
Identify test scenarios
 Identify decision nodes
 Identify partial paths
 Create full paths from partial paths
 Every path defines a test scenario
Describe test scenarios
 Name partial paths
 Define test scenarios
Write test cases with test scenarios
 Test happy day scenarios
 Test alternative flows
TESTING SMART USE CASES
51BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
TEST DESIGN FOR INDIVIDUAL SMART USE CASES
Unit testing at the right level
UNIT TESTING SMART USE CASES
53BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
TESTING SMART USE CASES
Unit test what?
 Methods from the task pattern
 Methods that are called from presentation
 Methods that collaborate with other use cases
 Methods that interact with domain
How?
 Create unit test for each smart use case
 Run methods from smart use case
 Validate outcome (using asserts)
Why?
 Great code coverage
 Regressions testing on smart use cases
 Code generation makes light work
54BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
UNIT TESTING SMART USE CASES
Test methods that interact with domain
Set up (in)valid domain object
Run method from use case
Validate outcome
An overview
SMART USE CASE DRIVEN ARCHITECTURE
56BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
Presentation
Process
Domain
Data / Services
Outside world
Pages
UserControls
Panels
Use cases
Workflow
Domain objects / Entities
Factories / Repositories
Enums / Value objects / Smart references
[Mapping]
Table Gateways
Queries
[Mapping]
Database
57BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
Exact SAP BizTalk Java
Presentation
Process
Domain
Data / Services
Outside world
Pages
UserControls
Panels
Use cases
Workflow
Domain objects / Entities
Factories / Repositories
Enums / Value objects / Smart references
[Mapping]
Service gateways
Service locators
[Mapping]
Services / ESB
58BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
Presentation
Process
Domain
Data / Services
Outside world
Service contracts
Operation contracts
Data contracts
Use cases
Services
Domain objects / Entities
Factories / Repositories
Enums / Value objects / Smart references
[Mapping]
Table Gateways / Service Gateways
Queries / Service Locators
[Mapping]
Database
Services / ESB
Exact SAP BizTalk Java
59BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
ARCHITECTURE IN CODE
Web
 Pages, controls
Process
 Use cases / Tasks / Flow
Domain
 Factories / Repositories
 Domain Objects / Business rules
 Enums / Value Objects / References
 Search Objects
Data / Services
 Gateways
 Mappings / Describers
Database
An introduction to pragmatic model driven development
GENERATING CODE FROM SMART USE CASES
61BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
Forms
Use cases
Domain
objects
Data / Service
classes
Databases
Software Architecture
Tobago
MDA
Test
scenario’s
Frameworks
Specifications
Existing
Applications
Business
models
Domain
Model
Smart
use cases
User interface
specification
1. Map your
business processes
to smart use cases
2. Set up your
domain model
3. Establish
your software
architecture(s)
4. Generate
your code using
a text template
engine
5. Finalize your
application
62BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
A SIMPLE SMART USE CASE MODEL
63BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
A SIMPLE DOMAIN MODEL
class Budapest.Business
«business class»
Customer
+ Name: string
+ Address: string
+ Postcode: Postcode
+ City: string
+ Country: SmartRef
+ Website: Url [0..1]
«business class»
Contact
+ Name: string
+ Email: Email [0..1]
+ Phone: PhoneNumber [0..1]
+ Department: Departments
«enumeration»
Departments
Sal es
Purchasing
Helpdesk
Management
*
64BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
USING TOBAGO MDA
65BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
GENERATED CODE IN ASP.NET
Frameworks
SMART USE CASE DRIVEN ARCHITECTURE
67BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
Frameworks
 Open extendible architecture
 Many blocks available
 Assemble and generate quickly
 Base applications
 Proven
 In open source!
Blocks
 User interface / Smart binding
 Domain driven design
 Authorization
 Smart use case unit testing
 Resources / multilinguality
 Mapping to databases and services
SMART USE CASE DRIVEN ARCHITECTURE
Community, coaching and learning
PEOPLE
69BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
Open community
 Website is a wiki
 Accelerators available for all
 White papers, books
 Software factories
 Agile co-creation
Coaching
 Many engagements in coaching agile
Learning
 Courses available on agile, Smart, smart use
cases, pragmatic UML, smart estimation, agile
software development with ADP
 Custom courses for clients
 Open seminars and workshops
COMMUNITY, COACHING AND LEARNING
70BEING SMART AT ENTERPRISE AGILE
©2010 Capgemini. All Rights Reserved
www.accelerateddeliveryplatform.com
WWW.SMARTUSECASE.COM
sander.hoogendoorn@capgemini.com
www.sanderhoogendoorn.com
www.smartusecase.com / www.accelerateddeliveryplatform.com
@aahoogendoorn
REFERENCES AND QUESTIONS

Being Smart at enterprise agile

  • 1.
    The status ofagile at Capgemini in the Netherlands BEING SMART AT ENTERPRISE AGILE
  • 2.
    2BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved Capgemini  Principal technology officer  Chief architect Accelerated Delivery Platform (ADP) Other  Author books and articles  Speaker at international conferences  Microsoft Partner Advisory Council .NET  Capping IT Off Blog  Magazine columns  Editorial boards & Advisory boards Web  www.sanderhoogendoorn.com  www.smartusecase.com  Twitter: @aahoogendoorn  LinkedIn: aahoogendoorn SANDER HOOGENDOORN
  • 3.
    WHAT DOES BEINGAGILE MEAN?
  • 4.
    4BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved Collaborate  Different roles, same time (and location) Iterate  Two to four weeks iterations  Plan – Deliver - Evaluate Deliver  Small unit of work – smart use cases  Test early and often  Early and frequent delivery Plan  Plan and measure continuously Simplify communication  Simple dashboards, burn down charts  Pair programming, planning games WHAT DOES BEING AGILE MEAN?
  • 5.
    5BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved SCRUM
  • 6.
    Where “lightweight” agileisn’t sufficient CHALLENGES IN ENTERPRISE PROJECTS
  • 7.
    7BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved Challenges  Many different stakeholders  Many external dependencies (availibility)  Changing requirements  Many different types of deliverables  Complex software architectures Mission impossible  Difficult to estimate  Hard to plan  Tough to build  Impossible to test  Thus: extremely high percentages of project and program failure CHALLENGES IN ENTERPRISE PROJECTS
  • 8.
    8BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved COMPLEX IT LANDSCAPES
  • 9.
    9BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved On implementing enterprise agile LEVERAGING CAPGEMINI EXPERIENCE
  • 10.
    10BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved ACCELERATED DELIVERY PLATFORM Process Agile Lifecycle Smart Use Cases Smart Estimation Agile Dashboards Unified Testing Technology Model driven development Reference Architectures Frameworks People Open Community Coaching Learning
  • 11.
    11BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved “Regular” projects  Java  .NET – Windows, web, Silverlight Enterprise projects  Service oriented architecture (SAP SOA)  Distributed projects (agile co-creation) Other projects  Business intelligence  Re-engineering existing applications  Application management  Release management PROJECT TYPES?
  • 12.
    12BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved ACCELERATED DELIVERY PLATFORM - SOME REFERENCES ADP Based Software Factories Smart & Smart Use Cases (Capgemini) Projects Coaching & Learning
  • 13.
    13BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved SAP QUALITY AWARD 2010 GOLD WINNER
  • 14.
    It’s all aboutbeing Smart DELIVERING IN AN ENTERPRISE AGILE PROCESS
  • 15.
    16BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved Involve  Product owner, business users  Enterprise architects, business analysts  Application management, operations  Distributed delivery Standardize  Simplify product life cycle  All roles work on same product  Model front end and services in smart use cases  Test and deliver individual services  Integrate front end and services each iteration Expect issues  “Agile is for small projects.”  “We need to design the whole system up-front.”  “Sorry. Connectivity to our system will not be available until January.”  “We need to review every use case before you can implement it.” WHAT DOES ENTERPRISE AGILE MEAN?
  • 16.
    17BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved SMART Create project proposal Write project plan Deliver working software Round up software Maintain software
  • 17.
    18BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved SMART What product(s) do we want to deliver? Define done Deliver product(s) using product cycle Visualise progress Are we up to speed? Is our process optimal? Are the product(s) done?
  • 18.
    19BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved PLAN
  • 19.
    20BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved BUILD
  • 20.
    21BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved EVALUATE
  • 21.
    Mixing YAGNI andstructure ENTERPRISE AGILE REQUIREMENTS
  • 22.
    23BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved USER STORIES – APPLES AND PEARS Often too unstructured Unsuitable in complex environments
  • 23.
    24BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved COMPLEX IT LANDSCAPES
  • 24.
    25BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved HUGE CASES Hard to build, impossible to test
  • 25.
    A YAGNI approachto requirements SMART USE CASES
  • 26.
    27BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved AGILE REQUIREMENTS - APPROACH D E F Smart Use Cases A Project Scope D Use Cases A B C Hierarchical Processes B D D Hierarchical Processes Chronological Processes Cloud Level Kite Level Sea Level Fish Level C
  • 27.
    28BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved CLOUD LEVEL
  • 28.
    29BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved KITE LEVEL
  • 29.
    30BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved MODELING SMART USE CASES
  • 30.
    31BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved WORK IN PROGRESS ...
  • 31.
  • 32.
    33BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved SOFTWARE ESTIMATION – ABSOLUTE OR RELATIVE?
  • 33.
    34BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved 1. Piece of cake  Simple selection, simple maintenance 2. Moderate  Normal selection 3. Average  Normal maintenance, normal search 4. Hard  Reporting, one-many 5. Very difficult  Graphs, extensive reporting, interfacing 8. Extreme, but known  Complex interfacing 10. Extreme and unknown  Distributed interfacing, calculations ABSTRACT WEIGHT OF SMART USE CASES
  • 34.
    35BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved SMART ESTIMATION POKER
  • 35.
    36BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved SMART USE CASE STEREOTYPES
  • 36.
    37BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved Estimating smart use cases with the whole team
  • 37.
    Agile dashboarding forthe enterprise MAKING COMMUNICATION EASY
  • 38.
    39BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved SMART USE CASE CYCLE Plan and prioritize use cases Write test cases Generate and build use case Run test cases Adjust logic Define use case logic Accept use case
  • 39.
    40BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved SOME STRUCTURE ISN’T BAD
  • 40.
    41BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved 41 Project wall and dashboard
  • 41.
    42BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved AGILE DASHBOARDING
  • 42.
    43BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved AGILE DASHBOARDING - DASHBOARD
  • 43.
    44BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved AGILE DASHBOARDING – CHANGING STATUS
  • 44.
    45BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved AGILE DASHBOARDING – BURN DOWN CHART
  • 45.
    46BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved TESTING SMART USE CASES
  • 46.
    47BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved BOEHM’S LAW
  • 47.
    48BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved SMART USE CASE CYCLE Plan and prioritize use cases Write test cases Generate and build use case Run test cases Adjust logic Define use case logic Accept use case
  • 48.
    49BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved RELEASE PLANNING – THE TEST HURDLE
  • 49.
    50BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved Model activity diagram per use case  Define which use cases will be tested  User goal level use cases?  Sub-function level use cases?  Models all scenarios in the activity diagram Identify test scenarios  Identify decision nodes  Identify partial paths  Create full paths from partial paths  Every path defines a test scenario Describe test scenarios  Name partial paths  Define test scenarios Write test cases with test scenarios  Test happy day scenarios  Test alternative flows TESTING SMART USE CASES
  • 50.
    51BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved TEST DESIGN FOR INDIVIDUAL SMART USE CASES
  • 51.
    Unit testing atthe right level UNIT TESTING SMART USE CASES
  • 52.
    53BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved TESTING SMART USE CASES Unit test what?  Methods from the task pattern  Methods that are called from presentation  Methods that collaborate with other use cases  Methods that interact with domain How?  Create unit test for each smart use case  Run methods from smart use case  Validate outcome (using asserts) Why?  Great code coverage  Regressions testing on smart use cases  Code generation makes light work
  • 53.
    54BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved UNIT TESTING SMART USE CASES Test methods that interact with domain Set up (in)valid domain object Run method from use case Validate outcome
  • 54.
    An overview SMART USECASE DRIVEN ARCHITECTURE
  • 55.
    56BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved Presentation Process Domain Data / Services Outside world Pages UserControls Panels Use cases Workflow Domain objects / Entities Factories / Repositories Enums / Value objects / Smart references [Mapping] Table Gateways Queries [Mapping] Database
  • 56.
    57BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved Exact SAP BizTalk Java Presentation Process Domain Data / Services Outside world Pages UserControls Panels Use cases Workflow Domain objects / Entities Factories / Repositories Enums / Value objects / Smart references [Mapping] Service gateways Service locators [Mapping] Services / ESB
  • 57.
    58BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved Presentation Process Domain Data / Services Outside world Service contracts Operation contracts Data contracts Use cases Services Domain objects / Entities Factories / Repositories Enums / Value objects / Smart references [Mapping] Table Gateways / Service Gateways Queries / Service Locators [Mapping] Database Services / ESB Exact SAP BizTalk Java
  • 58.
    59BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved ARCHITECTURE IN CODE Web  Pages, controls Process  Use cases / Tasks / Flow Domain  Factories / Repositories  Domain Objects / Business rules  Enums / Value Objects / References  Search Objects Data / Services  Gateways  Mappings / Describers Database
  • 59.
    An introduction topragmatic model driven development GENERATING CODE FROM SMART USE CASES
  • 60.
    61BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved Forms Use cases Domain objects Data / Service classes Databases Software Architecture Tobago MDA Test scenario’s Frameworks Specifications Existing Applications Business models Domain Model Smart use cases User interface specification 1. Map your business processes to smart use cases 2. Set up your domain model 3. Establish your software architecture(s) 4. Generate your code using a text template engine 5. Finalize your application
  • 61.
    62BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved A SIMPLE SMART USE CASE MODEL
  • 62.
    63BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved A SIMPLE DOMAIN MODEL class Budapest.Business «business class» Customer + Name: string + Address: string + Postcode: Postcode + City: string + Country: SmartRef + Website: Url [0..1] «business class» Contact + Name: string + Email: Email [0..1] + Phone: PhoneNumber [0..1] + Department: Departments «enumeration» Departments Sal es Purchasing Helpdesk Management *
  • 63.
    64BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved USING TOBAGO MDA
  • 64.
    65BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved GENERATED CODE IN ASP.NET
  • 65.
    Frameworks SMART USE CASEDRIVEN ARCHITECTURE
  • 66.
    67BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved Frameworks  Open extendible architecture  Many blocks available  Assemble and generate quickly  Base applications  Proven  In open source! Blocks  User interface / Smart binding  Domain driven design  Authorization  Smart use case unit testing  Resources / multilinguality  Mapping to databases and services SMART USE CASE DRIVEN ARCHITECTURE
  • 67.
    Community, coaching andlearning PEOPLE
  • 68.
    69BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved Open community  Website is a wiki  Accelerators available for all  White papers, books  Software factories  Agile co-creation Coaching  Many engagements in coaching agile Learning  Courses available on agile, Smart, smart use cases, pragmatic UML, smart estimation, agile software development with ADP  Custom courses for clients  Open seminars and workshops COMMUNITY, COACHING AND LEARNING
  • 69.
    70BEING SMART ATENTERPRISE AGILE ©2010 Capgemini. All Rights Reserved
  • 70.
  • 71.

Editor's Notes

  • #11 Accelerators The Accelerated Delivery Platform includes accelerators such as: Smart. Smart is a well known proven agile life cycle, using smart use cases as our unit of work. Smart incorporates many agile and iterative best practices and combines well with other methodologies, such as Scrum, RUP and XP. Smart use cases. An important innovation in functional requirements modeling. Smart use cases deliver smaller and equally granular use cases to software development. We use smart use cases not only for requirements, but also for unit of work and estimation, planning, and we generate user interface specs, test scenario's and code (e.g. front ends) from it. Works in various project settings, including .Net, Java, SharePoint, SAP, BI. Smart estimation. A pragmatic and easy to apply estimation technique bases on smart use cases. Can be applied without elaborate training, but we do have training available (half day course). Associated with smart estimation are a set of techniques, such as quick estimate templates, and smart estimation poker. Agile dashboards. A easy to use online project dashboard which is in line with smart use cases and their life cycle. Easy to track progress in your projects, using burn down and burn up charts. Agile testing. Smart use cases are the primary unit of work in Smart projects. Moreover, smart use case not only are a great unit of estimation, and development, but they also are an ideal unit for testing. In Smart project testing becomes an important part of the design of the software, when testers and developers together create an activity diagram per smart use case. From this diagram test scenarios and test cases can easily be derived. Testing is intertwined in each of the Realize and Finalize iterations - as soon as possible, to beat Boehm's Law. This approach, which is called smart testing, matches process cycle tests from TMap. Smart testing is best described in the book Pragmatic modeling using UML by Sander Hoogendoorn.
  • #13 References References for the Accelerated Delivery Platform are grouped into four categories. Software Factories. Organizations that are building their software factories around accelerators from the Accelerated Delivery Platform. Capgemini assists these organizations in implementing these software factories, or runs their projects. A special reference is the Dutch Tax Service (Belastingdienst) that will run all their agile projects using the Accelerated Delivery Platform. The platform benefits highly from this community, as new framework additions become available, and new templates for Tobago MDA. Smart & smart use cases. A fast growing number of organizations apply our agile process Smart and / or our smart use cases technology. Capgemini normally performs training and coaching on the job. Many of these organizations contribute to the platform, and share their knowledge. Projects. Capgemini (and her customers) run a growing number of projects on Accelerated Delivery Platform accelerators. They both run in the ADC’s (in the Netherlands and Belgium) and on-site at the customer. Some projects partly run in the Netherlands and partly in India (GVB). Coaching and learning. Many organizations benefit from the variety of courses we have avaiable from the Accelerated Delivery Platform. In 2008 alone, almost 750 people were trained. Most of our courses are available from Capgemini Academy, but we also run customized courses for customers.
  • #29 This diagram models the hierarchy for a single project at a financial government agency. The name of the project (or in this case the application –as is often done) is stated at the top level. The first level (cloud level) models a number of the processes to be automated. Some of these processes are further modeled out using a second level of hierarchy. This can best be done with discrete processes. However, the steps in the third process are sequential, and thus this process can best be modeled out using a chronological technique. The agency used activity diagrams for this purpose.
  • #42 Dashboard Business Design Smart use cases Status Burndown / up Velocity Scope