Today's lesson learned is about how to scope a project under resource constraints in order to keep it as lean and beneficial as possible. This is largely about determining the minimum viable product (MVP).
The MVP of software is not the person who writes the most SLOC, or has the lowest defect defect density. It's certainly not the person who stayed late for weeks to deliver a feature. To the contrary! The MVP of software is the one who, through Socratic Methods or whatever it takes, gets the size of the product whittled down to the core. To the minimum deliverable product without any wasted efforts; with only useful features; with the lowest cost, highest quality, and most business value. (see this previous post for more about the importance of quality)
Joking aside, here is some seriousness about MVP - Minimum Viable Product (we really need a better TLA for that).
Identifying the MVP is critical to keeping down costs and/or impact to other efforts. It will result in earlier delivery of value, higher quality due to narrowed focus, and decreased initial efforts. All of these attributes are linked in a tight Tango dance.
In order to achieve the MVP we start at the end game. What is the most important output of the project? Which feature or set of features delivers the most value and how can that be delivered first? Gold plating is a plague on software, we've all seen it in those features we never use, some of us ;) have even been guilty of adding gold plating ourselves (I confess).
So, raise your right hand, place your left hand on the screen, and repeat after me:
From this point in time and into the future, <state your name> will be sure to ask - "what is the one most important deliverable?", "What can be deferred?", "Is this feature feasible from a business perspective (cam the business support it)?" I will refuse to accept "all of it" as an answer unless backed by sound reason. I will not add features which I deem "useful to the users", nor will I suggest such features get added without proper analysis. If they become necessary, they will be implemented later. I will determine the end game before I start.
This is not an easy feat, politics will likely be at play. The boss's offspring, a valuable client, a controlling interest may have something grand and glorious in their heads. They may insist. They may not be easily swayed. This is why the Most Valuable Player is the one who can keep things under control and still be a hero in everyone's eyes.