Never Compromise Your Way Out of an Opportunity
For years, I’ve heard IT managers throw “Budget, Time, and Scope - pick any two” in the face of challenging projects or as an excuse for poor quality. To continue to mix metaphors, it’s like saying “do you want the Cadillac or the Chevy?” when the actual business need would best be satisfied with an order from Amazon.com rather than a new car to drive to the grocery store. It’s not just a matter of identifying the right scope of features to be included in the time and budget constraints, but making sure that you’re applying the right kind of talent and resources to solving the right business issue.
Instead of telling customers what compromises they have to make to achieve the outcomes necessary to maintain a successful business, take a second look at the assumptions you’re making in project constraints.
Explore a different technology - All of a sudden, you may be able to achieve an equivalent or even better outcome for that particular project at significantly less cost. For example, not all statistical modeling needs have to be satisfied with a $10,000 per seat license for SAS. Many can be achieved just as easily with the Open Source and free R or Python (though that’s not to say that those tools are sufficient in all circumstances).
Consider the talent assigned to the project - Some teams are specialized in the technologies they know how to use. For example, a team that does primarily Java web application development is likely to simply default to Java for every assignment, because they know it best. It may be much faster to simply write a BI report or a SQL script to address some needs, though. Building teams that have a diversity of skills, or skillfully assigning tasks to the right teams, can be a huge time saver.
Some best practices improve delivery speed - When faced with delivery deadlines, it is typical for developers to start cutting corners on their work. Skipping unit testing is a classic shortcut that can very easily come around to bite the team in the end. Some best practices are out there to provide support in the event of a production problem or prepare for the future in ways that seems unnecessary and probably are. Other best practices (e.g. source code version control, continuous integration and test-driven development) are well known to accelerate feature delivery significantly. Even if there is a ramp-up time, teams that follow productivity enhancing best practices will reap the benefits quickly.
Invest in team-building - The shared culture and values within a team can create dramatic friction or an accelerating impact. When teams communicate openly, collaborate around common objectives, and can trust each other to contribute their best, then results get accelerated. That kind of culture doesn’t magically happen. It takes an investment in time together outside of work tasks, but doing so changes the productivity curve.
Having a team with the right tools, skills, practices, and culture in place creates new opportunities to shape that project equation.