Buyer's Technical Guide for Angel Investors & VCF
By Vasiliy Soloshchuk
What is it that sells a startup to an angel investor or VCF? Is it the originality of the underlying business idea, or concept, congenial with the investor’s outlook on the market, and what’s going to be the next hot potato? Or perhaps, it’s the personalities of the founders, and the portfolio of their previous creations?
Whatever it is in each particular case, while becoming part of a startup company financially, an angel investor or venture capitalist is making a purchase of not only the business idea or market vision, not to mention the technical resources, proprietary blueprints, or infrastructure to implement the project (especially, when it deals with a seed investment). A less frequently recognized, but, nonetheless, very important part of what they pay for is the startup’s technical vision. The project’s successful implementation will, to a great extent, hinge upon this.
It is a lucky fluke indeed if you are a VCF with an all-round CTO in your employment, all bent on securing your investments and making them a technical success. How about if you are not that fortunate, and, as luck would have it, System Analysis doesn’t happen to be your university major?
Well, in this case, it’s best that you try to ascertain certain things, and keep an eye on how the startup team is delivering on what they told you in response to your questions.
As a provider of custom software, we will try to help you with this task by identifying the things that we deem to be of importance for the technical vision of a startup team to be viable, and capable of insuring the project’s smooth and timely implementation.
The above areas of interest and concern would be pretty much the same for both seed phase startups, and those in the Series A phase. The difference would be that in the former case you will need to probe purely into the startup managers’ vision of the way things should be technology-wise, while in the latter case you will have to audit the existing technical arrangements.
1. Clear Business Vision & a Technical Specification That Fully Reflects It
As you may already know, any startup worth investing in must have a clear business vision: that of the market, competition, and, most importantly, of the problem to be solved, and ways to do that. Technically, all of the above is reflected in a detailed Technical Specification.
Although it is very seldom these days that a project doesn’t have a Technical Specification, you should make sure that this one exists, and was composed by a competent expert. In addition to the overall Business Vision, the Specification must include use cases/user flow, User interface mockups, the system’s Data Model (i.e. the flow of data across the system), and a detailed description of the non-functional requirements for the system. The non-functional requirements normally include the system’s usability, reliability, performance, and scalability.
2. Software Architecture Design
Another highly important aspect is the Software Architecture Design of the project, especially, if it is a project that has been under development awhile now.
The thing that you should check at this point is whether UML (Unified Modelling language) tools are used, or going to be used (in the case of seed phase startups). Ask your partners-to-be if they have been using UML, and have the following diagrams for the system:
- Components Diagram
- Deployment Diagram
- Class Diagram
For the development process to be efficient, it is also important that the development team use design patterns. If the existing or projected use cases are ramified and intricate, a set of UML diagrams must be provided for each of the use cases. Importantly, the Components Diagram must mention the selection of the technologies to be used for each system layer.
The simplest way to determine whether the system architecture is up to par is to check whether it is at least in sync with the Model View Controller design pattern (http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller), or a similar design pattern.
3. Project Plan & Project Management
Make sure to check whether the startup has a detailed Project Plan. Usually, such a project plan must include the project’s work breakdown structure, a time estimate, a cost estimate, a resource plan, and a budget schedule.
Also, make sure that the startup’s co-founders can handle the Project Management Triangle (http://en.wikipedia.org/wiki/Project_management_triangle). Since this isn’t really something that can be found out upfront, you should ask them about whether they have ever handled the combination of factors reflected by the Triangle in its entirety.
4. Choice of Technologies
One of the crucial points for any IT startup is selecting the right choice of technologies. We won’t go into too much detail here, but we will itemize the more common and viable technology options for the different types of systems.
If you are planning to build an enterprise-level system, you should go for Java or .Net. For a Web-based application, the logical choice would be Ruby on Rails, or PHP. In case a mobile version of either of the above is to be developed, IOS and Android will be suitable.
Software applications with a rich GUI should be built using Angular.js, Backbone.js, or Bootstrap.
As far as databases are concerned, the determining factor in their choice is whether the system-to-be will work with Big Data. If Big Data is a big thing for your startup, it will be better to use NoSQL (MongoDB, Cassandra). In other cases, SQL DB (for instance, MySQL or PostgreSQL) will be enough.
Cloud-based applications should use Amazon, or Cloud Foundry.
5. Software Development Processes
Prior to investing in a tech startup, it is absolutely imperative that you find out what development processes are currently in place with them (or, correspondingly, are going to be used by the project team in the future).
In particular, ask the startup founders/CTO about the following processes:
- Version control and continuous integration.
- Conducting of Unit Tests and automated testing.
- Project tracking (bug tracking, task tracking).
Almost all of the above points are equally important. For example, without version control and continuous integration, the existing code base can be a mess, while unit tests dramatically reduce the amount of required testing in the long run.
Just as important, is the choice of the development methodology for the project. We are unequivocally convinced that the best development methodology for almost any kind of IT startup is Agile/SCRUM. Iterations, normally referred to as sprints, daily meetings, and sprint retrospective meetings that involve all the stakeholders, ensure proper flexibility, interaction, and control.
And, in conclusion, it is worth mentioning the composition of the startup’s technical team.
Unquestionably, include a business analyst, and a QA engineer, which is not always the case with startups.
Oftentimes, what starts as a single project, in due course, ramifies into several separate sub-projects. In the latter case, each of the sub-projects should be managed as a full-value standalone project, and lead by a separate PM/Tech Lead.
Making a technical audit of your potential investment opportunity is a demanding, but eventually rewarding task that can, in due course, become a matter of life and death for your startup.
Sometimes, it would be more prudent to enlist the support of a professional organization that has the required means and experience to objectively inform you how viable your start-up’s technical arrangements are.
© 2014 INSART