Software Development

Optimize Business Consulting has over 20 years of experience creating custom software for business needs. We pride ourselves on being able to bridge the gab between business users and technology. With certifications in three different ERPs, we understand your accountant, controller and CFO. With the business background, we understand you your CEO, owner or president. With years of technical experience, we are able to communicate business requirements to developers efficiently, ensuring smooth execution of the project.

Every company uses software to run their business. For small companies with relatively standard business processes, off-the-shelf software is often the most economical approach. If the off-the-shelf software doesn't do everything a company needs, it may be most practical to throw manual labor to fill-in the gaps, as long as the volume is not very high. As companies grow in the volume of business and sophistication, manual labor becomes more and more costly and uncontrollable, user errors increase in frequency, as do overall risks to the business. At some points, management needs to decide whether to upgrade to another, more advances product that's readily available, or develop custom software fine-tuned to the needs of the business.

You may consider developing custom software if:

  • There is no off-the-shelf product that satisfies your needs.
  • There is off-the-self product that does what you need, but it's very expensive.
  • The software that you already have does most of what you need, and you just need to extend its functionality a bit. This can be a great way to save money by NOT investing into a bunch of new systems, and instead only developing the functionality that is missing.
  • In some cases, custom software may be the only option to achieve your goals.
  • It can increase visibility of your KPIs and provide for better decision making.
  • Reduced human errors.
  • Increased employee productivity.

Next: Risks

What to watch out for if you are considering custom software development:

  • Custom software is not necessarily expensive, depending on the project size, but you need to consider your ROI.
  • You need to work on defining the requirements properly. A lot of companies have only a general idea of what they need, but they don't get into enough details, and find out too late that the software that was created for them is not designed well. Working with an experienced consultant helps mitigate this risk.
  • Choose the development team wisely. If you don't have internal developers and are outsourcing, ask for demos of software that the outsourcing team created for other companies. Ask for recommendations and verify them.
  • You need a super-user on your side to lead the project, define the requirements, work with the developers to make sure they understand them, and verify that the deliverables match the expectations.

Next: How to Succeed

Start by defining the requirements on high level. This could be as simple as bullet list of wishes. Then expand each bullet point into a paragraph describing how you envision it.

Create what is called "User Stories". A user story is simply a description of how a user interacts with the application. It could go something like this: "User self registration. User accesses the Register link on the web site, enters the desired user name and password and their email. An email is sent to the address provided with a confirmation link. Clicking the link in the confirmation email completes the registration and activates the account." Create a user story for each function in the application.

Use project management software to keep track of the development progress. The development team will typically provide that software, and you should have access to it. It keeps track of development and testing tasks, and provides an easy way to check the status at a glance. One of the popular choices is Jira.

Start small. Try to limit the scope to simple requirements that still provide business benefits. This will let you test the waters without committing to large expenditures.

As you see your custom solution take shape, add more features as and when needed. This allows you to spread your expenses over longer period of time. It may not be always possible, but incremental approach is preferable whenever possible.

Do not reinvent the wheel. It rarely makes sense to custom develop a cure business function, such as accounting. There are lots of existing options there, and you should use one of these, and let your custom software integrate with it.

Next: Examples

Here are some examples.

Name Description
School Bus Billing A school bus transportation company needed to automate their billing process. In the beginning of the school year, they negotiate the contracts with the department of education, including how much they are going to get paid for regular trips, how much for extended days, and how much for overtime. The trips information is provided by the city in Excel format. The schools, routes, and rates are maintained in the application. Based on the trips information, the application calculates the appropriate charges and generates invoices in specified format.
Package Management

This customer in construction business needed a mobile solution to manage their warehouse better. All their inventory is linked to projects. When received, it already has a project number and name associated with it, physically attached to the pallet. They move the whole pallet and place it in a bin in their warehouse. The job, and all items associated with it then may be moved multiple times, between different bins in the warehouse, to and from trucks, can be consumed partially on job site, and can be brought back to warehouse, fully or partially. The physical movement of the pallets in the warehouse needed to be reflected in Sage 300 inventory in real-time, and it just wasn't happening, because people operating forklifts in the warehouse were not the same people who were working in Sage. Inventory management was in disarray.

A custom warehouse management solution was created for this client that runs on iPads that are mounted on forklifts. As workers move inventory around the warehouse, they update it in real-time using the iPads. As the solution grew, more and more functionality got added to it, including custom processes for loading and unloading trucks, verifying project inventory, etc. It grew from a simple inventory transfer tool to a mission critical part of their business.

Container Tracking The company is based in US and orders a lot of materials from China. US uses Sage 300 as the ERP system, while China doesn't have Sage. To exchange orders information, people in US and China used Excel files, but it was a lot of manual work to populate those Excel file, update them, and then manually enter orders into Sage. The custom solution still relied on Excel files, but now they were locked down so only certain cells could be modified. The process of generating the Excel files and importing them into Sage 300 was also automated, to avoid any manual entry. Some screens in Sage were customized to provide additional functionality, such as checking the shipping status of containers.

Next: Contact Us