Tech Articles‎ > ‎Other‎ > ‎

Types of custom software development work

** Please visit our new Cloud Retailer Help Desk https://helpdesk.cloudretailer.com
    This specific article can be found 
here **

Cloud Retailer has the ability to be customized to meet a specific need.  To accomplish things the software cannot do out of the box.  This can be done via API, the user interface layer, workflow, reports, labels, etc.

If the Cloud Retailer team conducts the customization we classify the work into two different categories.  Bespoke and Framework.


Bespoke development

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.

This accounts for a portion of the long term costs.  Two additional, and substantial, costs remain:
  • 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.
These ongoing costs in some cases match the original cost to develop the tool; year after year.

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".


Framework development

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 elements 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 apart 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 apart of our core product there are lower ongoing costs. We are still maintain additional code that didn't exist before but there are some economies of scale since it's likely multiple customers will use the tools.

Comments