the role of the software architect in successful...

92
The role of the software architect in successful projects

Upload: others

Post on 22-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

The role of the software architectin successful projects

Page 2: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Why software projects fail...

Page 3: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

...architects are here

to help, not to hinder

Page 4: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Software projects failfor a number of reasons

Page 5: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Iterative and agile techniques solve some problems...

Page 6: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

...but not all of them

Page 7: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Software architectshave a

bad reputation(“thinkers”)

Page 8: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

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 9: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Time for

change

Page 10: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

www.c5alliance.com

1. Management of the non-functional

requirements

Page 11: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Stakeholder

“it should be

fast”

Page 12: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

“the main flow of the

search use caseshould respond within

10 seconds,for

all concurrent users”

Page 13: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Performance Scalability Availability Security Disaster Recovery Accessibility Monitoring Management Auditability ...

Flexibility Extensibility Maintainability Interoperability Legal Regulatory Compliance i18n L10n ...R

untim

e

Non

-run

time

Page 14: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Somebody needsto take

ownership

Page 15: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

It should be the

architect

Page 16: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

www.c5alliance.com

2. Architecture definition

Page 17: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Every system has an architecture, but not every

architecture is

defined

Page 18: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Just enough(pragmatic rather than

big design up front)

Page 19: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Architecture definition introduces

structure, guidelinesand leadership

Page 20: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Somebody needs to

take ownership

Page 21: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

It should be the

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

Page 22: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

www.c5alliance.com

3. Technology selection

Page 23: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Do you believevendor hype?

Page 24: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

“does it actually work?

show me.”

Page 25: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Technology selectionis about

managing risk

Page 26: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Somebody needsto take

ownership

Page 27: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

It should be the

architect(if we recommend some technology,

we better make sure it works!)

Page 28: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

www.c5alliance.com

4. Architecture evaluation

Page 29: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Does your architecture

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

Page 30: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Do you trust yourself?(I don’t)

Page 31: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Testing provides

confidence

Page 32: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

I want to prove my architecture will work

(management generally give meless grief when I do this)

Page 33: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Performance and

scalability tests(automated if possible)

Page 34: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Somebody needs to

take ownership

Page 35: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

It should be the

architect(we should taste our architecture)

Page 36: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

www.c5alliance.com

5. Architecture collaboration

Page 37: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

The team needs to

understand the architecture

Page 38: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Architecturesdon’t live in

isolation

Page 39: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Somebody needs to

take ownership

Page 40: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

It should be the

architect(our architecture needs to integrate)

Page 41: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Definition

Management of non-functional requirements

Technology selection

Architecture definition

Architecture evaluation

Architecture collaboration

Page 42: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

www.c5alliance.com

6. Ownership of the bigger picture

Page 43: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Software developmentis not a

relay sport

Page 44: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

“how do you knowthat your solution

will work?”

Page 45: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

“Architect”

“that’s an implementation

detail”

Page 46: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

“Architect”

“we have a

spreadsheetfrom past projects”

Page 47: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Look after your architecture

Page 48: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Architectures

evolve

Page 49: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Somebody needs to

take ownership

Page 50: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

It should be the

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

Page 51: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

www.c5alliance.com

7. Leadership

Page 52: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Mind the

gap

There’s an essay on the “Coding the

Architecture” website about this...

Page 53: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Experienceand focus

Page 54: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

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 55: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Gap

Developer

Focusses only on the low-level

detail

Architect

Sits in an ivory tower and dictates

Page 56: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Reduced gap

Developer

Increased architectural awareness Architect

Increased collaboration

Page 57: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Somebody needs toundertake technical

leadership(continuously)

Page 58: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

It should be the

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

- who’s going to steer the boat?)

Page 59: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

www.c5alliance.com

8. Coaching and mentoring

Page 60: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Project teams needleadership and

support

Page 61: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Somebody needs to

coach and

mentor

Page 62: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

It could be the

architectwhy not share some of our vast experience? ;-)

Page 63: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

www.c5alliance.com

9. Quality assurance

Page 64: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Quality needs

standardsand practices

Page 65: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

1. Continuous integration

2. Automated unit testing

3. Code coverage

Page 66: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Source code

analysers

Page 67: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Most projects

don’t do enoughquality assurance

Page 68: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

What’s

important?

Page 69: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Door

delegate

Page 70: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Somebody needs to

assure quality

Page 71: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

It should be the

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

Page 72: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

www.c5alliance.com

10. Design, development

and testing

Page 73: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Hands-ondoesn’t necessarily

mean coding

Page 74: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Hands-on means

engaged,but...

Page 75: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

...why shouldn’t the architect code?

Page 76: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

I enjoy

;-)

Page 77: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Manager

“Our architects are

too valuableto code”

Page 78: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

“Does it matterif your projects

fail?”

Page 79: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

the architect can code

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

Page 80: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Delivery

Ownership of the bigger

pictureLeadership

Coaching and mentoring

Quality assurance

Design, development and testing

Page 81: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

www.c5alliance.com

Summary

Page 82: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Software projects fail for many reasons(some of which agile doesn’t

have the answers for)

Page 83: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Software architects have a

bad reputationbecause of the

limited rolewe often undertake

Page 84: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Software architecture is morethan choosing technologyand defining architecture

Page 85: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Project success is more

than choosing technologyand defining architecture

Page 86: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

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 87: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

Who should doall of this?

Page 88: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

It should be the

architectsomebody has to do it and that’s why

we get paid the big bucks ;-)

Page 89: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

The role of a software architect

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 90: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

A hands-on software architect can be

invaluable for preventing project failure

Page 91: The role of the software architect in successful projectsstatic.codingthearchitecture.com/presentations/bcs2008... · 2010-01-15 · The role of a software architect Delivery Ownership

A hands-on software architect

can be invaluable for driving

project success