Essential steps when hiring a software development partner

Posted By BandyWorks
Image of road sign showing custom software development is straight ahead

Custom software makes the work of your team faster and better, but it is an investment in productivity that has some risk. In order to maximize the results, maintain the costs and minimize the risks picking the right developer is important. There are a few important ways for those just starting to work with a software developer to have a successful partnership.

Validate the developer’s skills – Make sure your developer has the proper skills. Almost everyone will check references, but building a prototype shows a developer’s commitment, responsiveness and a sample of work. It may make sense to pay for a small job, but a nice job may warrant a sample of work that can be bundled into the price of the final project.

Demonstrate understanding with non-technical documentation. There will necessarily be plenty of technical documentation. Much of the understanding, however, is about the business process. Ask for documentation that shows understanding of the business process. Two simple items are:

1. Use-case diagram – This diagram shows the users and what functions they will use. It is an overview of the scope, roles and responsibilities for the finished system.

Image of use case diagram recommended when choosing a software developer
When choosing a software developer ask for a Use Case diagram to explain users, roles and responsbilities

2. Business rules to define how the system works – Simple statements that allow users to explain to developers how the business operates. For example:
– The smallest time period for data summary is hourly. 
– Sales data will be store by PLU and promotion code.
– Store managers may not see payroll information for staff at any store but their own.

Document the system specifications. Once the system is designed and approved, ensuring the developers, testers and implementation team have sufficient rules requires baseline documentation. Such documentation may include:
1. Database diagram or definitions.
2. Process flows – any complex process should be mapped to explain logic.
3. Screens and reports should have descriptions with any special rules defined. Important and complex screens/ reports should have a prototype or mockup.
4. Batch jobs must be identified.

Over-communicate initially to build trust and ensure clarity. Initially, it is helpful to have more frequent communication. For a small initial project of several weeks, a weekly check-in helps to keep both sides on track. It gives developers and testers a scheduled time to clarify the inevitable details that arise as the project moves forward. More importantly, it allows the trust to build between the users and the developers as they know what is happening and how the team is progressing. Most users understand their business may not be completely understood in just a few weeks so questions and clarifications show progress and careful work.

Testing to ensure the system is ready to be used. One of the most critical but often overlooked parts of development by users is testing. Help your developer from the very beginning. Define success by describing the test scenarios that must pass for the system to succeed.

Start the testing process before construction begins by reviewing and creating test cases. The developers should be able to create their own detailed testing scripts for basic functionality. Have your users provide samples of normal usage along with some of the more prominent complications that occur help everyone to know what is required for a successful project. Getting sufficient data to use for testing is very helpful.

Once construction is complete and you are ready to go-live, experienced users should complete a full cycle of tests. For basic systems that means adding new records for each lookup table and processing all the functions. With systems that have cycles (e.g., payroll, monthly closings), each cycle must be simulated with sufficient data to ensure all functionality is complete and accurate.