Software Development 101: Maximize Long-Term Throughput
We’ve covered how to hire a team to build your product, now let’s talk about how the product actually gets made. This article is part 1 in a 5-part series.
The objective of your development team should be to maximize its long-term throughput, which I define as the rate of features being delivered per unit of developer time. We ensure consistently high throughput at SmartLogic by structuring efficient processes around the following key tenets of the development process:
-
Meetings & Communication—Meetings and communication serve two vital purposes:
a. enable developers to know what to build
b. inform business folks of immediate or potential bottlenecks -
Development Backlog Management—The backlog is an ordered list of all features on the development schedule; a comprehensive list of what the developers will work on in the nearterm. Read more about development backlogs.
-
Risk Management —There are sundry risks that can and will adversely impact throughput. Maximizing long-term throughput requires being cognizant of risks under the team’s control and taking measures to mitigate their impacts. It’s also helpful to think of risks that are not under the team’s control.
-
The Process of Writing Code: last and CERTAINLY not least is the process by which developers write code.
Why Long-Term Throughput?
We optimize our agile software development for long-term throughput because unlike short-term projects and gigs that have a defined lifetime or scope, developing a product isn’t one-and-done. If your product is successful, you’ll be releasing features ad infinitum. Quality, sustainability, and consistency for your time and budget are more important than rushing along towards features or cutting budgets whenever possible. With a steady, consistently high long-term throughput you’ll be able to predict where your budget will take you in terms of your product.