Tech Due Diligence Calculator
decodingvc.gitbooks.io
decodingvc.gitbooks.io
Pre-angel funding you should take every hack and shortcut you can to get something into your users hands.
Please ignore this checklist. It is really bad advice.
(source: 2 time founder, over $16M raised from VC. I have made many of these mistakes.)
Vendor lock-in, with established long term vendors, is such a tiny risk at this stage that putting effort into avoiding it is going to cost you signification more business wise. Especially odd when there's a whole bunch of other questions noting that building things yourself is not worth it at this stage.
Daily 1on1s seem like a massive waste of time and focus that it seems insane to suggest them. If something comes up then your door should be open but expecting things to change day to day seems like you've got much bigger problems.
You don’t need to pull people from their desk. Just walk around the room and if nothing has changed you will have the following conversation.
CTO: Hey, what’s up?
Developer: Nothing much, still working on X feature. It’s going okay.
CTO: Cool, thanks a lot.
It wastes no time at all. Except that quite a lot of the time one of two things can have occurred:
1) The developer is stuck on something but they don’t want to ask because most people would rather struggle for a while first. By asking “What’s up” they will usually volunteer this without it sounding like they need to ask for help and then you can discuss it and usually resolve it or know who they should talk to to resolve it.
2) The developer has gotten distracted by something that seems important to them. If it’s actually important then it’s much better that you know about it rather than not know, and if it’s not then it’s much better that you guide them back to working on what is important before they waste too much time.
Seriously, I have gone through periods of doing and not doing this, and the whole organisation moves so much quicker when doing it.
Also, if you have to tell everyone something, you will find that telling every single person individually works so much better than telling everyone that thing as a group.
When you tell a group of people something nobody in the group will actually hear and understand it. One on one they will ask you a question if they don’t understand but in a group they almost never will. So if there is anything to tell people just walk around and tell each person one by one during this daily process.
Zero “Meetings”, daily 1on1s is what it’s all about.
Sometimes I sit in on the daily meeting and don't learn anything, but MBWA, I often get some insight to issues that are going on.
I think this is useful advice and I’ll try to adhere to some of its points in my next startup.
And once you have it for one project, you can usually adapt the script or process for others.
As a general rule of thumb you need to be really cautious not just of the initial work to implement something, but the medium term operational overhead which 1-click deploys falls into.
That said I still support 1-click deploys early on. It's just not so easy as adding a githook to trigger a script.
But to be fair, it is their money - if they want to decide on investments based on these criteria, that is their business. And they did say they are willing to accept critique of where they are wrong. They also said that this isn't truly part of their due diligence, nor should results be taken seriously.
S1.3b - For several types of software, releasing continuously is an anti-pattern. Not only will it annoy your customers, it will significantly increase the cost of development. Not every tech startup is a website.
S1.4b - Same as above, not every kind of software application can be properly monitored without custom monitoring development, though most can. If someone develops a custom monitoring solution, you should at least understand why first; using an off-the-shelf solution in some cases would be a negative.
S2.6g - There should be an on-premise option. For several industries and applications it is required by the customers and/or IaaS has substantial adverse economics. The correct answer is that there is a financial model that captures these CapEx/OpEx tradeoffs. I've seen too many startups burn millions of dollars per year unnecessarily because they never did the math. (You should always be able to easily deploy across IaaS and on-prem though.)
The point about monitoring is more a "bus factor". If the organization in general has good visibility into the operation of the software, there tends to be less situations where only one person knows how a specific recurring issue gets resolved.
The other common scenario is when deploying new releases is intrinsically extremely expensive in one or more dimensions. Some data infrastructure SaaS can be like this. Again, in these situations startups correctly optimize their release model differently than e.g. a website.
That’s not to say you can’t get many of the good parts of CD but you’re going to be making releases and supporting a few different versions at all times. There’s just no way around it.
While yes, continuous deployment may not be desirable in a lot of cases, continuous integration is a practice that (IMO) most software should strive for.
My experience has been very different: I started out doing tech DD and quickly stopped because it didn't have much value for us. Here's a post about my experience: https://www.codingvc.com/why-startup-technical-diligence-is-...
My conclusion over the last 6 years in venture has been that tech DD is important for companies with technical risk, but not many products have true technical risk. And regardless of the underlying tech, the CTO needs to be able to spot good talent, convince that talent to join, and manage a team for at least the first few years of a startup's life.
I've been involved in acquisitions that had fewer silly technical questions.
> Our opinion: Developers don't like to inherit code at this stage when apps tend to be big monoliths. It's common that if they do it, they re-factor (or re-build) big chunks of the software.
Shockingly accurate. It's like these folks can read engineers' minds!
This is however an excellent checklist for self-evaluation. I found the point about feature flags insightful - having them as early as possible so you can build a culture of testing sooner.
He went pretty deep in code in some cases for example useraccount management and he did find flaws but again no checklist just fixes and improvements.
>>You've got 276.5 out of a maximum of 330 points.
I think most startups with serious engineers on them will do very well on tech due diligence. I think most people complaining on here don’t really understand modern engineering or don’t fully lean into managed cloud services the right way. For example it is very easy to have geo-replicated database, automated backups/snapshots, auto scaling with functions.. on and on.
Very few companies our building their own clusters (sure they are out there, mostly banks, financials and gov)
Swarm is used quite a bit on day one but generally phased out long before production. Mesos still has traction on very large deployments but fewer new initiatives start there these days --although there certainly still is investment here.
What is most interesting to me is that the longer a company has been using containers the more likely you see Mesos because three or four years ago kube was not the first choice like it is today.
Also, daily 1on1’s?! Micromanagement much?
Edit: It seems the scoring on the survey is different from the one in gitbook. The survey gives 147.5 points.
Disclosure: I'm on the technical advisory board of round2cap.com where I also do technical due diligence.
https://www.dropbox.com/s/4auliazw2d3kcio/Screenshot%202019-...
¯\_(ツ)_/¯
This comment is not only dismissive, its basically wrong too. Their website is the digital equivalent of an information brochure - there is zero need for HTTPS there. The only page that needs it, partner login and the admin area looks like it does have HTTPS.
Everything needs to be HTTPS.
Yeah, that is annoying, but it doesn't seem entirely relevant.