I see a lot of software in my journey and so many miss the mark on how it should work and what it should accomplish. Remember we started this project with a need or opportunity that we wanted to solve, if the solution does not solve the issue, we have failed. If the paper solution is close to solving the need or opportunity then adjust accordingly, if not, start all over. While it might seem drastic starting all over, that is way better than building the final software solution and finding out that it is useless. Take your time on this stage and make sure that the solution is right for your situation. Remember that it is way way cheaper and faster to modify a paper prototype then to adjust the final software solution.
Who built models as a kid? It is not the real thing but a representation of the real thing. You could get the look and feel of the real thing and it allowed you to play with it as if it were real. It is the same thing with software. I like to build a paper prototype of the software so that the client can try it out and see if it is reasonable. Since it is not the “real” thing you can’t be sure that it will work when built but at least it puts you in the right ball park. It takes a lot of work to build software but it is quick and dirty to build a paper prototype. The feedback you get from the user over the paper prototype will save a ton of development time and will allow you to create the finial software solution much faster and with the right functionality built into it.
Alright, so you have determined that you have a need or opportunity and that it is worth solving, the next step is how. Software can play a key role in the solution, but not always. Many times it is more efficient or practical to do it the old fashion way, the manual way. How do you know if you should automate or go manual, does it take more work and money to do it through automation (software) than to do it manually, then don’t automate. However, sometimes you have to automate as that is what is expected, for example customers expect to be able to order and buy on line on your website, and so even if it made more sense to have customers call in the order, the norm today is being able to do it on line.
Where in my business could my operation run smoother or more efficient? What opportunities do I have out in the marketplace that I want to take advantage of? The first step is clearly defining that problem or opportunity. Now if I solve this problem how much time or money will I save, will I have a better running business, or will I have better business intelligence? If it is an opportunity, how much do I stand to gain by solving the opportunity; this could be money, growth, or strategic positioning. Once you fully define the problem or opportunity you are in a position to brainstorm the solutions to the situation.
There are a lot of steps in the process of creating effective software. Below are the main steps involved.
1. Identify need or opportunity
2. Determine how/if technology can solve that need or opportunity
3. Create paper prototype of solution
4. Test paper solution to see if it solves need or opportunity
5. Adjust paper prototype until finial solution is discovered
6. Create rough software from paper prototype
7. Test rough software with real world data
8. Adjust rough software until finial solution is developed
9. Add more functionality to software
10. Test software with real world data and adjust accordingly
11. Once finial solution is developed test again with real world data to ensure software works as anticipated
12. Set software up on client’s system
13. Train client on how to use the software but because of the testing during the development process the client will have a very good understanding on how to use the software
From above you can see there is a lot of testing and tweaking to get the software solution right and that is the only way you can ensure that the solution will meet the needs of the client