This week on the blog, coLab member and software tester Shelley LaHay explains how software startups can avoid common development headaches by clearly laying out their software idea right from the get-go.
Have you dreamed of taking your idea and nurturing it into the next hot app, business solution, or software platform? Your idea might to turn into something monumental but, on the other hand, the process can also be destructive and have the potential to drain you of creativity, momentum, and cash. Communicating your idea effectively can make your idea grow into something amazing; without which your amazing app may end up looking like a plastic participation trophy.
That’s why it’s essential to have a defined idea development process in place before you reach out to a developer. With a clear set of specifications, you can ensure the development process happens quickly and smoothly. So how do you write good specifications? Here’s what you need to know.
The Problem with Saying ”Let’s Build an App!”
Starting a project with minimal or unclear specifications sounds fast and it will, certainly, get your heart pumping as you anticipate what direction the project will take. But it will probably take more from you than the project is worth. Rework is a real risk in software development. Rework is exactly what it sounds like: trashing code and starting over. This happens when a developer doesn’t understand what you want and builds the wrong thing.
Elaborate on Your Idea with Gherkin
One of the best ways to explain your app idea to a developer is to write your specifications in Gherkin.
Gherkin is a business-readable language that describes a software’s behaviour without going into unnecessary details. It’s used in development, testing, and support. The key strength of Gherkin is that it simplifies development process documents to make them more readable and usable.
Why does that matter? Because quite simply, what may be considered to be a “simple” idea for an app is often more complex than initially suspected. The more Gherkin I write for each app, the more I understand exactly what needs to go into these apps for them to satisfy business needs. As a non-developer and product owner, it gives me a better understanding of the products that I want to develop. And with a better understanding of the product comes easier marketing, fewer bugs, and a smoother launch.
The Gherkin Structure: Starting Ideation with Use Cases in Mind
Good Gherkin scripts follow a very specific structure:
Feature: Title of the feature (in Gherkin, the files are saved as feature files that describe a feature of the software)
As a user of this app or software
I want to be able to do something in this feature
So that a business need is met
Scenario: A sub-title describing this example
Given describes the current state of the app such as what page the user is on
When the user performs some action on the app such as clicking on a button
b>Then the app does something as a result of the user’s action
The following Gherkin script tells a story about Jeff, a CEO of a small company, who wants to let his employees know that there will be a planning meeting in August in the Synergy Boardroom.
Feature: Schedule a meeting and send notifications
As a CEO
I want to be able to schedule a meeting
So that my employees will get a notification of the meeting
Scenario: Schedule a meeting
Given Jeff is on the Schedule Event page
When he enters “Planning meeting”, “Aug 14, 2017 9:00am” and “Synergy Boardroom”
And he clicks send notification
Then notifications are sent to his employees with the message: “Planning meeting: Aug 14, 2017 9:00am at Synergy Boardroom”
For a software language, Gherkin is readable and clearly explains features. But if you plan on writing Gherkin scripts, I highly recommend reading Writing Great Specifications: Using Specification by Example and Gherkin by Kamil Nicieja published by Manning Publications. The book goes into detail on the benefits of using Gherkin, and teaches you how to write and organize your Gherkin so that other people enjoy reading it. This is of particular importance when you need a developer, employee, or investor to understand your ideas!
Controlling the Concept with Gherkin
With the initial group of Gherkin files written, controlling an earth-shaking new idea begins as I hand off the Gherkin feature files to my developer. The Gherkin will eventually be used to create automated acceptance tests that drive the development of the apps in the direction that I want them to go. I know exactly what I need from the apps which is clearly and concisely communicated to my developer.
Traditional specifications lead to wasted effort and ideas that don’t reach their full potential. Gherkin makes it easy to understand apps in a logical progression from idea to a meaningfully communicated plan. Gherkin is an effective way of dealing with scope creep, communicating expectations to developers, and speeding up the development process. With Gherkin, it’s possible to direct exciting ideas toward sustainable growth.