Monday, May 18, 2015

The Bizarre Beast that is Scope

In my adventures as a game developers some projects that I have been a part of have turned out fantastic. Some projects have not and most of these projects have failed because they are to large in scope. Different people have different definitions of scope but I like to define scope as the sum of all resources needed to complete a project to satisfaction. For example you can say that the scope of making a peanut butter and jelly sandwich is relatively low because making a Peanut Butter Jelly Sandwich only requires one person and several small simple components. Whereas an FPS MMO Role Playing CCG would be relatively large in scope because it would require a large team developing many different abstract and complicated systems simultaneously.

According to this definition, Scope seems pretty easy to understand. So why do so many teams struggle with scope? The answer is because many teams fail to account for the TOTAL Sum of all resources needed for the project. For example, in our PB and J example It was listed that we needed one person and several different components. Many would list the components of a PBJ to be: Peanut Butter, Jelly, Bread and probably a knife to spread the Jelly and the Peanut Butter. One component that many don't list is the Time it takes to make the PBJ.  What about the time it takes to learn how to make a PBJ if you have never made one before? Did you account for the time it takes to gather your resources? Did you account for the time it would take to clean up any messes if any were made? Did you remember to clean the knife between using it on Peanut Butter and Jelly Jars? Did you remember to clean your knife at all to avoid consuming any harmful bacteria.

I think that many would say that a Peanut Butter Jelly Sandwich takes less than 3 minutes to make. I would estimate that a Peanut Butter Jelly Sandwich requires 6 - 9 minutes depending on what you have handy and maybe a lot longer if you have to go to the store.  This may not seem like a huge deal when we are talking in minutes but if a project is scheduled for a year of development time this can completely cripple a company if the project needs thrice the time that was planned for. Also Error only increases as you add more parts to the project. The seemingly quaint one year project can easily turn into 7 year one depending on feature creep, morale and other outside factors. It also gets more complicated as time goes on. Are the people working on the project are the same ones that were working on it when it started? How long will it take them to learn their way around the project?  What technical debt have you accrued through years? Is the hardware you were developing for outdated now?

There are a few practices I use to help manage the scope of my projects. One practice that I get into the habit of doing is letting Practicality inform my design. I will often get really awesome exciting ideas that I think will impress a lot of people and I will happily cut them or write them down for later if I think it is going to be to difficult or time consuming for the value that they bring to the project. Some might say that that stifles creativity. And yes it does but that is the point of the practice. I also am very aware of how long something is taking. If a project is just taking to long to get to a professional level of Quality or Quantity I will scrap the project and start looking for a new one. Some will say that this is a waste of work and you should just finish it but often times you can finish several properly scoped projects in the time it takes to finish one out scoped one. And chances are if it was out scoped in the first place, the Quality or Quantity may be lacking. In general to avoid out scoping a project you should keep it simple. You should not worry about making the next big thing. You should not even worry about improving over your last project. Just worry about making something Fun, Cool and finishing it in an amount of time that you feel comfortable with.

No comments:

Post a Comment