Blog by Railsware

What is an Implementation Plan, or How to Plan Implementation in Development

To plan or not to plan? After years of developing our products, collaborating with various tech partners, and managing a distributed 200+ team, we’ve learned that efficient workflow planning is half the battle won.

Our foundational approach was inspired by our experience with Pivotal Labs in the early 2010s. During this time, we recognized the need for a structured approach to planning work on user stories for each sprint—a process we now refer to as the Implementation Plan.

But what is it exactly? How detailed should an implementation plan be? And how do you handle differing client opinions? In this article, we’ll tackle these questions head-on and guide you through creating an implementation plan that truly delivers.

What is an Implementation Plan?

An implementation plan is a detailed and specific plan written in a checklist format, meticulously crafted by developers before they begin working on each user story. This plan serves as a mini roadmap, ensuring that every aspect of the task is thought through and accounted for before any code is written.

In essence, the implementation plan is a step-by-step guide for executing each task, created by engineers for themselves or other developers on the team. It breaks down the user story into manageable actions, helping to prevent any overlooked details and providing a clear path forward.

Engineers often resist adding extra steps to their routine processes, especially when it comes to planning. It’s easy to see planning as unnecessary overhead. However, I believe that the implementation plan provides significant advantages:

  1. It forces the team to deeply understand the requirements of each task, leading to more accurate time estimates for implementation.
  2. It prompts developers to think critically about the task before diving into the code. That can help to reduce the likelihood of mistakes and rework.

Stay tuned, as I’ll share more about the benefits of this process later on.

How does this approach work?

Here’s how the process unfolds. First, we identify which user stories will be implemented in the upcoming sprint. The engineer’s task is to craft a detailed, step-by-step Implementation Plan for each one. This plan generally includes several key components:

  1. The full path to the file: The engineer pinpoints the exact location of the file that requires modification, ensuring clarity and ease of access for the entire team.
  1. Specific changes to be made: The plan outlines the exact changes needed in the code, providing clear instructions to avoid any ambiguity. 

For example: add ’user_id’ parameter to required params of ’api/shares_controller.rb’

  1. The testing plan: This section may detail which files should be covered by tests and what data sets need to be verified, ensuring that nothing is overlooked.

To make reading and navigation easier, we structure the checklist by headings:

A few key points to keep in mind:

How detailed should the implementation plan be?

Remember that our primary objective is to structure and streamline the development process as much as possible.

In an ideal scenario, the implementation plan should detail every change required to implement the functionality. These instructions need to be clear and comprehensive enough for any engineer –regardless of their familiarity with the project – to understand and execute. The goal is for even new team members to be able to step in and start working on the user story without needing additional guidance or instructions.

For more complex tasks, the completion of the planning stage is marked by the absence of any remaining questions about the task’s requirements or uncertainties in its implementation. Each stage of the plan should clearly define:

Preventing blockers and misunderstandings

If any aspect of the plan remains unclear, our next step is to dive into the code itself. This allows us to understand more deeply how the current code works and what specific changes are needed. Without this level of detail in the plan, developers would have to perform similar exploratory work during the development phase, which could lead to delays or inconsistencies.

In the first checklist example, tasks are organized by areas like Backend, Frontend, and FeatureSpec, with specific steps and modifications outlined for each. This detailed breakdown ensures that every developer has clear instructions, reducing ambiguity and keeping the project on track.

The second checklist focuses on more complex backend logic, such as data migrations. By specifying these steps in advance, the plan addresses potential challenges proactively, minimising unexpected issues and ensuring a smooth development process.

When the implementation details are uncertain—such as which framework to adopt or which specific component of the application needs to be modified—the plan may need to include an initial phase of experimentation. In these cases, we often set a time limit for this experimental phase, such as one day. This allows the engineer to explore different approaches, clarify uncertainties, and gather the necessary information without extending the project timeline unnecessarily.

How to structure the planning process for projects

Before starting an iteration, we conduct an implementation planning meeting (IPM), where we plan and estimate tasks for the next two weeks.

It’s most effective to create the implementation plan before estimating tasks for the sprint. On Monday, we begin with a list of tasks for the new sprint. Throughout the day, we study, analyze, and discuss them with the client, ensuring that each planned task will have a real impact.

Why does this approach work?

Specifics of planning for different types of tasks

Small and obvious tasks

unnecessary, especially when everything appears clear. However, even for seemingly simple tasks, having a checklist in place offers several key advantages:

In large projects, experience often reveals that tasks initially deemed simple can quickly become more complicated. If the task is indeed as straightforward as it appears, drafting an implementation plan will be quick and painless. A brief code review and outline ensure everything is on track and eliminate any surprises.

Tasks with some level of uncertainty

When parts of a task are unclear, it’s smart to run a few quick experiments before diving into full implementation planning.

For instance, you might:

  1. Write some test code to explore a potential solution.
  2. Open the web server or database console to inspect key queries.

This approach helps uncover any roadblocks and clarifies your next steps. Since you’ll likely be doing similar work during the actual implementation, this time spent experimenting is far from wasted—it sets you up for a smoother process later.

Completely unclear tasks

Whether it’s figuring out which part of the application to modify or deciding which framework to use, sometimes tasks can feel daunting because you don’t know where to start.

The solution? Experiment. Dive into the code, see how things function, and start brainstorming possible approaches. For the parts that make sense, create checklists. This process often brings much-needed clarity.

And if you still haven’t made headway after a couple of hours of planning, it’s a good idea to talk to your manager and propose taking an extra day or two for a spike (a more in-depth exploration of the task).

In these cases, the implementation plan is key in highlighting the need for further investigation and understanding the areas of uncertainty. Planning ahead like this helps manage risks and ultimately saves time when development begins.

Using implementation plans across different teams

At Railsware, we’ve had the privilege of working with teams from all corners of the globe, each bringing their own unique approach to tackling tasks. Early on, we noticed something interesting: no matter the team, the way they interacted with the implementation plan could either make or break a project.

In one instance, a small team started with a solid plan but made a few seemingly minor deviations along the way. What started as tiny tweaks quickly snowballed into delays and confusion, leaving everyone scrambling to get back on track.

On the flip side, we’ve seen teams that follow the plan closely, adapting only when absolutely necessary, and delivering tasks smoothly and efficiently.

These experiences taught us that the plan is more than just a checklist—it’s a mini roadmap. And when teams respect that roadmap while staying flexible enough to adjust when needed, execution becomes far more streamlined.

It’s not just about sticking to the plan, but knowing when and how to pivot, keeping the project moving forward without losing sight of the bigger picture.

Common obstacles to watch out for

Lack of consistency among new engineers

When a new team member joins a project, they often bring a high level of enthusiasm for creating detailed plans. This approach helps them quickly integrate into the process and track progress effectively. However, as they become more familiar with the project’s intricacies, their adherence to detailed planning may wane.

Over time, the checklists tend to become less detailed, and eventually, the engineer may stop creating them altogether. With increased confidence, engineers might start estimating tasks “on the fly.” This can lead to issues where a task initially estimated at two points remains incomplete weeks later.

Teams avoiding detailed task planning

Some teams prefer to minimize planning before implementation, either by not planning in enough detail or by avoiding it altogether. This approach can lead to several issues:

Pros and Cons of implementation plans

I’ve outlined the benefits of creating Implementation Plans and the difficulties faced without proper planning. Let’s summarize:

Pros:

A checklist-based implementation plan offers a clear structure for task execution and progress tracking. A detailed action plan saves time and optimizes the development process by:

Cons:

Wrapping up

Planning might not be the most glamorous part of development, but it’s the backbone of smooth execution. Start small, stay flexible, and keep improving. You’ll find that even a simple checklist can be the difference between a quick task and a frustrating delay.

But this is just a glimpse into how we work. Want to see how effective planning can transform your projects? Dive deeper into our products and services—where efficiency meets innovation. 

And if you’re looking for your next career move, we’ve got exciting opportunities waiting. Ready to plan for something bigger? Check out our vacancies and join the team!

Exit mobile version