Also see: Language parsing and compiler design doesn’t have to be hard, but boy this book really sucks!
Whenever I lead a project, I always try to plan in such a way that sets me and my team up for success. I do this in many ways, starting with a good methodology, doing thorough analysis, and providing a level of risk/certainty along with any estimates I provide.
Part of this strategy involves ensuring that client expectations match developer and project expectations. I tend to use the tried and true approach; “Plan for the worst, hope for the best”.
Some people see me as a pessimist, but I beg to differ - I consider myself a cynical, yet optimistic, realist. By that, I mean that although I do plan everything based upon the worst case scenario, in my heart I truly believe we are going to achieve the best case scenario every time. It often surprises me when people take my approach to be negative while at the same time, I often see their approach naive & overly optimistic.
The truth is that there seems to be a gradient scale of attitudes and philosophies employed from project to project depending upon the people leading and participating in the project.
Over the years, I started a private game in my head of creating nicknames for the different patterns of behavior. Here are a few names of I have toyed with in the past:
“Expect the worst, then add 20%” - The Pessimist
“Expect the worst, hope for the best” - Reformed Pessimist
(more…)