Live Traffic

Our Story

Ceremony

Search

Just Married

3 Tips for Successfully Executing Projects

by - March 01, 2010

In this post, I've decided to divert from my "norm" of slinging code and doing fun things with data. Instead, I'd like to share some tips I've picked up along the way for executing successful development projects.

Quick and dirty, and in no specific order, here's the list:

1. Know what you're going to build before you build it.
2. Stay in scope
3. Keep communication lines open

Right off the bat, these might seem like common sense. However, it is amazing how often these may get neglected. Let's examine in a bit more detail...

Know what you're going to build before you build it.
With the popularity of Agile/rapid application development methodologies, it is often the case a larger problem is broken down into smaller tasks that can be achieved within a 2 week sprint. One major pitfall that can happen here is that you start building application components without thinking ahead how those components might affect other components or features down the road. Multiple sprints in, it could be discovered that assumptions from early sprints conflict with scenarios required by later sprints. This can end up causing rework, burned hours, and major frustration. You don't need to know every detail about what you are building throughout the entire lifecycle, but it is important to understand the big picture in between sprints, to avoid these scenarios.

Stay in scope
This really has two parts. First, there is the task of managing scope of requirements from your client or boss. If you estimate X hours to complete tasks A, B, and C, and then realize that you are being requested to also complete features D, E, and F, then your estimate is now off. There is a fine balance of delivering what is necessary and pushing back on items that do not need to be completed within the deadline. Scope creep can kill a timeline, kill a budget, and be an impediment of progress and success. Each project is different, and I don't have an ideal solution, however it is important to watch out for it, communicate, and mitigate as necessary.

Secondly, there is the task of staying on target with your efforts. It might sound nice to add in features Q, R, and S, but you are only required to deliver task Z. This doesn't necessarily mean that you should complete all of those tasks. You need to weigh the importance and impact of each task/feature before focusing efforts on it. Does it cost/money time now, but save in the future? Are those necessary features? Are they nice for the developer, but extend the timeline or budget? Are you in a time critical scenario?

In both of these cases, decisions need to be made with regard to completing the tasks at hand, and both can have affects on timeline and budget. Whichever decision is made, that decision must be communicated throughout the team - and this leads me to number 3...

Keep communication lines open
Last, but definitely not least, strong communication is critical to the success of a project. A development lead must be able to communicate clearly and effectively with the development team, so that they clearly understand the end goal as well as individual tasks. Likewise, management should clearly express the tasks that need to be achieved by the development team.

Not only is it important to have clarity of tasks, it is extremely important to have clear communication of execution status. If a task is taking to long, let people know so that risk can be mitigated and impact can be managed. If more resources are needed, let people know so that those resources can be made available. If you are ahead of schedule, let people know so that the schedule can be adjusted accordingly (this one is typically a good thing!). It is rarely a good situation to either get blind-sided by issues, or to blind-side someone else.

Wikis, bug trackers, spreadsheets, and status meetings are all tools that can be used to track, manage and mitigate these scenarios, however they are only as effective as the underlying team communication.


___________________________________
Andrew Trice
Principal Architect
Cynergy Systems
http://www.cynergysystems.com

You May Also Like

0 comments