Should you customize the Off-the-Shelf software application?

Software applications you can buy Off-the-Shelf (OTS) will often fulfill 80% of the needs of a company. If that is true, then what do you do with the other 20% of functionality you need isn’t in that existing software? You need to evaluate what functionality is required by your clearly defined requirements of the application, compare that need to the OTS software application’s capabilities, and make a decision on how to customize or modify the software to meet your needs.
First step is to be cognizant of exactly what you need the software to do. This should have been documented when your company started evaluating off-the-shelf software applications.
Next, compare that to the OTS software solution. How much of your needs does the application fulfill? Do you need a small tweak or is it missing a major piece of functionality you need? Also look at the innate capabilities the software has to allow you or a trained person to modify the software slightly. Many applications come with the capability to make small modifications to the application without breaking the software such that it can’t be continually updated in the future. For example, Zoho CRM and Salesforce.com allow you to add new fields to nearly any screen, wrote simple code to perform a calculation or other logical function. Often you don’t need to be a software developer to make those changes. Knowing the limits of the out-of-the-box customization relative to what you need is critical.
Once you have identified how much the software can or cannot be easily customized to meet your needs, you have  three options:
1) Use existing customization features: Go ahead with making the small change to the application using it’s innate customization capabilities. This is the best route if those customization capabilities exist, and if they meet the needs.
2) Modify the application’s code: Modify the code behind the application (i.e., modify the code written by the software manufacturers software developers). I mention this option because the option exists for some software (not all software). But I would never suggest doing this. It can be expensive in the short term and even more expensive in the long term because often the software can no longer be upgraded under existing maintenance plans. You’re then stuck with that version of the software for a long time with little to know support from the software vendor.
3) Create a separate function or application: Create a function or application outside of the application to accommodate the need for the specific feature. This is appropriate when the need for the feature is very significant for the business, and when the complexity of the feature is also significant. You should consider this option very thoughtfully. It has it’s pros and cons. The pros can outweigh the cons in certain situations.
You will likely find that the first option is the best option. However, if you’re in a situation where it doesn’t appear to be the best option, call us. We’d be happy to have some initial discussions with you free of charge.

Should Your Software Applications Talk to One Another?

Do you know everything you need to know about what’s going on in your manufacturing company? Do you have all of the data you need?
If you do, is it a quick and efficient process for you and your staff to get the reports to you? Or does it take your staff a lot of time to manually assemble reports from various software systems which you use, such as your ERP, CRM, CMMS, and/or MES systems?
If the answers are No, there might be a solution for you. That solution is called a “systems integration”. Systems integration is a setup of custom software tools or off-the-shelf tools that allow various software systems to to share data with one another. They can very often have a major, positive impact on the company.
To integrate multiple systems at a manufacturing plant or other company one must determine whether the integration can be done or not. This can be determined by answering a number of questions such as:
  • Do the systems in question have APIs or other interfaces which allow software developers to securely reach in and push or pull data? Or are the databases open for read-only access, at a minimum? Feel free to be creative, but also be careful.
  • How many systems contain data that is needed elsewhere? Keep it simple, maybe only select two systems to start with a smaller integration.
  • How much data needs to move from one system to another? Be realistic with your expectations and need.
  • What will you do with the data? Simply analyze and report? Or push the data into another application to track various products or processes? Best to keep it simple to start.
  • Are any of the systems behind a firewall of some type, such as a firewall to protect your Industrial Control Systems (ICS) on the plant floor? This can get dicey. You definitely need to talk with real professions to work through this.
Your IT department and/or software developers should be able to answer those questions after they do a bit of digging.
Throughout the sample questions above you saw some comments to keep in mind. I’ll summarize those comments again because they’re important for a systems integration to be successful:
  • Know what you need.
  • Know what you have.
  • Keep it simple for what you need.
  • Start with a small integration project, get it working, get it to add a lot of value, then do more.
  • Only do this work with real, proven professionals.
I can’t stress the last point enough…be sure to work with real, proven professionals, whether it’s your IT department, senior software developers, or product specialists. We have seen more failed projects by others than we care to remember which were caused by inexperienced and/or cheap staff or consultants trying to tackle important, business critical, complex projects.

Another 4 Qualities of Top Software Development Firms

In this post https://www.ectobox.com/4-top-qualities-of-a-software-development-firm/ we discussed 4 qualities of great custom software consulting firms. Here is another set of 4 qualities to consider. Use these when evaluating your prospective software development companies for upcoming custom software projects.
5) Seniors and juniors
Do the software consulting companies with which you’re talking have senior developers on projects? Do they have any senior developers on staff at all? If not, run for the hills.
There should be senior developers (7-10+ years and very good at consulting) on projects. They have the experience, among other things, to make the appropriate design decisions, can have the tactical and strategic discussions with client stakeholders, and lead and coach junior developers to ensure they’re learning and growing and doing the right work in the project. They’re the leaders in the projects, along with product owners and project managers.
6) Ethos of improvement
Does your prospective software vendor talk about the company constantly improving itself as it learns and grows? Do they talk about individuals in the company doing that as well? Is it a part of their culture to learn and grow? It should be.
7) Personal responsibility
How many times have you seen this situation?…where people working on any kind of project will point the finger as someone else when something goes wrong, throw bad work over the wall and hope someone else cleans up after them, or they’re like the kids in the old Family Circus comic strip saying, “Not me!” (as in, “It wasn’t me that broke the vase.”).
You obviously don’t want that. You want your software consulting company vendor to have team members that take ownership of their work, take pride in what they do, and want to do a great job and constantly add value.
8) Collaborative
Working on complex projects in a collaborative fashion is very important and valuable. Better work gets done faster when team members have a natural tendency to collaborate within the team and also with their client.
Does your software vendor team have this collaborative tendency? If not, that should throw up a red flag.
Consider these 8 qualities of a potential software consulting firm. Are they present? It’s hard for all of them to be present in a company. If most or all are, you can be better assured they’re going to be a good long term partner to get the right work done.