Modern software for project management
A few years ago, I found myself working as a project manager on a new project. This was both exciting and daunting. Exciting because, as a software engineer, I felt I was finally doing something useful, and daunting, because I had no idea how to do it. The project involved using modern software tools to manage the software project, and it had all the classic problems. The development team was enthusiastic but disorganized; the project managers had a vague idea of how to organize the team but no clear idea of how to organize the software; the managers had a vague idea of how to organize the software but no clear idea of how to organize the business.
I learned a few things. First, that a software project, like anything, requires planning. Second, that modern tools can help a lot, if you learn how to use them. But I also learned that modern project management is like modern software engineering: nobody understands how to do it. People keep coming up with new approaches, and some of them are brilliant. But none of them are clearly better than anything else. Modern project management is like modern software engineering: nobody understands how to do it.
People keep coming up with new approaches, and some of them are brilliant. But none of them are clearly better than anything else. There’s lots of evidence that modern project management doesn’t work. But anyone who actually tries to implement a new plan sees that it doesn’t work. The evidence of failure keeps piling up. Modern project management requires PMS tools to beat competition because everybody keeps reinventing the wheel.
Project management is a lot like programming. Trying to solve a problem is the first step. Then you have to figure out which solution will work. And once you have a solution, you have to convince other people to use it. And it’s tempting, once you have a solution, to think you’ve solved the problem.
The things that make up software are infrastructure: computers, files, databases, programming languages, and so on. The software itself is just a collection of tools you may use to solve these problems. The things that make up project management are infrastructure too. You have templates, methodologies, tools, and standards. But these too are just tools you may use to solve these problems.
What’s important is what problems you have, not the tools you use to solve them, or what methods you use to describe what you’re doing. It’s tempting, once you have a solution, to think you’ve solved the problem. So be careful. If you identify your problem incorrectly, you may build the wrong solution.
Project management in Technology
A lot of software companies talk about being “customer-focused” but in my experience, they are rarely customer-focused. They talk about being “user-centered” but in my experience, they are not user-centered. They talk about being “agile” but in my experience, they are not agile. They talk about being “stakeholder” but in my experience, they are not stakeholders. The cause, I think, is that software companies seem to think that project management is something that happens on a team. Projects happen because teams do projects. Most teams do projects poorly.
A software project is like a bridge. The designer creates the blueprint, and you, the contractor, build the bridge in accordance with the blueprint. So, if you build a bridge according to the blueprints, you build a bridge that can be built according to the blueprints. Software companies think that using PMS tools is critical for project success. But project management is project management, not project building. Most software projects don’t build bridges, they build things that are not bridges. A bridge is a specific thing with a very specific function. Most software projects aren’t specific things with specific functions. Usually, their function is something more general, like making information easier to move around.
Software projects don’t create things; they copy things. They take existing things and make them work more efficiently. And when they do this, they almost always try to improve existing things. This makes sense. If you build a bridge, the bridge has to fit the existing terrain, and the existing terrain has to fit the existing bridges. But if you improve an existing thing, you improve the existing thing; you don’t have to fit the existing thing.