Functional Specifications provide detailed steps and procedures that software developments adhere to, from the beginning to the end of a project. Traditional project management relies on detailed knowledge before development can start, so it can result in planning taking a long time.
Software moves fast and there are often knowledge/perception gaps of what can be achieved that only come up after users start to engage with the product, so if the planning’s done beforehand … there’s both external and internal influences that can mean the projects out-dated by the time it’s done.
Agile does things differently – and it works well with software – task function needs (or “what you want the software to do”) are communicated by you to the project team in a feedback loop that allows refinement of specifications with real live software in play.
As well as enabling closer alignment to need, the Agile methodology is more pliable if new scope is identified as it can be more readily incorporated holistically from the ground up.
They don’t disappear … these get drafted as a combination of client-side specifications and project-side definitions of the technical solution.
Of course, Agile still needs a plan, and a plan needs a Project Manager, so having a good one is key – likewise, it’s not always practical to have everyone together all the time, so a good Business Analyst to understand your requirements and develop project guidance can also help.