Aspiration and Advisory

View Original

On Project Planning

Some developers spend a lot of time to plan the project and all related activities. On the contrary, other developers do only rough initial planning and start development from there. Who is right? Let us check both scenarios and see what is essential for project planning.

Detailed Planning vs. Rough Planning

Both these approaches have their pros and cons.

Detailed planning assumes that the team will investigate most of the technical aspects before the project start. It is very useful for complicated projects or projects with an undefined scope of work. However, it requires a lot of time and mostly useless for small changes and bug fixes. This type of planning is usually appropriate for medium and big size projects with stable workflows.

Rough planning, on the contrary, is the fastest approach possible to start work on the project. Usually, it includes only superficial decomposition and very rough estimation. The apparent cons of this type of planning are the lack of a general picture and understanding of the project. On the other hand, it is easy and quick, so a team may do several iterations if needed. This planning is suitable for relatively typical and straightforward projects when a team already has experience doing similar projects.

Which One to Choose?

It depends on your current project, workflow, and team.

Detailed planning is mostly used on medium and high complexity projects to understand requirements and build an appropriate solution. This type of planning is commonly used together with stable and efficient project workflows to keep everything on track. Finally, detailed planning is crucial if the team has zero or little experience in the required area (a new type of application, a new framework, etc.), then team members need time to understand how to build an application properly.

Rough planning is mostly the opposite of detailed planning. It is suitable for small projects with unstable workflows. It may be used by experienced teams who already did similar projects, and they have a general understanding of requirements and how to implement them.

It is also a good idea to check how deep you need to plan the projects. For example, you may use detailed planning but do only superficial planning. Later you can discuss it with the customer and do proper planning only for the components he needs. Just keep extension points to be able to add other components in the future.

There are simple recommendations about the planning on software development projects. You may use them to identify which type of planning is suitable for your project, so you can use all the benefits of planning to build a good application.