software engineering for ceos ch1

Post on 24-May-2015

553 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

The start of 'What you should know about building software if you work at a software company', Chapter 1 covers Problem #1, communication time.

TRANSCRIPT

Software Engineering for CEOs

Photo courtesy of http://mrg.bz/z9CBmN

Software Engineering for CEOs

Gabe Hamilton

So, you’re the CEO of a Software Company

a lot of companies are Software companies

Or you’re a Product Manager, Tech Writer, Project Manager, Implementer…

a critical part of a software ecosystem.

and you’re wondering...

When will it be ready?

*specifically when will Mario Kart 8 be ready.

Or you’re an engineer who needs to Communicate about software projects.

And engineers forget

We become Director, CTO, CEO and start wondering, “when will it be done?” Or we’re thinking about all the technical details (distributed parallel auto-scaling) and forget how to explain how software projects progress.

for solutions see Chapter 2. Todo: write Chapter 2

Ch 1: The Problem with Software Projects

Why think about the problems

instead of just the solutions?

Keep the problem in mind that you want to solve.

When you’re wondering,“Do the TPS reports need a new cover

page?”

In Bidness Speak

Begin with the End in mind.

Forests … Trees

Eyes on prizes

Problem #1:Software is ½* communication

Programs are super complex.

To change one you need to know how it works.

*where ½ = lots. Other half is rumored to consist of perspiration & inspiration.

Imagine a flowchart

that explains what 1 programmer wrote today.

Collect each day’s in a book

Add a page explaining how it relates to yesterday’s flowchart.

Give this book to the new person

Would you like everyone else’s book

from this month?

Brooks’s law

adding [people] to a late software project makes it later

"Nine women can't make a baby in one month."

Communication Paths

1 person

2 people

what was I doing 3 months ago?

Communication Paths

3 people

4 people

3 paths

6 paths

# of Communication Paths1st person has a path to each of the others 2nd person needs a path to everyone except the 1st, …

4 people = 6 paths = 3 + 2 + 15 people = 10 paths = 4 + 3 + 2 + 1

It’s the Summation of 1..N-1 = (N-1 x N) / 2yay, combinatorial growth

6 people

8 people

15 paths

21 paths??

??

12 people

20 people

66 paths

190 paths

100 people ~5,000 paths

?? ?

?

Now wait

We have 65 years of solutions to this problem, just in software.

Hierarchy, teams, departments; OOP, APIs; Extreme, Agile, Scrum, Kanban Iterations; project, product, development - lead, manager, architects.

Hopefully you have great Processes

You spend all day swimming in them.

Remember:The underlying problem is still the same.

Does our process help communicate?

...how things work

...what does it do?

...when will it be done?

Ask:

Why do we have this process / organization?

Does it help communicate?

And Hire Engineers who are good communicators

Because

Software is ½ Communication

a teaser for the next talk, this one is over

Ch 2: Time, Features, Quality

AcknowledgementsImage Attributions

CEO cat http://mrg.bz/z9CBmN

Guy at desk http://mrg.bz/zSkLDb

Woman presenting http://mrg.bz/slnIq7

Guy with phone http://mrg.bz/4pqGBY

Mountain http://mrg.bz/taTQ1v

4 books http://www.morguefile.com/archive/display/189153

Jargon pic (CC) Gavin Llewellyn.www.onetoomanymornings.co.uk.

Bank

Capitol

MRI http://en.wikipedia.org/wiki/File:Connectome_extraction_procedure.jpg

Software Engineer http://en.wikipedia.org/wiki/File:Coding_Shots_Annual_Plan_high_res-5.jpg

Flowchart http://commons.wikimedia.org/wiki/File:Euclid_flowchart_1.png

Single Textbook http://en.wikipedia.org/wiki/File:Textbook.JPG

Fred Brooks http://commons.wikimedia.org/wiki/File:Frederick_Brooks_IMG_2261.jpg

top related