A powerful strategy to help avoid delays in your ColdFusion project

Similarly to tracking resources, keeping track of dependencies between tasks helps avoid delays. Thanks to that, you know which prior task or tasks need to be completed before the next task can be finished.

Tools

In a multi-man-year projects you can use a GANTT chart to track dependencies.What’s more, you can also track a critical path through all the tasks. For smaller projects, keeping a list of key dependencies is enough.

source: https://en.wikipedia.org/wiki/Gantt_chart

Gantt chart

An example of a dependency is:

development cannot start until

database design is complete

database server ready

and

user interface prototypes are signed off on by client.

(you can’t start coding until you have a database!)

How to know which tasks to focus most on

Some other tasks like writing the user training manual can be done anytime.

You only have such amount of time and effort, you want to focus especially on those tasks that can hold up the whole project.

Versioning- why it’s important

Waterfall vs Agile

Smaller projects — Waterfall approach

  • Your customers understand costs, size and timeline for their projects;
  • Every phase contains specific deliverables.

More complex projects — Agile approach

Risks of Waterfall approach:

  • product risk because don’t even know if you are going in the right direction until it’s too late to make any changes.

Agile allows for continuous improvement and shorter planning cycles. Continual ‘show and tell’ sessions allow for product agreement. You can involve key project stakeholders — product will be built based on priority and accuracy.

SOURCE: http://www.agilenutshell.com/how_is_it_different

Less risk with Agile approach:

  • You have more control and visibility because you are half-way through the project after building half of the features.
  • Product risk is smaller because of early feedback
  • Key stakeholders can suggest changes which can be implemented relatively cheaply.

Agile method comes with some disadvantages:

  • Planning (and setting a specific deadline) can be tricky.
  • Team must be comfortable and skilled inthe chosen Agile framework
  • Difficult to operate in big teams

Task lists- why it’s important

What makes a good tasks list?

  • Clear task names and descriptions
  • No more than 5 days of effort in any task.

For “black-hole tasks” which involve weeks of effort or unclear requirements, there’s a high risk of budget overruns. Because it’s possible that those tasks mean some confusion or extra complexity, they’re just going to take much longer than you thought they would.

  • Comprehensive — all tasks are included

Some tasks often neglected are:

  1. data migration,
  2. integration testing,
  3. load testing.

Tasks estimates

Milestones

For example, you might have milestones for:

  • Prototypes completion
  • Prototype review and sign off by client completion
  • Database design completion
  • Development completion
  • Provision of test data by users
  • Software and servers purchase
  • Staging and live servers configuration
  • Internal testing completion
  • Data migration completion
  • Acceptance testing by users on staging server completion
  • Acceptance testing by users on live server completion

Tracking percentage is misleading

Note that milestones concern a task being 100% complete –it’s not useful to have a 50% or 90% completion milestone because that’s a subjective measure. A milestone is a binary (yes-no) state –it’s either complete or not. Don’t track a percentage completion. Often when a task is “90% complete” it means you’re only half way through!

“In computer programming, there is a rule of thumb called the ninety-ninety rule. This explains the effect of standard deviations on software projects: the first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.”

This is true of any project I’ve encountered.

When you’ve got 90% of a book written, you’re probably about halfway through.

When you’ve got 90% of a product design nailed down, you’re about halfway to a final design.” — from the rticle by Taylor Pearson https://taylorpearson.me/fast/

Track time for better estimates

I account for slips caused by the client and by the software development team differently.

  • A client-caused slip extends the official deadline and I notify the client of the new deadline that we are doing our best to meet.
  • A team-slip does not extend the deadline (but I still notify the client of the estimate delivery date change).

Improving your estimates

Better project visibility

Tools

There are hundreds of project management tools for teams, with different functionalities like: time tracking, risk analysis, issue tracking, GANTT diagrams.

Here’s an overview of the most popular ones: [link: http://www.businessnewsdaily.com/8237-choosing-project-management-software.html]

Risk reduction

Examples:

  • the DBA isn’t available at a key time
  • the users didn’t understand that they were supposed to give all their feedback upfront when you’ve gone through the formal signoff but they didn’t give all their real feedback till you actually delivered the app.

How to start?

  • You can have a checklist of common things
  • Brainstorm on what extra risks can come up.
  • Look at the dependencies (are there any you’re not sure that would succeed?) ,
  • Look at tasks list (any tasks that seem less risky or depend on people from outside of the organization?),
  • Take a look at the technology (maybe it depends on a new technology that you haven’t tested before)

For each of those you think what the workarounds are or how we can find out if this risk can really happen.

Example: if you’re using a new version of software or a new technology, a mitigation would be writing some trial code to test it out. This simulates the amount of data that you have to see if it works.

Regularly (each month) review the risk list:

  • how many of these risks that we need to deal with have come up
  • are there any risks that are more likely
  • are there any new risks that need to be addressed?

SUMMARY

We’ve covered the most important methods to avoid project delays and going over budget.

I’ve seen projects where everyone thought ‘it’s going fine’, until the project was deployed and turned out to be not working…Those methods give the project manager more control and visibility on what’s going on so they can make adjustments during the project.

Originally published at teratech.com on February 10, 2017.

ColdFusion development, security and optimization. CEO at TeraTech. Host of CF Alive podcast.