94
www.codingthearchitecture.com Why Software Projects Fail

Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

www.codingthearchitecture.com

Why Software Projects Fail

Page 2: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Simon Brown

Hands-on software architect

Page 3: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Why software projects fail...

Page 4: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

...architects are here

to help, not to hinder

Page 5: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Software projects failfor a number of reasons

Page 6: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Iterative and agile techniques solve some problems...

Page 7: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

...but not all of them

Page 8: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Software architectshave a

bad reputation(“thinkers”)

Page 9: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Project failure

“let’s get an architect in for the

first few weeks”(they are too expensive and they don’t code)

“we don’t need an architect,

we have smart developers”(we only hire the best)

“you must follow what our

central architecture

team dictates”

(the ones in the ivory tower)

Page 10: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Time for

change

Page 11: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

1. Management of the non-functional

requirements

Page 12: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Stakeholder

“it should be

fast”

Page 13: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

“the main flow of the

search use caseshould respond within

10 seconds,for

all concurrent users”

Page 14: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Non-runtimeRuntime

PerformanceScalabilityAvailabilitySecurityDisaster RecoveryAccessibilityMonitoringManagementAuditability...

FlexibilityExtensibilityMaintainabilityInteroperabilityLegalRegulatoryCompliancei18nL10n...

Page 15: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Somebody needsto take

ownership

Page 16: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

It should be the

architect

Page 17: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

2. Architecture definition

Page 18: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Every system has an architecture, but not every architecture is

defined

Page 19: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Just enough(pragmatic rather than

big design up front)

Page 20: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Architecture definition introduces

structure, guidelinesand leadership

Page 21: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Somebody needs totake

ownership

Page 22: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

It should be the

architect(to be fair, defining the architecture *is* our job)

Page 23: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

3. Technology selection

Page 24: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Do you believe

vendor hype?

Page 25: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

“does it actually work?

show me.”

Page 26: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Technology selectionis about

managing risk

Page 27: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Somebody needsto take

ownership

Page 28: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

It should be the

architect(if we recommend some technology,

we better make sure it works!)

Page 29: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

4. Architecture evaluation

Page 30: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Does your architecture

work?(and what does “work” mean?)

Page 31: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Do you trust yourself?(I don’t)

Page 32: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Testing provides

confidence

Page 33: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

I want to prove my architecture will work

(management generally give meless grief when I do this)

Page 34: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Performance and scalability tests

(automated if possible)

Page 35: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Somebody needs totake

ownership

Page 36: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

It should be the

architect(we should taste our architecture)

Page 37: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

5. Architecture collaboration

Page 38: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

The team needs to

understand the architecture

Page 39: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Architecturesdon’t live in

isolation

Page 40: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

“Sharing Architectures”(a quick plug)

Page 41: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Somebody needs totake

ownership

Page 42: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

It should be the

architect(our architecture needs to integrate)

Page 43: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Definition

Management of non-functional requirements

Technology selection

Architecture definition

Architecture evaluation

Architecture collaboration

This is what we write about on our

website...

www.codingthearchitecture.com

Page 44: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

6. Ownership of the bigger picture

Page 45: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Software developmentis not a

relay sport

Page 46: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

“how do you knowthat your solution

will work?”

Page 47: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

“Architect”

“that’s an

implementation detail”

Page 48: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

“Architect”

“we have a

spreadsheetfrom past projects”

Page 49: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Look after your architecture

Page 50: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Architectures

evolve

Page 51: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Somebody needs totake

ownership

Page 52: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

It should be the

architect(why hand-off *our* architecture?)

Page 53: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

7. Leadership

Page 54: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Mind the

gap

There’s an essay on our website

about this...

Page 55: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Experienceand focus

Page 56: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Developer

Focusses only on the low-level

detail

Developer

Focusses only on the low-level

detail

Developer

Focusses only on the low-level

detail

Developer

Focusses only on the low-level

detail

Developer

Focusses only on the low-level

detail

Page 57: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Gap

Developer

Focusses only on the low-level

detail

Architect

Sits in an ivory tower and dictates

Page 58: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Reduced gapArchitect

Developer

Increased architectural awareness

Increased collaboration

Page 59: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Somebody needs toundertake technical

leadership(continuously)

Page 60: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

It should be the

architect(sounds obvious, but it doesn’t always happen -

who’s going to steer the boat?)

Page 61: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

8. Coaching and mentoring

Page 62: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Project teams needleadership and

support

Page 63: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Somebody needs to

coach and

mentor

Page 64: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

It could be the

architect(why not share some of our vast experience?)

Page 65: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

9. Quality assurance

Page 66: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Quality needs

standardsand practices

Page 67: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

1. Continuous integration

2. Automated unit testing

3. Code coverage

Page 68: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Source code

analyzers

Page 69: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Most projects

don’t do enoughquality assurance

Page 70: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

What’s

important?

Page 71: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Door

delegate

Page 72: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Somebody needs to

assure quality

Page 73: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

It should be the

architect(agile would say differently, but that’sa bit harsh on junior team members)

Page 74: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

10. Design, developmentand testing

Page 75: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Hands-ondoesn’t necessarily

mean coding

Page 76: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Hands-on means

engaged,but...

Page 77: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

...why shouldn’t the architect code?

Page 78: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

I enjoy

;-)

Page 79: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Manager

“Our architects are

too valuableto code”

Page 80: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Me

“Does it matterif your projects

fail?”

Page 81: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

the architectcan code

(it’s not mandatory; project size orpolitics may prevent this)

Page 82: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

This is what we write about on our

website...

www.codingthearchitecture.com

Delivery

Ownership of the bigger

pictureLeadership

Coaching and mentoring

Quality assurance

Design, development and testing

Page 83: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Summary

Page 84: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Software projects fail for many reasons

(some of which agile doesn’thave the answers for)

Page 85: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Software architects have a

bad reputationbecause of the

limited rolewe often undertake

Page 86: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Software architecture is morethan choosing technology and defining architecture

Page 87: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Project success is more

than choosing technology and defining architecture

Page 88: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Delivery

Ownership of the bigger

pictureLeadership

Coaching and mentoring

Quality assurance

Design, development and testing

Definition

Management of non-functional requirements

Technology selection

Architecture definition

Architecture evaluation

Architecture collaboration

Page 89: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Who should doall of this?

Page 90: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

It should be the

architect(somebody has to do it and that’s why

we get paid the big bucks)

Page 91: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Definition

Management of non-functional requirements

The role of a software architect

Delivery

Ownership of the bigger

pictureLeadership

Coaching and mentoring

Quality assurance

Design, development and testing

Technology selection

Architecture definition

Architecture evaluation

Architecture collaboration

This is what we write about on our

website...

www.codingthearchitecture.com

Page 92: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

A hands-on software architect can be

invaluable for preventing project failure

Page 93: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

A hands-on software architect

can be invaluable for driving

project success

Page 94: Why Software Projects Fail - Coding the Architecture · Why software projects fail.....architects are here to help, not to hinder. Software projects fail ... (why not share some of

Websitehttp://www.codingthearchitecture.com

London User GroupMonthly mix of presentation and discussion

Google Grouphttp://groups.google.com/codingthearchitecture