What's it all about?I haven't quite figured out the best title or format for this page, but the intent of it is this: in my work life several topics are important to me. How to develop software, how to manage people developing software and how to manage the software products being built. This page is my notes about, and links to, key ideas and approaches on these three topics that I think really matter.
For more of a "things that really matter" for the non-work life I recommend this.
Co-location really matters
"Having analyzed more than 10,000 cases in the QSM, Inc. projects database, we have discovered one particularly fascinating software development artifact: the biggest impediment to productivity and quality is a disparity in timezones," Mah said. "Whether teams are co-located or not co-located --clustered in one location—can have a huge impact. We only suspected that before, now we know for sure."Can companies overcome this handicap, Mah mused? "Absolutely, but it's rare. We now know that geography does matter, in the world of offshoring and software development."
Agile done right is the right thing to do
- TODO: need some content t back this up(!)
- Agile: Ten perennial management objections: http://www.forbes.com/sites/stevedenning/2012/04/17/the-case-against-agile-ten-perennial-management-objections/
Working more hours will not get you a quality product faster
TODO: pull out key quotes, excerpts.
Facebook’s “Hacker way”
How good engineers look at problems…
“The Hacker Way is an approach to building that involves continuous improvement and iteration. Hackers believe that something can always be better, and that nothing is ever complete. They just have to go fix it — often in the face of people who say it’s impossible or are content with the status quo.”
Experimentation and exploration are key to software development
Lots of products accidentally discovered - Velcro, Post-Its, Frisbees,
blue cheese, xrays, Kleenex, penicillin
blue cheese, xrays, Kleenex, penicillin
Building software is NOT like building houses.
Continuous delivery, feature toggles and metrics
The lean startup/continuous delivery folks are onto some good ideas…
- 4 principles for low risk releases: http://www.informit.com/articles/article.aspx?p=1833567
- 5 core practices: http://www.informit.com/articles/article.aspx?p=1829417
Caliber of people is important
- "Best efforts will not substitute for knowledge." Dr. W. Edwards Deming
- Deming's Second Thereom: "We are being ruined by best efforts"
- "It is not enough to do your best; you must know what to do, and then do your best." W E Deming
- Much more needed...
Getting work done
- "There's no word for accountability in Finnish. Accountability is something that is left when responsibility has been subtracted." Pasi Sahlberg (from here)
- Assign tasks and people will work for you. Assign responsibility and people work for themselves.
- If you tell your employees how to do everything, don't be surprised that they don't know how to think for themselves.
- Poorly timed meetings can wreck an engineer’s day: http://www.paulgraham.com/makersschedule.html
- Multitasking is a fool's game
- If you're going to claim to be agile, don't do this: http://www.halfarsedagilemanifesto.org/
A few bad apples ruin everything
A growing body of research suggests that having just a few nasty, lazy or incompetent characters around can ruin the performance of a team or an entire organization—no matter how stellar the other employees.
Bad apples distract and drag down everyone, and their destructive behaviors, such as anger, laziness and incompetence, are remarkably contagious. Leaders who let a few bad apples in the door—perhaps in exchange for political favors—or look the other way when employees are rude or incompetent are setting the stage for even their most skilled people to fail.
A often-cited Cornell University study published in 1999 by Justin Kruger and David Dunning found that below-average employees tend to be unaware of their own shortcomings and will often overestimate their abilities. They may not even understand why you are dissatisfied with their work so may take criticism as a personal attack.
You are a software company. Act like one…or perish.
Ford sells computers-on-wheels. McKinsey hawks consulting-in-a-box. FedEx boasts a developer skunkworks. The era of separating traditional industries and technology industries is over—and those who fail to adapt right now will soon find themselves obsolete.
Individuals are as important as teams
- The secret to team collaboration is individuality: http://www.inc.com/john-baldoni/the-secret-to-team-collaboration-is-individuality.html
- The rise of the new groupthink: http://www.nytimes.com/2012/01/15/opinion/sunday/the-rise-of-the-new-groupthink.html?_r=4&pagewanted=all
- Brainstorming doesn’t work: http://www.newyorker.com/reporting/2012/01/30/120130fa_fact_lehrer?currentPage=all&mobify=0
- "Honest disagreement is often a good sign of progress." - Mahatma Gandhi
- Mediocre teams always agree.
- Everyone makes mistakes: https://gist.github.com/2508746