There are multiple stages in a start-up. At an early stage, most tech start-ups usually include two founding members – a business head and a tech head leading the validation efforts. Further down the line, we notice parallel and vertical streams of teams leading the initial growth of the company. It’s usually at this stage or after this stage, where the business has some solidarity to it and the focus on building tech for a large and scalable model begins. The following points made in this post have been laid out in view of a mature start-up.
Following an agile methodology for development is a no-brainer for any start-up. The environment is fast paced, catering to a dynamic business where release cycles are frequent. Often, the common pitfalls of this method also show a lack of emphasis on planning and documentation while customer expectations sometimes are not clear. To mitigate this, a hybrid of agile and waterfall approaches enables start-ups to move towards a mature business. To do so, the start-up must;
– Identify problems of the business
– Prioritize the need of the hour for the business
– Allow for high level architected solutions for each problem
– Build feature specs
– Execute in sprints (ideally 2 weeks) for maximum output to customers
Your business logic and data is your Intellectual Property. As a Fintech company, this becomes the most critical piece of software development. It is important to protect your data while also facilitating growth with the exact same data. How do you draw this balance?
Build your logic and algorithmic layer around your data and an external layer that does not directly interact with your data set. This permits external endpoints to be consumed by growth partners as well as reduces development efforts for building tech for internal teams.
Enterprise applications are often built using a monolithic approach or as a single unit. Although it’s a natural approach to development, it can be frustrating because of multiple dependencies on modular structure and deployment to the cloud also becomes a challenge.
In contrast, Micro-services architecture equips you to independently deploy services or pieces of software without large dependencies on other services. These services or pieces of software ultimately add up to become a single application while running its own suite of processes and mechanisms.
Additionally, in a Fintech setup, technology is built to cater multiple teams – both internal and external and having a micro-services architecture easily allows horizontal scaling.
In a start-up, it’s a good idea to prototype development. Prototyping facilitates quick delivery of a piece of software and a better understanding of future product development.
Post prototyping, it’s important to pick the right framework for a full-fledged and scaled application. This is where building code that can be re-used in multiple services becomes a factor of efficiency in development. Building custom libraries (back-end or front-end) and even choosing the right frameworks ensure ease of development across resources and knowledge transfer. A choice of using AngularJS as a front-end framework allows for creating directives specific to custom applications and promotes reusable components.
Build vs Buy
A classic point of debate and contention is always build versus buy. There are multiple points to consider while making such decisions in a growth stage start up to create a fine balance between the two.
Often, out of the box or integrated solutions provide quick solutions for increased productivity to a business need but come at several costs, such as pricing and rigidity of use. Sometimes these solutions are not compatible with existing software or custom solutions.
Custom-built solutions provide competitive advantages, builds intellectual property and fit a specific business need but also comes at several costs, such as time for development and uncertainty in product definition.
A hybrid approach can be an effective way of mitigating the disadvantages of build or buy approaches. At times, building on top of or integrating an existing product into your custom built solution adds greater value to the overall business product. An example of such a solution can be integrating a good workflow management tool into your custom CRM application.