Upload
gabehamilton
View
559
Download
1
Tags:
Embed Size (px)
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.
Citation preview
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