Separate Requirements from Implementation

What is one valuable way you break down a complex technical project using PM software that has benefited your team?

Decomposing technical projects is about separating the project into logical components. First, I begin with a requirements gather phase where I speak to all relevant stakeholders to find out WHAT abilities the project / system / feature will need. I usually use a simple notepad app to jot things down and I’m very careful to not ask them how something should work, and I stop them in their tracks if they start to talk about implementation details at this phase.

Next, I put together a functional spec, which is a more formal description of WHAT the project or feature is, written in terms that engineers can understand.

From the functional spec, I can then start to work with engineers to design the architecture specification, which is a written description of HOW we are planning to build the feature or project (this is a more engineering centric document and often gets rather low level, whereas the Functional spec is more high-level).

Once we have the Architecture spec, the project is typically in a place where we can see what logical components will need to be created or modified and are able to split up the work and put it in our sprints.