Good article discussing some of the higher level project management signs that you are digging a bigger and bigger hole for yourself.
Technical debt, as defined by my colleague Dave Smith, is the debt a company “owes” to a product they persisted in shipping in an incomplete or unstable condition.
- If you never assign enough testers, or you don’t have an architect, you will incur technical debt.
- If you don’t architect the product, and update the architecture as necessary, or if you don’t do a high level design before starting to code, you will not have a congruous product.
- If you start limited testing late, you’re guaranteeing yourself technical debt. You have many opportunities to test early and often: requirements inspections, design reviews, code inspection or peer review, unit tests, daily builds and smoke tests (tests to verify the daily build works at least a little bit), peer review of fixes in addition to system test.
- At a minimum, assign an overall project manager or program manager, so someone is pulling the entire project together. Projects without project managers are highly risky, and in my experience, always fail.
- Develop release criteria for every project, so that everyone on the project, and the project sponsor understands what your company will receive for its project money.
- If you’ve changed your lifecycle, you may need to change your process. What you do and when you do it will make the lifecycle successful and keep down technical debt. If you’ve never planned when to do inspections and reviews, start with something small, such as peer review of defect fixes during system test. I’ve found that a nightly build and smoke test helps find defects faster, and helps everyone realize when the product is not ready to ship.
AYE Conference articles – Climbing out of Technical Debt by Johanna Rothman