Many small to midrange companies struggle with out-of-the-box software solutions that fit our business models about as well as one size fits all in the garment industry. Even industry-specific software needs to be tweaked. Custom software applications are expensive, but when you realize you’re spending more time making the software play nice with your processes than actually getting your work done, it’s time to consider hiring a software consultant to write software that specifically addresses your needs.
Tembua is fortunate to have a CTO who is particularly gifted at custom applications. Working with him on our suite of 7 custom apps has taught me shortcuts that help us communicate more efficiently.
1. Know your desired outcomes
The software consultant should require your specifications in writing as a starting point. Be prepared to spend some time thinking through the big picture before you give those specifications to him or her.
Take the time to determine exactly what you want to see on the screen and how you want your various pieces of software to interact. Your specifications don’t need to be a finely crafted piece of literature. Sometimes doodled diagrams communicate better than words.
2. Ask yourself questions
Exactly what do you want a particular application to do? Move data from one program to another? Assemble, reformat and display information while performing calculations?
Dream big. The consultant you hire will definitely tell you if something is out of range.
What order should items appear in the user interface?
Are you particular about fonts/colors/spacing?
Do you want check boxes or radio buttons? What seems like a minor cosmetic tweak may take some major rewriting if you mention it midway through the process.
Will this particular application be asked to expand in the future? Should extra fields be included to accommodate this?
Do you foresee a time when the user interface will be translated? Tell the consultant so he/she can consider additional fonts and allow extra space and arrange fields to accommodate text expansion. (Contact Tembua for tips on writing software that can be localized easily.)
Would error messages be helpful, or do you just want the app to work?
How involved will you and your staff be if something goes wrong? Do you want the consultant to spend enough time with you so you can solve small problems on your own? How detailed do you want the documentation to be?
3. Know your own software
Prepare a list of existing software that must interact with the custom applications. How do you use each package? What information do you need from the existing programs that will be used in the custom app? If the software is industry-specific, be prepared to clearly explain to the consultant what it does, how you use it, and how you’d like it to interact.
4. Plan for the future
Look at your long-term strategic plan and try to visualize what the custom applications might need to do in the future. Not everything can be anticipated, but good executives should be able to make an educated guess about the direction of their company.
5. Use the word “flexible” in your specifications
Throughout the process, emphasize that if it’s possible, you’d like the software to be flexible. Perhaps interchangeable or replaceable modules can be written. Does the consultant have any suggestions?
6. Listen to the consultant
And be prepared not to understand everything the first time. Ask questions. Don’t back down until you clearly understand.
7. Be prepared for the consultant not to understand everything the first time
After all, he or she does not work in your industry full time and may not immediately understand how your office functions. Feel free to ask the consultant to repeat your expectations orally even after the written specs are complete. Oral language communicates differently than written language, and this is the time to find those differences.
8. Expect hitches in the process
You will have undoubtedly forgotten to tell the consultant something that is very important to the design of the software. Apologize and move on. Don’t accept something that has been written around a misunderstanding. Be prepared to back up and take another run at it.
9. Know your differences
Be aware that your consultant is more focused on the underbelly of the software, while you’re more interested in the user interface. There is a middle ground, but it takes clear communication to find it!
10. There will be bugs
Repeat after me: Custom software will not work perfectly the first time. There will be bugs. Period. Know in advance what level of testing is the consultant’s responsibility and what post-installation support will cost. Everything should run perfectly several times before the consultant turns the software over to you. Don’t sign off on any problematic piece!
11. Nail down what happens next
Ask if training for your staff is included or if that suddenly becomes your responsibility. Either way, documentation should be included with the software.
It’s easier to download an off-the-shelf piece of software, and in many cases, that’s sufficient. But for those tasks where industry- and office-specific software will save staff hours, protect client information, move orders more smoothly, or simplify project management, both the time and the expense involved in custom software are certainly justified.