You can still separate tasks based on who is best at something, but make sure every component has been worked on by multiple people.
A company I worked for had a serious problem with that, so I pushed to get every piece covered by two people. I used "code reviews" for this, where in other to submit a change, someone else familiar with the component had to review it, and they had to understand what the code did and how it did it. We only had a handful of employees, and it was definitely a pain getting it set up, but we were able to survive our first "key man" leaving, followed by a second "key man" somewhat soon after.
If there is anyone on a project that isn't replaceable, you better be okay with the project failing if that person leaves for whatever reason.
Having a single point of failure in a business is a big problem. Having a single point of failure that isn’t 100% committed to that business sounds insane
> should have been using source control and someone else should have at least had access.
I agree. Leaving aside the question of if anyone else understands the code and could safely make changes, it seems incredibly negligent not to use source control and for the company not to have backups in multiple locations that multiple people have access to. Not rocket science.
There's ways to mitigate this though, he should have been using source control and someone else should have at least had access.
From the business angle, you can also get "key man" insurance, to provide some financial safety net. I am key to 3 startups, and all of them have key-man insurance against me.