際際滷

際際滷Share a Scribd company logo
Software Engineering for CEOs
Photo courtesy of http://mrg.
bz/z9CBmN
Software Engineering for
CEOs
Gabe Hamilton
So, youre the CEO of a Software Company
a lot of companies are Software companies
Or youre a Product Manager, Tech Writer, Project
Manager, Implementer
a critical part of a software ecosystem.
and youre wondering...
When will it be ready?
*specifically when will Mario Kart 8 be ready.
Or youre 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 were 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 youre 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 days in a book
Add a page
explaining how
it relates to
yesterdays
flowchart.
Give this book to the new person
Would you like
everyone elses book
from this month?
Brookss 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 Paths
1st 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 + 1
5 people = 10 paths = 4 + 3 + 2 + 1
Its the Summation of 1..N-1 = (N-1 x N) / 2
yay, 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
Acknowledgements
Image 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

More Related Content

Software engineering for CEOs ch1

  • 1. Software Engineering for CEOs Photo courtesy of http://mrg. bz/z9CBmN
  • 3. So, youre the CEO of a Software Company
  • 4. a lot of companies are Software companies
  • 5. Or youre a Product Manager, Tech Writer, Project Manager, Implementer a critical part of a software ecosystem.
  • 6. and youre wondering... When will it be ready? *specifically when will Mario Kart 8 be ready.
  • 7. Or youre an engineer who needs to Communicate about software projects.
  • 8. And engineers forget We become Director, CTO, CEO and start wondering, when will it be done? Or were thinking about all the technical details (distributed parallel auto-scaling) and forget how to explain how software projects progress.
  • 9. for solutions see Chapter 2. Todo: write Chapter 2 Ch 1: The Problem with Software Projects
  • 10. Why think about the problems instead of just the solutions?
  • 11. Keep the problem in mind that you want to solve. When youre wondering, Do the TPS reports need a new cover page?
  • 12. In Bidness Speak Begin with the End in mind. Forests Trees Eyes on prizes
  • 13. 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.
  • 14. Imagine a flowchart that explains what 1 programmer wrote today.
  • 15. Collect each days in a book Add a page explaining how it relates to yesterdays flowchart.
  • 16. Give this book to the new person Would you like everyone elses book from this month?
  • 17. Brookss law adding [people] to a late software project makes it later "Nine women can't make a baby in one month."
  • 18. Communication Paths 1 person 2 people what was I doing 3 months ago?
  • 19. Communication Paths 3 people 4 people 3 paths 6 paths
  • 20. # of Communication Paths 1st 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 + 1 5 people = 10 paths = 4 + 3 + 2 + 1 Its the Summation of 1..N-1 = (N-1 x N) / 2 yay, combinatorial growth
  • 21. 6 people 8 people 15 paths 21 paths? ? ? ?
  • 22. 12 people 20 people 66 paths 190 paths 100 people ~5,000 paths ? ? ? ?
  • 23. 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.
  • 24. Hopefully you have great Processes You spend all day swimming in them. Remember: The underlying problem is still the same.
  • 25. Does our process help communicate? ...how things work ...what does it do? ...when will it be done?
  • 26. Ask: Why do we have this process / organization? Does it help communicate? And Hire Engineers who are good communicators
  • 28. a teaser for the next talk, this one is over Ch 2: Time, Features, Quality
  • 29. Acknowledgements Image 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