We have already covered the importance of project objectives and specifications. Of course setting those objectives requires knowing your stakeholders and getting their involvement. In this and other articles I use the term stakeholders to represent the set of people who care about this project. It could be your customers, your manager, people who work in the systems being modeled, or others.

Step 2 – Creating a Project Plan

When creating a project plan, two adages come to mind.

“Expect the Best; Plan for the Worst”

I think it is fine to be an optimist and hope, maybe even expect, that things will go well. But I don’t count on it. I don’t base my plan on optimistic assumptions. I like to start with what seems to be a reasonable estimate, then double it to account for all the things that I know will go wrong. This may seem like “padding” but the objective is to determine an achievable schedule. I have seldom, if ever, found what seems up front to be a “reasonable” schedule to actually be achievable in the end due to the large number of unknowns in a typical project.

Of course you can always spend more time up front studying the problem to reduce the risk to an acceptable level and possibly improve the accuracy of your estimates. But by that time the project has often become irrelevant because the decisions have already been made. Time estimates are always a guess and always wrong, so find a method that works for you and move on.

“Under Promise, Over Deliver”

To me this means be conservative. I try to avoid over-committing and, when possible, avoid sharing my optimistic intentions. For example, while I may have every expectation of creating a compelling 3D animation, I might only guarantee 2D animation or simple 3D animation. Or while I might intend to model some secondary applications so that I might explore some potential system improvements, I would not guarantee that in the project specifications.

In fact, my project specifications usually include three categories:
• Guaranteed Deliverables – No matter what happens, the project is not considered done without them.
• Likely Deliverables – I intend to complete these, but if things go poorly, they may be cut. Often the stakeholders do not even know this list exists, depending on their tolerance for flexibility.
• Wish List – In the rare instance when the project goes exceptionally well, I implement tasks from this list. This list never makes it to a public project plan.

This approach provides me some flexibility to:
a) Avoid disappointing the stakeholders in case the project goes poorly, and
b) Retain the opportunity to delight the stakeholders if the project goes well.

What Comes Next?
These first two steps are just the start of a project. In future articles I will discuss prioritization, agility, communication and many other topics that contribute to making the date and making a successful project.

How many times have you shown up late to an event? Perhaps something came up at the last minute. Perhaps you encountered road construction. Or maybe you just failed to think ahead. Sometimes it all works out. But sometimes you miss something important – like your sister’s wedding vows or your child’s big performance.

In an earlier article, we talked about the importance of project planning and management. Although there are many aspects to success, let’s concentrate on the completion date for the next few minutes. A project that produces results after the decision is made has little value. And a project running over budget due to lateness may be cancelled before completion. Success requires appropriate attention to completion dates.

Late projects are a chronic problem in all types of software development. Let’s start by exploring some of the causes of lateness.

Expectations – Planning the Journey

In software development the constraints of Date, Resources, Features, and Quality are well known. You can specify or mandate any one, two, or possibly even three of those factors, but if you try to mandate all four, you will almost certainly fail. For example, I can say I want all features completed with high quality, in 90 days, but then I have to be prepared to allocate resources as necessary. Or if I want it done with a maximum of 3 people, then I must be prepared to slide the date or other constraints. These same aspects apply to most simulation projects – perhaps substituting the word Comprehensiveness for Features and the phrase Validation/ Verification for Quality.

Since many projects start off in an urgent, budget-constrained status, management often tries to mandate all four constraints. But can I really specify all four constraints (e.g. all features completed with high quality, in 90 days, with a maximum of 3 people)? NO – not unless I have started with a very loose schedule (unlikely with an urgent project). I have generally found that attempting to do so will just mean that I will have no idea, until near the end, by how much each of the constraints will be missed. Note I said “by how much”, not “if”. As the anticipation of missing the date approaches, the pressure will increase at all levels to “cut corners”. Then, to save the viability of the project there is often a last-minute attempt to add resources to “save the date”, but that attempt is usually too late to have much impact.

Road Construction Next Million Miles

Assuming that we have reasonable expectations up front, what are some of the other problems that can hijack the schedule?

Objectives – Poor project objectives, as we discussed last week, is a huge potential problem. If you start with a missing or inadequate functional specification and a poor understanding of project, it is unlikely that you can develop a realistic project plan.

Optimism – I like to be guided by Murphy’s adage “Anything that can go wrong, will.” Many people think that it is safe to base their project estimates on “reasonable” effort estimates. But “reasonable” often becomes highly optimistic when adjusted by real world situations.

Stakeholder Involvement – First of all, you need to know who your “customers” are. If you are working for a large organization it might be difficult to determine who all the people are who have a stake in your project. If you are a consultant, this may be a bit easier. But after you identify them, the stakeholders must be involved. If they are not involved then you may be missing the important resources and information, and your project priority may suffer.

Skills – We are all smart, resourceful people. We all like to believe that we know, or can quickly learn, whatever we need to know to complete the project. But quite often there are many things we don’t know. And even more dangerous, there are things that we don’t even know that we don’t know.

Of course there are many other areas where you could go wrong – I’ll talk about them in future blogs. For now, maybe give some thought to these concepts and in a future blog we will talk about dealing with this first set of pitfalls.

Most projects start with a concrete deliverable date, but often only a rough idea of what will be delivered and only a vague idea of how it will be done. But as the old saying goes “If you don’t know where you are going, how will you know when you get there?”

To start with, I’ve learned over the years that you need to know your stakeholders. Who is funding the project? Who is using the model and its results? Put yourself in their positions and determine what their concerns are and what they would like to see from this project. What is the real motivation for this project? How will they measure success? After all, they are the passenger(s) and it’s their desired destination.

You need clear objectives as early as possible. In order to help find out what these are, you must ask these questions:

What do they want to evaluate or hope to prove? Short, concise goals are best.

What is the model scope? What system aspects must be considered?

How much detail is anticipated for various system aspects?

What input data do they anticipate being used and what is its availability?

How much experimentation will be required? Is optimization required?

In what form do they want results (detailed numbers, summaries, graphs, textual analysis, …)?

Do they want animation, and if so how will it be used? Animation for validation is often quite different than animations presented to a board of directors.

TIP: One way to enhance early clarity is to create a mockup of the desired final reports. Doing this as part of the specification phase can clarify many aspects of the project. Possible questions to ask would include: What items do they want to see? What alternatives should be compared? What statistical measures are they comfortable with?

Getting lost before you even turn over the engine?

Sometimes the desired project clarity is not there at the beginning. If this is the case, you are just fooling yourself if you plan the entire project including deliverables, resources, and date. Lack of early clarity is a key indicator that a project should be done in phases. I have found starting with a small prototype often helps clarify the big issues. Based on those prototype experiences, you might find that you can do a detailed plan for Phase 1 and a rough plan for any subsequent phases.

An alternative approach is to start by doing a full functional specification. Some organizations spend the first 5-10% of anticipated project effort creating a functional specification. Your functional specification should describe all of the objectives discussed above in enough detail that the project approach and effort can be accurately estimated. While this effort may seem high, it generally pays off in a more robust, predictable project and deliverables.

I plan on sharing more about functional specifications in a future blog. Until then, Happy Simulating…

On my honor, I will do my best
to do my duty to God and my country;
To obey the Scout Law;
To help other people at all times;
To keep myself physically strong, mentally awake,
and morally straight.Boy Scouts of America – Scout Oath

I haven’t really thought about those words in a few decades, but it’s funny how they came back to me in an instant. If you were ever a Scout, you probably repeated those words hundreds of times, like I did. These are certainly admirable words to live by. But what does that have to do with simulation?

On my honor – Make a commitment. Then take it seriously. Or in the words of Jedi Master Yoda “Do, or do not. There is no ‘try.’ ”I will do my best – Is “good enough” really good enough? What would happen if you really did your personal best?To do my duty – A somewhat outdated concept, that each of us has intrinsic responsibilities and obligations. Or is it?To self and company – OK, I took some liberties here. But when considering your specific project commitments, also consider the big picture of what the company (or your stakeholders) really need. And it should never be far from your mind, what do you and your family need?To help other people – A team who works together can accomplish so much more than the sum of the individuals.To keep myself physically strong – Keep a good balance in your life. Personal fitness takes time, but can return so much.To keep myself mentally alert – Some types of wisdom require time to develop, but sometimes “wisdom” can be as simple as thinking things through objectively, along with careful attention to detail.To keep myself morally straight – There is no substitute for personal integrity. Sometimes you have to make difficult choices to keep your integrity, but it is always easier to keep than to restore after it has been lost.

These concepts are valuable in your professional life as well as in your personal life. Think about them from time to time while doing your next project.