We live in a digital world and the small and medium business needs to survive and effectively compete in the digital economy. The SMB sector represents a wealth of innovative ideas with a variety of trade approaches and methods, but they each have their own unique differentiators.
If your business is not creating and managing your own software applications in-house, then all of this will depend on a successful software outsourcing strategy. Your options at this point are either an off the shelf solution or custom software. Off the shelf solutions can be tempting, but tend to be more cumbersome as they are designed to be generic to the masses. In reality, too generic, off the shelf solutions can cause significant loss of productivity due to ineffective workarounds. Eventually the heavy customization and complexity will eliminate the out of the box upfront cost saving benefits. If you are ready to make a real impact to improve your business with custom software, this then leads to the question of how to choose the perfect software development partner.
Many believe business logic and solutions are merely websites or Apps, whereas in most cases business processes,workflows, and transactions need more complex software or business application(s). Below are some the critical aspects that you would need to carefully consider when making such an important decision.
Solutions Provider Technical Expertise
The application architecture is the cornerstone of the application. It’s specific design can make or break your future profitability. For instance, a rigid and narrow architecture will hinder future expansion (i.e. additional features, number of users, etc) The architecture needs to be open, secure, flexible, scalable, highly available and the solution provider you choose must have prior Enterprise solution architecture experience to be able to create such architecture. Also, the architecture should be extensible to support future business models, for example; a current B2C model could be extended to B2B to accommodate future success and expansion and support future integration with partners.
Cloud Architecture is becoming the default application deployment model, where the SMB can avoid on-premises infrastructure cost and concerns. Currently there are multiple cloud providers with complex deployment, utilization and cost models. The solution provider must have the experience to guide you through the cloud provider selection process and understand the computing requirements for the end solution. This will help you to choose the best fit model.
You need to choose a solution provider that is using modern architecture and technology; older and legacy technologies are inherently slow, non-portable and most importantly, not secure.
Make sure that provider is using a technology that can be built-on and extended without the provider support if you need to. Also, if the solutions provider is using open-source technologies, then you need to make sure there’s a solid open-source support policy and strategy covering current and future litigation, license, copyright, maintenance and security issues.
Solutions Provider Non-technical Critical Aspects to Consider
Business Domain and Culture Norms Knowledge
This is often overlooked or forgotten, only to be discovered in a latter stage of the project. This occurs most commonly when working with offshore outsourcing, where the solution provider is not familiar with the culture, social norms, financial regulations and other western business aspects. The lack of a business domain model knowledge can lead to obvious and embarrassing defects or bugs.
Solution Development Model
Software development offers a variety of methodologies and approaches that can be applied to each project. However, time to market is a paramount factor in today’s world. When selecting which solution partner to work with, make sure they utilize agile and adapting agile methodologies. This verifies that important features can be delivered in sprints while working on adding features and fixing defects simultaneously. Continuous integration and delivery are viable proven strategies to speed up time-to-market. The development process should maintain all aspects and phases of creating Enterprise solutions, including requirements gathering, identifying problems and solutions, creating the project plan, creating architecture and UI design, development, and quality assurance and testing to ensure quality and security.
Solution Delivery Model
The solutions provider of choice needs to incorporate the business and/or customer’s feedback into the development process. Customer feedback can then be directly incorporated into the next development cycle to make sure the end product matches the original business vision and to avoid large gaps and deviations. The solution provider should also provide a warranty period where defects will be addressed and fixed, free of charge.
While many would focus on the solutions provider’s available talent pool, resources, and project cost, these are not major factors that would determine the quality of the end product. Local talent and resources maintain a constant advantage over offshore outsourcing, offering far better communication, quality, and business domain knowledge. These key factors allow for a more manageable and controlled process with a far superior end product.
Mobile Development Strategy
A clear mobile strategy should be provided on how the custom application can provide access and content to users over mobile channels, without rebuilding the application for every platform.The solution provider should be able to provide a clear mobile strategy on how the custom application can provide access and content to consumers and business over mobile channels without rebuilding the application for every platform.
Clear and Timely Communication Channels
The solutions provider should be able to communicate accurately and respond promptly to requests and clarifications. They also should have the ability to support onsite meetings on occasion.
Price and Cost Model
While detailed cost (breakdown, model, etc.) are important to understand and monitor, it’s also important to utilize a simple and flexible pricing model. This enables the customer to easily project cost with the flexibility to add or remove features.
Those are my personal views and not representing the people I worked with, the companies I worked for, or my/our past and present customers in any shape or form. Any resemblance to real life use cases or situations is accidental and not intentional in any way, shape or form.
Hope this is helping some and again I understand other’s experience and views could be completely different than mine and I completely respect that.