Long-term ownership problems can plague startups and tech companies trying to move fast and build a lot. By “long-term ownership” I mean the ownership of a product, application, service, feature, etc… after it is live in production for some time. This ownership exists both on the product and engineering side. Long-term ownership involves the ability to maintain, debug, fix, understand, and add features to an existing application. Problems that arise include:
- Poor Documentation -Often engineers don’t document their code perfectly. Product managers may not write the most detailed product specs. It can be very hard to revisit a system without thorough documentation.
- Forgetting – The longer it has been since a product was built the harder it will be to remember the nuances of a product. Engineers and product managers may have worked on other projects in the mean time. Even in the best case scenario there are good product and tech specs along with code documentation (which is super rare), people will have to relearn a system. This will take time and be error prone.
- Attrition – When employees leave for whatever reason they probably will not be able to hand over all of their knowledge to someone else. System knowledge will get lost as people depart a company.
- Resource Allocation – As a company builds more and more features, it is hard to staff ownership. A single person can only understand, remember, and work on so many products at once.
I feel that as time goes on, a lot of these problems silently happen. This leaves a lot of products running in production in a very precarious position. People have to scramble to fix or add to these products. In a later blog post I will write some ideas on how to prevent these problems.