How to Get the Custom Software You Really Want
One of the biggest risks of custom software development is getting software that is wildly different from what you want. To avoid falling into this pit, you can use different ways to communicate what you need:
Explain user needs that an app can fulfill
State the problem with a user story
Describe what you want a software product to accomplish and how to accomplish it
Use a combination of digital and analog tools
To visualize better, let's follow the narrative of fictional Dave. Although fictional Dave might not be the same Dave you know, this post might help you if you:
- Want to maximize the success of your first custom software development project
- Have previously asked a developer to build an app, feature, or website that did not turn out the way you want it to
- Want to prevent budget overrun by being able to clearly communicate what you need from a software vendor.
This is where the problem lies
Dave is a flower shop owner who has been taking orders through email. This is how the order process goes:
- Dave checks his email for orders
- When he gets an order through email, he copies the customer's name and address to a spreadsheet; along with the order, delivery address, and the requested delivery date.
- Sometimes, a customer forgets to add a delivery date or address. So Dave has to write them to get the information he needs.
What Dave needs
As with other business owner, Dave needs software to improve his business process and services.
Dave's hypothesis is that he can save time and energy if potential customers can complete orders on their own. He needs a mobile application where customers can fill in and pay for their orders.
He also wants a mobile app for himself and his employees. This way, he can:
- get notified when an order comes in;
- and update the status of orders: from the time the orders are received to the time a customer acknowledges its receipt.
Different ways of communicating the problem
As a business owner like Dave, the key to a successful software development is being able to express the things that you need out of a software solution.
Explain user needs
Developers think in terms of solving problems for the user. That's why explaining the solution from a user perspective is the best way to communicate your meaning across.
Consider the following format, “As a [type of user], I want [some goal] so that [some reason]”. The format will help the developers understand what elements are to be included in the app, even if you’re unsure of any particular feature at the moment.
Describe what you want to achieve from the point-of-view of a user. For example, you can list down the things that a customer can do with a web or mobile app:
Browse products
Place an order
Update or modify an order
Track order status
Use competitors products and websites
List your competitors or the top brands in your industry.
What is it about their web apps that you like? Is it the neat layout that lets you find buttons and menu items where you expect to find them? Is it because you can place an order in the fewest steps possible?
When explaining the things you like or don't like, it helps to add screenshots. Even better, you explain your ideas using a screen recording of the web app that you want developers to draw inspiration from.
State the problem with user stories
Good developers excel at creative problem solving. That's why they love hearing the problem you are trying to work out. So instead of writing them "do this", write "As a _, I want to be able to _, so that _."
In software development, this is called a user story. A user story states who the user is, what the user wants to achieve, and for what reason.
In the case of Dave, he can state his problem like this:
"As a flower shop owner, I want to be able to process and update orders on my phone so that I won't have to use spreadsheets anymore."
The added benefit to stating a problem instead of presenting a solution is that it gives developers an opportunity to propose a better solution. Otherwise, some developers or software vendors will just force a solution because it is what you asked for.
Describe the steps that you want app users to do to accomplish a goal
The steps that a user takes to accomplish a goal is called a use case. In the case of Dave's flower shop, he can explain that the following are the steps he wants a user to take to be able to order flowers:
Step 1. Open the app
Step 2. Log in with their Dave's flower shop Account, Facebook account, or Google account.
Step 3. The user is directed to the gallery where they can see photos of different flower arrangements with the description and prices.
Step 4. Click the shopping cart button to add an item to the shopping cart.
Step 5. When a user is done selecting items, they can tap "Proceed to checkout" where they can process the payment.
This is a simplified example of a use case. Your software partner will help you write more detailed use cases. Your software partner will also present use cases that will help app users in case there are problems or errors in the system.
Use a combination of digital and analog tools
One of the biggest risks of outsourcing software development is ending up with software that is completely different from what you want. By using a combination of pictures, words, and various tools, you can minimize risks and come to a mutual understanding with software developers.
Flow chart
A flow chart is a useful tool to illustrate how a user can arrive from a problem to a solution. Each box in a flow chart should represent a specific and detailed action that will lead to the next box (the next step in the process).
Mockup and wireframe
A mockup shows in details how an app will look like. On the other hand, a wireframe shows how the content and features of an app will be designed.
A mockup answers the following questions:
How will this app look like?
What colors and typefaces will be used?
What pictures, videos, banners, or other graphic elements should be on a screen?*
A wireframe answers the following questions:
How will a user accomplish a task?
How will the navigation look like?
What features and functionalities should a screen contain?
What will happen if a user taps a button?
A wireframe helps a design team see how an app is intended to complete a task. It can be anything from a napkin drawing to a digital design that has clickable elements.
You can use mockups and wireframes to bring you and your software development partners closer to a mutual understanding.
Whiteboard drawings and index cards
Anything that can be used as a tool to communicate your ideas is useful. Whiteboards, index cards, flip charts are tools that can be used to put together words and images that express your ideas. Successful software development comes down to communicating ideas.
Consult a business analyst
Larger and more complex projects require business analysis. Business analysis helps ensure that software meets business needs, as well as the technical and legal requirements.
A business analyst goes from the big picture into the tiny details so that software makes the impact that it is supposed to make.
Where do you start?
Now that you know how to communicate software needs, a good place to start in starting your own software project is to talk to an account manager.
Schedule a virtual coffee session with an Account Manager:
Fill out the form below and we'll get back to you within a day.