Stop Killing Money!
Let’s say you’re an executive, board member, or investor, and you’re tired of watching money die as you fund project after project that doesn’t meet desired outcomes.
Or maybe not: too often it seems evident that executives and board members are not accountable to results, are spending other people’s money, and have no clear stake or “skin in the game” regarding the outcomes of the software projects in their portfolio.
Back to reality
Maybe more relevant, let’s say you’re an owner or customer who actually relies on the good results of a company’s effective software project management, products, or performance.
Nonetheless, year after year it’s like Groundhog Day all over again in information technology, software project management, and product development.
29 Ways To Improve Your Software Project Management
Govern Well (Set Clear Guidelines And Manage To Them). It’s Your Money! Insist On It.
- First, document alignment from the board through the executive team to the product and project teams about the goals of the initiative.
- Next, if your software project relies on agile teams, and if the project completion date is important, agile teams must use estimation approaches that enable estimation, or at least sizing, the tasks in their work breakdown. Pure implementations of Kanban will not work. Without meaningful, scientific estimates, it’s not possible to calculate a meaningful project schedule.
- Use the same governance structure across the project life cycle.
- Communicate governance changes sufficiently broadly that alignment is sustained or improved.
- Align the product requirements, schedule, resources, and budget.
- Hold regular project execution and steering reviews, based on an overall product roadmap. Ensure results of each review aligns with overall project goals.
- Judiciously conduct phase-end reviews at all levels and phases of the software project. Take review findings as action items to make governance, organizational, and project execution improvements immediately.
- Finally, make sure project roles are well-defined, communicated, and understood across the team. Set clear expectations about who’s responsible for what.
Select And Onboard Software Project Team Members Wisely
- Start by hiring all team members as a unified team.
- Build the team of cooperative teammates who have worked together before.
- Change team members at natural breaks in the software project, like ends of sprints or project phases.
- Hire team members with leadership traits. Elevate those who take ownership for overall project success. Inspire high performance, self-managing teams. Crush “us vs. them” and “that’s not my job” mentality and behavior.
- Develop your project sponsor — the most important role on any project. If the project sponsor leaves significant risks and issues unmanaged for more than three weeks, then fire your sponsor. If you won’t fire your sponsor, you’ve overcommitted them and left them and the team in a no-win situation: fire yourself.
- Create a public project calendar from day 1. On it, note business holidays for all businesses involved in the software project. Note national holidays for all countries represented in the project. Note vacations and other planned days off for all team members. Record key project activities, including key milestones, deliverable due dates, phase end reviews, test phase begin and end dates, sprint begin and end dates, deployment and release dates. Update this calendar monthly.
Keep It Simple (Seriously)
- First, keep the number of work streams to a handful.
- Reduce the size of any software project phase to no more than 50% bigger than the recent largest project the organization has successfully undertaken.
- Limit the number of months per project phase to 3, at most 6.
- Reduce any team size to 7, plus or minus 2.
- If schedules matter, ensure teams break down all tasks to a size where estimates are 2 days or less.
Buy Smart (Manage Your Software Project Vendors)
- Don’t outsource your success. Where it’s necessary to outsource, write unambiguous contracts with clear scope, schedule, and ownership of responsibilities.
- If you hire a third-party project manager because you’ve overcommitted and you just want somebody to blame, fire yourself. Then, after you’re no longer on payroll, tell them and the team what you’ve done so they don’t spend the rest of their careers in therapy for the PTSD you’ve precipitated.
- Manage vendors rigorously. Expecting vendors to get it right doesn’t create success. Working with vendors to make sure they get it right ensures success. The number one failure of modern enterprise is outsourcing their entire operation to the point they’re beholden to vendors who own them, overcharge them, and offer no innovation or business value. Ask me about this over a beer: I’ll name names.
- Next, don’t let third parties design your system, unless they’ve designed systems like yours before, and you want a system just like the other one they designed.
Align Teams (They Need To Work Together Effectively)
- First, involve the software project manager and the rest of the team as a team from the beginning. Immediately hold a project kickoff meeting with everyone present.
- Second, ensure all stakeholders have a stake in the same positive outcome. Create organizational goals and incentives that link individual performance ratings to organizational results. If you’re afraid to do this, you hired wrong. Fire yourself and tell the committee who’s replacing you what they need in your replacement, so the same disaster isn’t replicated on the next project too.
- Make sure a specific person or team is responsible to document requirements and rules, so your team has a prayer of getting the desired result the first time. Failure to document satisfies the conspiracy-minded and control freaks. However, it ensures no one can successfully build the product, including your own team.
- Neutralize threats beyond the team. Keep the team small enough that it’s nimble in the context of the organization, but big enough that it can sustain a critical mass and life of its own until the project is successful.
Create and sustain a software project management culture people want
- Create and sustain a context that supports team members at all levels. A complex matrix of people and roles quickly becomes necessary and immensely helpful. Everyone in a managerial, mentorship, or leadership role will have 3 or more reporting to them (at least informally) and everyone will report to 3 or more others for functional, technical, and project leadership or mentorship. Initially, this can feel overwhelming, and even threatening. The important thing is to make sure people have multiple sources of support and help, for each role and project they support. This approach improves organizational cohesiveness and engagement. There’s more “glue” between every person and the overall organization.
- Identify fear, misalignment, and uncertainty everywhere they exist, and address them immediately. Get to the source of them. Resolve them. Build and execute a mitigation plan relentlessly. Replace team members who are too paralyzed or cynical to get on board.
Do these things, and you give your investment dollars a fighting chance to go into the world and bring back hostages. Don’t let dollars die in the CHAOS of your organization’s disorganization.
Assess your current software project management performance
- Assign yourself 1 point for each of the above items that are true for your project. If you have 10 points or more, your project is in a position to satisfy stakeholders. If you and your organization will make the changes necessary to realize still more, your success is increasingly likely with each new upgrade.
- Should you begin project recovery, or do you need a priest?
- What other examples do you have of project success factors? How have you seen them executed successfully?
Share advice, information, or referrals on this topic in the comments box below. I appreciate your contribution and will use it to improve!