Case Study: Requirements In An Agency
At UsableHQ the team behind the software has a total of more than 20 years web development experience in agency settings – we’ve seen the successes and encountered the pain points working on projects from the smallest brochure websites to the biggest e-commerce applications. That experience is a large part of what drives us to make Requirements a great tool for agencies that produce websites and web applications.
A requirement is something that the project has to do in order to successfully meet a project goal. In very large corporations the “what” and “why” of a project is managed as a set of requirements in a tool such as IBM’s “Rational”. If your project is huge with tens of thousands of requirements, you need an enterprise level requirements management application.
Managing a project in an agency can be a difficult process as parties pull in different directions, especially in today’s industry, where collaboration between stakeholders is necessary for anything but the smallest contracts. The job of the project manager is to balance the will of the different companies involved with the needs of the project. Consequently, without a clear oversight of what the project needs are, it’s much more difficult to keep things on track.
Defining an initial set of requirements for a project is essentially the same process as creating a specification. Each feature of the project is broken down in to a set of smaller parts. In a traditional specification document the focus is very much on the technical implementation details though – what the feature should do from a technical standpoint. Using requirements management there is also a focus on business and non-functional requirements*.
The advantage of a requirements driven approach is that each of the parties involved have an input, lending expertise wherever they think the problems will be, and helping to design a set of project goals that become an exciting, deliverable body of work. At the same time, the client’s needs are addressed properly and are much more likely to get an outcome that actually does what they need. In addition, everyone gets a set of requirements that show precisely what work will be delivered.
Once your project begins using a set of requirements can transform the project management process.
A project’s requirements are a living set of aims that define what needs to be built in order to achieve the outcomes that have been defined as a successful project. At any point in time the requirements define the scope of the project. As more information is discovered during the project’s development phase, the goals for the project are likely to change. New features are be added to react to the demands of users. Redundant features will be removed. Other features are refined. Managing changes to the scope of the project is important. It’s easy for tweaks to build up, for the project to suffer from “scope creep” (aka “feature creep”), without the client ever agreeing to the necessary changes to the project budget or the specified project deadline to cover the cost of the modified project specification. Consequently it’s impossible for the project to be a success – a project that is delivered late or over budget is considered to have failed even if it’s not cancelled.
Mitigating scope creep can be achieved by keeping track of changes and demonstrating where things have been altered and by how much. A project snapshot enables a project manager to capture what the scope of the project looks like at a set point, and then highlight changes to the requirements between that point and the current project view. By snapshotting when requirements are agreed, at the beginning of the project, at milestones and at points of particularly significant change, a view of how the project has changed throughout it’s life can be constructed. This view makes it clear why things have changed, how often changes have been requested, and makes the case for negotiating additional budget or time for that “one little tweak” a client has requested.
Beyond managing project change, a requirement set is a good indication of where the project stands. A report from a task management application only tells you what has been done to date. In the majority of “To Do” based task applications there are no good indicators of how important a task is to a project. The fact that a set of tasks have been completed doesn’t give the client or the project manager an idea whether or not a feature is complete unless you either keep a separate overview list for features with sign off as they’re completed, or use very high level tasks in the lists for individuals working on the project. The downside of high level feature lists is that you lose sight of how far along a feature is. By driving tasks from a set of requirements it’s immediately obvious how far along a feature is in production.
Usable Requirements gives project managers a set of features that make defining requirements before a project, managing change during a project, and driving tasks from requirements very simple.
Requirements aids a project proposal by making it easy to produce a requirements document before the project starts. By defining the requirements to build the client specification, or tendering document if the contract hasn’t been won yet, every stakeholder in the project can have an input to what the project will be. Developers, designers, analysts and project managers can collaborate to produce a detailed plan very easily. Comments can be added to requirements to question assumptions or suggest improvements. Costs can be attached to requirements to estimate the total required time to complete everything.
Requirements also includes a feature to create project snapshots and highlight any changes between either two snapshots or a snapshot and the current state of the project. Having to report on the number of changes a client has requested by trawling through dozens of emails and arguing whether or not a change was really in the original specification is a thing of the past.
Finally, Requirements includes a basic task manager to keep track of user’s To Do lists, but it also integrates with some of the leading task software available, including Basecamp and Asana. We’re adding more integrations to other leading project tools too, so teams don’t have to change the way they work in order to benefit from the useful features Requirements adds to a project workflow.
Sign up to the Usable Requirements beta today.
* Non-functional requirements are the things that the feature needs to have that aren’t actually part of the implementation. For example, accessibility compliance is very important for a web project but it isn’t something you actively do.