We understand that

  • any software development has number of risks
  • outsourcing adds more risks due to its remote nature

We identify following risks and measures:

  • delivery in time
    • we provide project status reports, so that progress is clearly visible
    • we make realistic plans
    • we use complete solutions (either open source or proprietary) where possible
  • delivery in budget
    • in case of fixed budget – we agree on the budget before project start and if project require more efforts – it is our own expences, not our customer’s
    • in case of pay-per-hour – we look for most cost-efficient ways of achieving result
  • usability (risk that users will not like or will not understand the product)
    • we pay attention to usability from the very beginning of the project. We define most frequently used “paths” of user interaction and optimize these paths.
    • when doing optimization we keep in mind that users will have different level of competence, so we put hints where necessary
    • for those features, that include complex computations, we make our software clearly show user how these computations are performed step-by-step
  • scaleability (risk that product will not scale)
    • we choose scaleable solutions where possible, so that adding more servers or cloud resources allows our projects handle more users.
    • we tell customer limit, after reaching of which we’ll need to make significant architecture changes for futher grow.
  • reliability
    • we use only proven reliable technologies
    • for those open source solutions that we use, we have engineers, who are able to drill down into the code and make fixes.
    • we can provide 24/7 support on demand for extra price. Otherwise we normally troubleshoot any issues within 1 hour during working hours.
    • we use stress testing procedures on our projects.
  • technological risks – compatibility issues with other products, shutting down of 3rd party services, lack of maintenance for 3rd party products, etc
    • we have big experience in software-to-software integration and we understand that 3rd party software and services evolve. We provide after-deployment support for our products on a pay-per-hour basis.
    • when using 3rd party services we always provide clear logs for interaction process to make troubleshooting easy and quick.
    • when using 3rd party products/libraries we notify customer of possible lack of maintenance. We always prefer to use open source solutions, so that any maintenance could be held by our engineers.
    • when it comes to using of proprietary file formats – we always try to make alternative formats available.
  • intellectual property and licensing
    • we prefer to use open source solutions with clear licensing. We always tell our customers which products/libraries we are going to use and which licensing options are available.