I got to finish reading another good book: Making Things Happen: Mastering Project Management, by Scott Berkun. Scott worked for 10 years at Microsoft, which included projects on IE, MSN, and Windows. The book is practical and engaging - definitely not one of these ivory-tower things that bore you to death. All the book drawings also look like sketches on the back of a napkin - no MS Visio here.
Perhaps what I find interesting about it is that so many developers think that the only thing they really need is super technical knowledge - "If I'm just brilliant, then everyone will recognize my brilliance, and life will be good." This is simply not true - there are non-technical factors that can kill projects and careers: people skills, politics, bad management, etc... My entire software career, I've seen people significantly smarter than myself who crash and burn because, although they got the tech skills, they are clueless about how to convert those tech skills to "make things happen".
Scott divides his book into three main parts:
Amongst those three main categories, he covers a broad spectrum of vital, yet non-technical skills, such as figuring out what to do, making good decisions, how not to annoy people, what to do when things go wrong, and actually getting things to happen.
Some quotes I liked:
- "failures force us to pay attention." (pg. 5)
- [about schedules] "attempting to predict the future - something our species rarely does well." (pg. 31)
- "The more change that is expected, the shorter the milestones should be." (pg. 39)
- "Volume should never be confused with quality. Unfortunately, because volume is easier to produce than quality..." (pg. 79)
- "innovative work often occurs when one person has both requirements and design authority" (pg. 94)
- "programmers tend not to be interested in writing things that don't compile." (pg. 140)
- "If I can't come up with more than one choice, I clearly don't understand the problem well enough: there are always alternatives." (pg. 161)
- "For most tough decisions, the problem isn't a lack of data. Tough decisions exist no matter how much information you have." (pg. 167)
- "You have to be willing to get burned if you want to develop the skill of putting out fires." (pg. 222)
- "if you can't say no, you can't manage." (pg. 265)
- "As a rule, the further a team gets from reality, the harder it is to make good things happen." (pg. 267)