Want Customization With That?
A starting point for modifying open source applications is taking an open source solution that comes close to your needs and adding your own modifications from there, suggested Mac McConnell, vice president of Bonitasoft. "Companies that still do their own software have very specific needs. Most companies today want to start with open source foundation and then customize from there."
11/19/13 5:00 AM PT
Enterprise software vendors want you to believe that they can customize their software to fit your company's particular needs. That promise is also one of open source software's chief claims to fame.
So is the make-it-your-way vendor promise a better option than what the open source community offers? Is a business owner with specialized software needs better off hiring a programmer or paying his own IT staff to do double duty as a software development center?
The answers often depend on corporate financial resources and the in-house talent the enterprise software user has on hand. No solution involving tailoring versus customizing business software -- open source or proprietary -- is really free. Once size does not fit all.
Often the software user must walk a fine line between off-the-shelf products and costly roll-your-own programming solutions. However, a third alternative offers business an option that could be one up on typical open source freedoms.
"Another way around this is to contract with the vendor for a preconfigured version of the software. That would allow the user to have out-of-the-box functionality for that company's specific needs," Javier Sloninsky, managing director and CEO at EcoSys, told LinuxInsider.
Tailor Made or Customizing
Using configurable software from the start sounds like a good approach in theory. In practice, though, it may not be readily available if software makers do not rally around the programming flexibility.
"Tailoring software is always the goal. In order to make software work for you, it needs to be tailorable -- but what you really want to avoid is costly customization," Sloninsky said.
Customizing software is like having somebody write some code and add it to the software to better your company's requirements, he observed.
Once you buy into the process of customizing your software, you start paying for all of the advantages and disadvantages of building and maintaining your own version, noted Sloninsky. Even though you are not developing all of the software, you are incurring additional development costs.
Possibly even worse than that are the ongoing maintenance costs. You have to pay either your software vendor or your IT staff or a third-party programmer to maintain that functionality with each software upgrade, Sloninsky explained.
"When a major system upgrade involving OS or hardware or both occurs, you also incur the additional costs and risks of rewriting the added code again to remain compliant with the upgraded environment," he warned.
Configure the Differences
One way to avoid that added cost and added risk is to use software with configurability features built in. This approach removes the burden of the user writing the additional code or paying somebody else to do it.
Instead, the software user works with the plug-ins and APIs and other user settings and configuration options to tune up the software. That way, the user fits the software to the business requirements, according to Sloninsky.
"This type of customization does not need to be maintained to work with a systems upgrade. This does not involve additional costs to the software developer. This is the key. That type of customizing will not be broken by an upgrade. That configurability versus customization is the difference between buying into commercial or closed source and open source software," he said.
Self Service Your Software
One software developer's configurability feature might be another vendor's self-service customization design. That is the approach offered by software vendors such as Commence.
"With the self-service customization option, the user does not get the source code., but this approach also does not require a consultant or even the software developer to come in and customize the software," Todd Page, Commence's chief technology officer, told LinuxInsider.
Using self-service modifications in software gives the user the ability to tailor changes to the specific needs of the company. For example, with CRM software, the user can change database models, change screens, modify report forms and such very quickly to get the information the company is trying to gather or meet a particular scenario or perform a particular task, he explained.
How It Works
From a business user's view, self-service business software modifications and business software configurability may be similar ways to reach the same goal. Both let you make the software run your way without having to write code yourself or pay a programmer to do it for you.
Commence offers self-service customization as modules built into the product line. Each type of customization is driven by a designer module for that change, noted Page.
"The administrator or anybody granted access to make changes has the ability to access those customization screens. Those modifications then roll out to all of the user groups using that system," he said.
Similarly, EcoSys builds into its software a user-configurable control level. This design approach lets each user essentially set up metadata options that the software is already designed to handle. The configurations may involve setting up custom fields or company-specific hierarchies in the data structure.
"As software developers, we love open source. With the configuration option, the software developer essentially builds in a customization tool kit. The difference is with configurable software, the product's engine does not change customer to customer due to code additions or alterations," Sloninsky said.
A starting point for modifying open source applications is taking an open source solution that comes close to your needs and adding your own modifications from there, suggested Mac McConnell, vice president of Bonitasoft. To develop your own software solution from scratch means continuing to fund update costs over time.
"Companies that still do their own software have very specific needs. Most companies today want to start with open source foundation and then customize from there," McConnell told LinuxInsider.
One of the main concerns in modifying open source software to tailor its usability to specific company needs is ensuring that you do not create any code conflicts, he noted. A related issue is maintaining that software after the developer issues updates or newer versions with improved feature sets.
That forces a new decision about upgrading to the current software version or staying with the modified older version. If you decide to upgrade, you create a continuing cycle of plugging in your modified code and running a risk of causing new code conflicts., McConnell explained.
"If you can really work with the open source foundation and limit your modifications, then you get the best of both worlds," he said. "Either way, you have to maintain and update over time."
Another factor to consider is how you set up your IT staff. Can it maintain the software -- and can it serve as a development center?
As IT departments are making these decisions, a lot has to do with the skill level of your staff and your trust in the vendor, McConnell noted.
Open Source or Proprietary?
Open source software users often have a cost advantage over customers of proprietary software. One major difference in deciding to modify or customize the software you use depends on how it is licensed.
If your commercial software is developed by a provider that supports some mechanism for configuring or customizing what you purchased, then that becomes an acceptable option. That is not usually the case, though.
Open source products are basically designed to allow the user to go in and modify the code, according to EcoSys' Sloninsky.
Licensing issues are not freebies even for open source. You can keep your customization out of the community stream if you develop it for your own use, Bonitsoft's McConnell said.
The Cost of Rewriting Software
Once you start to resell or distribute that modified software with your own customization, then you are obligated under the GPL license to release it to the community. If you had an open source vendor make a custom or premium version to which you added your own customizations, the vendor would charge for a license change, explained McConnell.
Users of open source as well as proprietary software can buy into a tiered pricing structure, but the availability of this option depends on the software product and the developer, vendor or open source community.
At the low end, it is a locked product. Users can purchase progressively customizable versions of the product. There are additional training costs to learn to do it yourself -- or you can hire a third party or the developer, said Commence's Page.
Software Road Map
Companies are pushing to alter whatever software they use to make it more competitive. Using the same uncustomized software as their competitors is not going to give any company an advantage.
"The smarter companies are looking to be agile with their software choices. As companies mature, management learns that it is not good to be straddled with software that does not change as needed," concluded Page.
Ultimately, ease and speed are two attributes that may dictate what software users decide to do about customizing or configuring the software they use, said Gal Oppenheimer, product manager at Raw Engineering.
"An open source approach allows for direct customization due to the source code being freely available for modification. However, it requires that you have the development expertise to implement and Q&A those changes," he told LinuxInsider.
There is also a drawback. Once the initial excitement of open source projects subsides, developers often move on to hotter projects. As a result, the rate at which customization capabilities are implemented can slow dramatically. For enterprises, using proprietary software usually delivers a better and more dependable solution, Oppenheimer said, without the need for additional headcount for development and support.