loading...
about
At exespec, we provide consultancy services and software solutions to deliver high quality executable software specifications.
Our wealth of experience and cross-domain knowledge enables us to quickly understand exactly how your business works and design the right solution which fits your business needs.
Working collaboratively with project stakeholders, we are able to transform loosely defined business requirements into clear and detailed specifications. These specifications are both human-readable and also machine-readable, meaning they can double up as executable acceptance tests.
The requirement specification is arguably the most important deliverable of any software project. If you get it right, the rest of the software development lifecycle should be relatively straightforward and risk free. If you get it wrong, all subsequent phases will likely incur additional costs, resulting in a project which is way over time and budget.
Software specification is what we do. We are totally committed to delivering clean, precise and elegant specifications that fulfil your business needs.
Let us take the stress out of your software development process. By partnering with exespec, you can be confident that your development projects will be delivered on-time, to budget and with the minimum of fuss.
project inception
Before initiating the project, business stakeholders conduct an opportunity assessment to determine whether the project should go ahead.
Answering the following questions will help them come to their decision:
  • What problem are we trying to solve?
  • Do we need to solve the problem now? Or is it better to wait?
  • Are there solutions already out there?
  • Who is the target benefactor?
  • What is the estimated cost?
  • What is the business benefit we aim to deliver?
  • How do we measure success?
Once the project is formally approved, an agile team is assembled. The team must contain the right mix of skills to ensure the successful delivery of the project. The skillset should include a product owner, business stakeholders, developers, testers and UX designers.
The product owner is responsible for specifying high level project requirements. This can be facilitated through workshops with other business stakeholders.
The target system is defined using high fidelity wireframes rather than using conventional documents. The requirements should not be detailed. The actual detail will be driven out through scenario definitions in the next phase.
scenario definition
All team members assemble to collaboratively agree on business needs and nail down the specifics of the software solution.
It is important to harness the knowledge of the whole team, not just business stakeholders and developers, but also testers and UI designers. All participants should feel engaged by the project and have a sense of collective ownership.
Team members start by wireframing the happy path of the proposed solution. The visual representation facilitates domain comprehension, especially for those who are less familiar with the business domain. Ideas are illustrated as example flows through the system. These example flows form scenarios, which are in effect the acceptance criteria for the target system.
When building out scenarios it is important to use a common shared language which is easy for everyone to understand. For this reason, it is better to avoid obscure domain expertise and technical jargon. This helps reduce the chance of misunderstanding when the system is actually developed, particularly when development is carried out by a 3rd party vendor.
Once the happy path is mapped out, the wireframes are discarded and replaced by a working prototype. This allows team members to see the end result early on and make any crucial business decisions before they become too expensive in later phases.
The live prototype is then updated to include unexpected paths through the system. This is where tester expertise is of particular value. Through boundary value analysis and state transition analysis, testers are able to identify edge case scenarios. These form a critical part of the specification and are something that business stakeholders can often overlook.
After multiple iterations and revisions, team members will finally agree on the set of scenarios that defines the software solution. It is these scenarios which will provide both the requirement specification and the acceptance criteria which will actually be developed. As long as all scenarios are implemented correctly, the software should meet the business requirements and function as specified.
scenario implementation
The scenarios which make up your requirement specification also double up as executable acceptance tests. This allows your development team to employ acceptance test driven development to implement the specified system.
Functionality is implemented on a scenario by scenario basis. When the light turns green, you know that the acceptance test has passed. When the light turns red, you know that the acceptance test has failed.
As more and more scenarios get implemented, the application gradually begins to come to life. Progress is monitored via acceptance test reports which detail the status of each scenario. This allows team members to be kept in the loop every step of the way.
Throughout the development phase, the code is continuously validated against all scenarios in the requirement specification. This ensures that any newly implemented scenarios do not break scenarios which have already been implemented. In this way, the scenarios can be viewed as a regression test suite, ensuring that new changes do not break the existing code base.
During the development phase, if the business request changes, it is important that these changes are reflected in the requirement specification and associated scenarios. Remember that your requirement specification is living documentation and must always be kept in-sync with your code base. You can view the requirement specification as your validation safety net, insuring that the system meets the business requirements as specified.
go live
Once all acceptance tests have passed and all scenarios have been implemented your project is classified as code complete.
At this point, your application is deployed to a test environment where a test team will conduct exploratory tests to try and push the application beyond the limits of the acceptance tests. Business team members will also conduct user acceptance tests.
When all parties are satisfied, your application is deployed to a pre-prod environment where it will undergo further testing including performance and load tests.
Again, when all parties are satisfied, the application will get its final sign-off. This is in effect the go ahead to deploy the application to the live environment.
If testing uncovers any defects or requirement changes, the requirement specification must be updated to reflect these changes. The requirement specification is living documentation and must always be kept in-sync with the code base.
advantages
  • Quality

    At exespec quality is at the heart of everything we do. We encourage a culture of quality right from the start and through each and every phase in the delivery lifecycle.

    By implementing an effective quality assurance strategy, you can be confident that the final software product is delivered on time and to budget and will meet the business needs it was designed to address.

  • Wireframing and prototyping

    Requirements are fleshed out visually using wireframes mock-ups. The wireframes provide an excellent tool to facilitate communication between all team members. Ideas can be expressed quickly and clearly in such a way that everyone can understand.

    The wireframes provide the starting point for software specification. As requirements get fleshed out, the wireframes are eventually discarded and replaced by a working prototype that truly brings the requirements to life.

  • Multi-platform

    Our exespec collaboration platform lets you take advantage of the extra reach that mobile computing can bring.

    You can build specifications that target all types of devices. You can define requirements for web, desktop, tablet and mobile and all from the same integrated collaboration platform.

  • Legacy system specification

    Not every development project is a green field project. Sometimes you will need to update legacy systems, where a machine readable specification is simply not available.

    Although you may be able to get your hands on a traditional requirement document, there is no guarantee that it has been kept up-to-date, and hence cannot be relied upon.

    In such circumstances, we can use reverse engineering tooling to generate an executable specification from your existing code base. This will give you the confidence to make changes in the knowledge that existing functionality will not be regressed.

  • Continuous feedback

    Our exespec collaboration platform allows team members to track specification changes and monitor development progress as each scenario gets implemented. Post-it style soft-proofing tools allow team members to add comments, answer questions and request changes. Any changes need to be approved by the product owner before they can be incorporated into the specification and working prototype.

offshore outsourcing
Over the last decade or so, offshore outsourcing has become increasing popular, initially in countries like India and China, and more recently in eastern Europe.
With an abundant supply of skilled IT professionals, demanding cheaper daily rates, the total development costs can be reduced significantly.
Whilst there have been many successful outsourced projects, there have also been many failures. The main contributing factor to project failure is almost always the inherent communication difficulties when dealing with offshore teams.
Language and cultural differences greatly magnify the opportunity for miscommunication. In the best case, this can result in project delay and increased spend, and in the worst case, this can result in software which is not fit for purpose and needs to be scrapped altogether.
When working with offshore teams, simple, clear and unambiguous requirement specification becomes paramount to project success. By taking advantage of our skill and expertise in delivering high quality software specifications, you can dramatically reduce the risk of project failure. Our exespec collaboration platform allows team members to define requirements visually through working prototypes. This greatly reduces the chance of miscommunication, and gives everyone the confidence that the resulting software will fit the business needs.
contact
Do you have a question or want further information?
Please fill in the form below and we will get back to you as soon as possible.

Unable to send your email!

Please enter valid email address!

Please fill out all the fields in order to send us a message.

Your email has been successfully sent to exespec!