views:

77

answers:

4

I have friends who have asked me to make websites and most are very small, usually I don't bother with a technical plan but one friend in particular clearly had goals larger than my own and the project is dragging on forever. If I had made a spec before the project I feel like this wouldn't have happened and our relationship would be as solid as before.

So my question is, how can you tell how small is too small? How do you tell when the project you're embarking on is going to end up in a guilt-ridden scope creep nightmare?

+1  A: 

As you may have already figured out, no project is too small to have at least an informal, written plan. Even if it's just a features list.

Robert Harvey
+5  A: 

If you are going to be charging money (or don't want to be stuck doing the project forever), a project plan is always a good idea. Even if it's just a one-pager outlining what the web site will have (how many pages, any special features) and who is responsible for what. You should factor in that you'll spend 20% of your time (or whatever percentage past experience has taught you) on documentation or non-coding type work, you can give a better estimate of the effort needed. If it's a friend, you might want to tell them that you'll do the first X hours for free, but after that your rate is $Y per hour. Also, keep an accurate log of the time you've spent so that you can show them the amount of effort that is involved. Also, keeping an accurate log helps you estimate future projects.

TLiebe
I hadn't thought about this from the improved estimation perspective and to prove that it really does take quite a bit of time. Thank you.
Chuck Vose
+1  A: 

A project that does not need a plan is a project that does not need to be even started. In my opinion everything needs a plan, what changes is the extent of that plan. A plan could be just a list of deliverables and some deadline attached to each one. A more robust plan should include time charts, cost, phases, communications howto, dependencies, etc. So I think everything needs a plan, the contents of the plan is what changes depending on the project complexity.

Freddy
This is great perspective, I'm glad I asked.
Chuck Vose
+1  A: 

Dwight Eisenhower on planning:

In preparing for battle I have always found that plans are useless, but planning is indispensable.

It seems the same in many software projects: you'll find that your plans need to be continually updated and that your first plan was quite different from what you finally completed. But that's okay, it's much better to put some planning in up front than to try something by the seat of your pants.

Agilists try to accommodate such changes in plans by breaking longer term plans into small "sprints" of 2-4 weeks. They'll have more details on the near term sprints, and fewer details on the longer term goals.

You'll especially want to be more detailed and precise if the project is bigger, if you are doing this for an external customer, or if you're attempting something new for you. It's less important (though not unimportant) for smaller projects and types of work you've done before and are very familiar with.

Jim Ferrans
I really like that quote. I'd never heard it applying to project management but it seems totally fitting. I also like the idea of a sprint on this project. I sort of wonder if there's any agile methodologies specifically for projects you do on the weekends. Is this the hackathon style of coding?
Chuck Vose
@Chuck, That's a pretty interesting question ... haven't ever seen anything on personal *agile* techniques. Watts Humphrey at the Software Engineering Institute at CMU has written about the "Personal Software Process (see http://www.sei.cmu.edu/reports/00tr022.pdf).
Jim Ferrans