What every developer should know.
Planning, planning, and some more planning
It’s easy to get excited about an idea and want to open up your favorite IDE (integrated development environment), whether it’s Visual Studio, Flash, NetBeans, Photoshop or Notepad, we, as developers and designers have the itch to start.
Starting is ok; starting is good, starting off on the right foot is essential.
Having a plan is essential to creating a great product. It doesn’t matter if that product is an application, flash game, image or anything else. Knowing exactly what you want to build and the steps involved to get there is the key. Here are a few basic steps I take before starting a project. These will vary depending on the project and stakeholders involved.
Who, What, Where, When, How
Define what the project is: Graphic logo, web site, plug-in, application, widget, all or some of these.
How many people are involved in this project: developers, designers, stakeholders, etc. and who is in charge. Who is the point person for all that is in regards to the project.
Is there anything we can compare this project to? This is important, because many people really don’t know exactly what they want. If you can find a project, site, logo, etc. that is like what the client wants, you can show them this and try an emulate it, or at least use it for a starting point.
Functionality: this is one of the most important pieces, assuming this is some type of interactive program. Many times, clients assume it will have “X” functionality, but nothing should ever be assumed. An architect would not draw additional rooms, stairways or windows, simply because he assumed that is what his client wants. Like architects, we need as much feed back from the client before starting anything.
Visual Interface, color palettes – what the user and client will see. This is probably the must frustrating part of any web project, although it applies to many other projects as well. A perfect example of why feedback and insight from the client is so important at the infancy stage of a project.
That’s not what I envisioned
Scope basically refers to the boundaries a project will have. This is very important, as it protects both the client and professional or company. Setting the scope of a project in simple terms is just the minimum and maximum features and functionality the project will have. Once a scope is locked in, the project can start. Scope is usually defined in a contract, so both parties are clear on what they will receive and what is expected of them. It does add to the cost and time of the project, but in most cases, it is the difference between failure and success, not to mention unfriendly litigation. Be careful of “scope creep”, this is when a client wants to add on things they forgot, or just realized they needed. When this happens, the contract and scope have to be agreed upon again, along with additional financing and time considerations.