4 ms·
After a couple decades working at companies and projects of all sizes, I always cringe when I hear prescriptive ideas about some abstract approach working or no
by dasil003 5y ago
After a couple decades working at companies and projects of all sizes, I always cringe when I hear prescriptive ideas about some abstract approach working or not working. In my experience, lots of different things can work, but there are more ways to fail than to succeed. When we're talking about large scale software projects with fluid requirements ultimately success hinges primarily on having competent individuals and trust between them.
Without trust everyone is trying to cover their own ass, and in the case of large projects most of them will easily succeed since you only need one scapegoat. This is the type of environment where detailed estimates are demanded so that management had a paper trail, or where engineers implement the letter of a PRD and never propose changes to inconsistent or awkward requirements because it's too much energy and they'll be gone before they have to deal with the tech debt anyway. Often times in these type of environments someone will propose a process such as scrum to address particular pain points, but layering a process on a dysfunctional team doesn't address the core issue; at best the routine can shield individuals from chaos, but it won't actually improve throughput in any meaningful way.
At the end of the day, the best you can do with large scale estimation is get a handful of your best engineers who can roughly envision what needs to happen and have them chalk out a rough plan at a very coarse granularity and with key assumptions enumerated. Then with your best product people chalk out a strategic roadmap showing where they believe the product should go over the next 5 years so they can take that as input into account for architectural strategy. The key thing is that everyone understands that all long-term plans are subject to unknowns and change for all sorts of reasons—the point is not to pin people down but to leverage individual expertise to develop a best guess at what is possible. This is where trust is at its most tenuous and stands on a razor's edge; all it takes is one bozo to treat these things as guarantees and start throwing people under the bus when things go wrong, and before you know it trust is gone and everyone is in cover-your-ass mode. Now the group has lost the ability to accomplish the most ambitious goal of which they would otherwise be capable.