If the Cloud Retailer team conducts the customization, we classify the work into two different categories. Bespoke and Framework.
This is where we modify the system where the functionality is specific for an individual customer.
There is substantial costs in developing software. There is:
- The custom software development work
- The design (think about it like building a blueprint)
- The initial testing - making sure the application meets the requirements of the project.
- Ongoing testing - each time we release new versions of Cloud Retailer; which is weekly, we should retest the custom code as well.
- Ongoing support - who on our team of support engineers will know your bespoke product well enough to understand:
- How it works - as it be able to answer your questions
- How it may influence other elements of the system in order to troubleshoot problem. If you have some special logic at the POS that enhances discounts; someone from our team troubleshooting an unrelated discount problem would be confused and unaware of the custom modification.
In order to support a one-off customization, we require customer to purchase a Gold support package. This allows us have a dedicated, single point of contact who can support your special functionality. We charge an hourly rate for this work plus a monthly fee for these ongoing costs as well.
Due to the significant costs we tend to avoid building on-off customizations for customers and stick to features that will have a positive benefit for multiple / many customers. See "Framework development below".
This is where we modify the system for a specific project BUT the customer involved will allow us to do this work in the manner, we see fit to make the functionality they are after generally reusable for public consumption. This has an important few key element typically:
- It often accomplishes the customer's goal for the project but it likely does not work or look EXACTLY the way the customer wants it to.
- If we can build it in a way that accomplishes the goal but fits into our product more generally then it may be a candidate for framework development.
- If you feel you need something to work in a very specific manner or look a specific way - then it is bespoke development.
- We typically build features out less for a specific purpose and more like a tool in a toolbox that can be used for multiple things. It's a bit more generic than bespoke development.
- If we built it for one customer, one time, then it's bespoke development.
- It takes a little longer
- If we build something out to work for many customers and make it a part of our core product the amount of time, we spend to make sure it's fully featured is a lot more than bespoke development. When it's part of our core product we make sure it's more performance-optimized, that we have automated testing build in (unit and integration tests), it's likely more configurable, etc.
- That said - it's typically cheaper to have the work done. Since it's a general enhancement to the product we fund a majority of the costs associated with the development.
- Since it's a part of our core product there are lower ongoing costs. We are still maintaining additional code that didn't exist before but there are some economies of scale since it's likely multiple customers will use the tools.