Avoiding Pitfalls: Identifying the Critical Path in Software Development.

In this post we will have a look at things to keep in mind when planning your work as a software developer. Effective planning is key to ensuring projects stay on track, especially in software development, where unexpected issues can quickly derail progress.

Jim, one of my colleagues at a previous job, was tasked with a change to the website we were building to connect it to an external data source. Let’s take a look at Jim's story and how his approach highlights the importance of identifying the critical path in a project. He had to do the following:

  • Add a new page to search the external data source
  • Make sure this page could only be used by users in a specific user group
  • Implement an authentication call to a new API
  • Implement a search call to a new API
  • Add a search component to this new page
  • Add search results to this new page

Jim had 3 days to complete this new feature.

Sounds simple, right? How would you plan making this change?

Jim kicked off the project by quickly setting up the new page and displaying mock results, followed by adding a user-group check. He polished the looks and added a search component to the page.

Near the end of day 2, he performed the authentication call to this new API and got a network timeout. Oops. A firewall was blocking his progress.

Jim emailed the support person for this API and explained the problem.

In the morning of day 3, the firewall was opened.

Jim tried again to authenticate, and succeeded. He then tried the search call, and got a 503 error. Looks like something was wrong on the API's test environment.

He emailed the support person again, and the other party started debugging.

In the end, Jim did not manage to finish his task in the required 3 days.

Was this bad luck? Or a bad approach?

If you ask me, this was a bad approach. Jim should have started by validating whether the API was working as intended.

Doing that, he would have encountered the problems immediately and could have worked on building the new page while waiting for the other party to solve the issues.

If you have a complicated task or project, determine the critical path and work on that path as soon as you can.

Tasks involving third-party services, external APIs, or dependencies with other teams are often beyond your direct control, making them crucial components of your critical path.

By recognizing and addressing the critical path early, you can mitigate risks, prevent delays, and maintain steady progress. Whether it's tackling unclear requirements, complex technical challenges, or external dependencies, working on the critical path first ensures you're set up for success.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top