19
Software Architecture in the Presales Process Humberto Cervantes Universidad Autónoma Metropolitana – Iztapalapa / Quarksoft SATURN 2014 1

Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

  • Upload
    others

  • View
    30

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Software Architecture in the Presales Process

Humberto Cervantes

Universidad Autónoma Metropolitana – Iztapalapa / Quarksoft

SATURN 2014

1

Page 2: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Quarksoft• A leading software development company based in Mexico 

City– Founded in 2001– Offices in Mexico, Spain and USA

• Quarksoft develops custom software for different domains– Insurance, Manufacturing, Telecommunication, Government 

Healthcare– Many projects are greenfield development 

of enterprise applications

• Rated at CMMI level 5– Development based on the Team Software

Process (TSP)

2

Page 3: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Team Software Process (TSP)

• Proven method that helps plan, evaluate, manage and control software development work– Focus on metrics‐based project and quality management– Does not provide precise guidance on the engineering activities such as requirements or architectural design

Launch

Post-Mortem

REQ

HLDCODE

Re-Launch

Post-Mortem

HLD

CODETEST

Re-Launch

Post-Mortem

HLD

CODE

TEST

Re-Launch

Post-Mortem

CODE

TEST

Cycle 1 Cycle 2 … Cycle n

TEST

REQ

3

Page 4: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Previous work

Architectural drivers

Architectural design

Architectural documentation

Architectural evaluation

<<precedes>>

<<precedes>>

<<precedes>>

Re-Launch

Post-Mortem

HLD

CODETEST

REQ

• Documentation using scenarios

• Adapted ADD

• Use of VaB Templates

• Scenario‐based evaluations

Problem: Many architectural decisions are made before the 

actual TSP‐based development is performed, during Presales

• “Introducing Software Architecture Development Methods into a TSP‐Based Development Company” (SATURN 2010)

4

Page 5: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Project development

• 2 important phases

Presales Development(TSP)

Historic database

Project dataEstimation data

[Accepted]

[Rejected]

- Architect- Leader

- Architect- Leader- Team

5

Page 6: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Project development

• 2 important phases

Presales Development(TSP)

Historic database

Project dataEstimation data

[Accepted]

[Rejected]

- Architect- Leader

- Architect- Leader- Team

• These estimates are calculated from components associated with specific technologies

• Identification of estimation components is an essential task

Architecture development starts in presales6

Page 7: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

The presales context

Presales

• Limited information • Short time• Internal constraints• Competition with otherproviders

- Architect- Leader

Leffingwell, D. “Features, Use Cases, Requirements, Oh My!”, Rational Software White Paper, 2000

7

Page 8: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Architecture in Presales

• We had to adapt architectural methods to the presales context

Presales Development(TSP)

[Accepted]

[Rejected]

Architectural drivers

Architectural design

Architectural documentation

Architectural evaluation

<<precedes>>

<<precedes>>

<<precedes>>

Presalesarchitecture

Architectural drivers

Architectural design

Architectural documentation

Architectural evaluation

<<precedes>>

<<precedes>>

<<precedes>>

- Architect- Leader

- Architect- Leader- Team

8

Page 9: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Presales architectural drivers

• We shifted the focus from purely functional features to an architectural drivers approach – Primary features

• “The kiosk system shall allow birth certificates to be visualized and printed”

– Early quality attributes• “100% of the information that is stored in the kiosk system shall be protected (Security)”

– Constraints• “The operating system of the kiosks is windows XP”

Architectural drivers

Architectural design

Architectural documentation

Architectural evaluation

<<precedes>>

<<precedes>>

<<precedes>>

9

Page 10: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Presales architectural design• Goals: 

– Estimation – Project planning– Satisfying drivers

• Design decisions for the presales architecture– Selection and adaptation of a reference 

architecture– Selection of technologies– Establishment of deployment layout– Identification of components for estimation

• The equivalent of performing initial iterations of ADD

Architectural drivers

Architectural design

Architectural documentation

Architectural evaluation

<<precedes>>

<<precedes>>

<<precedes>>

Presalesarchitecture

10

Page 11: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Example

Sample reference architecture(from Microsoft Application Architecture Guide)

11

Estimation component

Estimation component

Estimation component

Estimation component

Estimation component

Estimation component Estimation 

component

Estimation component

Estimation component

Estimation component

Page 12: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Presales architectural documentation

• The “primary presentation” and element catalog sections from the VaB template are used

• The diagrams that represent the architecture are included in the project proposal– Module view– Layers / Technologies– Deployment view

Architectural drivers

Architectural design

Architectural documentation

Architectural evaluation

<<precedes>>

<<precedes>>

<<precedes>>

12

Page 13: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Presales architectural evaluation• 2 – 4 hours peer review process that analyzes 

design decisions with respect to the drivers– Performed before estimation– 3 architects– Seeks to identify risks both in the design 

decisions of the technical solution but also in the project strategy

• Some types of risks– Requirements, for example

• Quality Attributes not quantified– Design decisions, for example

• Inappropriate deployment layout• No expertise in selected framework

– Strategy• The selected lifecycle is not appropriate to the level 

of technical risks in the project

Architectural drivers

Architectural design

Architectural documentation

Architectural evaluation

<<precedes>>

<<precedes>>

<<precedes>>

13

Page 14: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Current results: General• Architecture is now taken into account from the very 

beginning of the project’s development life cycle

• Early requirement gathering is driven by the architectural drivers

• The approach ensures that the presales architecture design is well aligned to the drivers, but also that the project strategy supports architectural development

• The proposals that are provided to the customer reflect this architectural‐centric focus

14

Page 15: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Current results: Evaluation

• We have conducted 18 evaluations since July 2013

• On average the evaluations uncover between 6 and 7 risks (60% technical)

• Good (internal) customer satisfaction– “In general, the evaluation was useful”: 4.2 / 5

– “The observations made by the evaluation team were valuable”: 4.6 / 5

• Good response time: 2.9 work days on average

Architectural drivers

Architectural design

Architectural documentation

Architectural evaluation

<<precedes>>

<<precedes>>

<<precedes>>

15

Page 16: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Lessons learned

• Starting architectural activities from the beginning of project development is very valuable in this context– Results in iterative architectural development

Pre‐sales Development(TSP)

[Accepted]

[Rejected]Architectural drivers

Architectural design

Architectural documentation

Architectural evaluation

<<precedes>>

<<precedes>>

<<precedes>>

Architectural drivers

Architectural design

Architectural documentation

Architectural evaluation

<<precedes>>

<<precedes>>

<<precedes>>

• Early drivers• Initial ADD

iterations• Initial views• Initial project plan

• Scenarios• Subsequent ADD

iterations• Standard views• Actual project

plan

Presalesarchitecture

Finalarchitecture

16

Page 17: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

More lessons learned

• Major challenges are related to logistics– Being able to respond quickly to evaluation requests is essential

– Training of architects– The organization must also be adapted in order to support evaluations

• The presales phase is a great place to experiment with new approaches– Frequent evaluations are great for helping the architects gain maturity

17

Page 18: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Future work

• Evaluate the impact– We are starting to conduct evaluations on projects that use the new methods in presales but data needs to be gathered to evaluate the improvements

Pre‐sales Development(TSP)

[Accepted]

[Rejected]Architectural drivers

Architectural design

Architectural documentation

Architectural evaluation

<<precedes>>

<<precedes>>

<<precedes>>

Architectural drivers

Architectural design

Architectural documentation

Architectural evaluation

<<precedes>>

<<precedes>>

<<precedes>>

- Architect- Leader

- Architect- Leader- TeamPresales

architectureFinal

architecture18

Page 19: Software Architecture Presales Process · Presales architectural design • Goals: – Estimation – Project planning – Satisfying drivers • Design decisions for the presales

Thank you!

• Questions?

• Humberto Cervantes– [email protected]

19