A software house’s guide to PROJECT MANAGEMENT
Project management in the software industry has been evolving almost as fast as software itself. Over the past few decades we had to reinvent the traditional approach to managing people and what they do because it no longer fits the new reality. There are several approaches that benefit different types of organizations and projects, but the overall tendency skewed towards flattening the hierarchy and involving more people in the decision making process. Let’s take a closer look at the way we manage projects at Code Poets.
A traditional approach to project management in IT stems from other industries. After all, we also sell products (eg. SaaS) or provide services. One of the most widely used methodologies is called “waterfall” and it basically means making a big plan upfront, realizing it step by step and, finally, releasing it to the customer. Think of it as building a house: you get the plans from the architect, the builders complete tasks one by one until… you’re ready to move in.
In the past, this approach turned the Project Manager into somewhat of an authoritarian leader — what he says, goes. He was the one in charge of delegating tasks, managing the scope of work, customer relations, timelines and budgets. All new stages, ideas and changes were initiated by him.
Naturally, no modern-day IT company’s culture could sustain such a type of leadership. It simply won’t be accepted by other employees, who also want to share their ideas and have influence over the direction of their work. That’s why these days a traditional Project Manager remains a leader, but he has a much stronger focus on the whole team.
Classic project management methodology is used and, in fact, very useful in quite a few software houses. It’s been tweaked, updated and adjusted to the ever changing IT business scene and serves its purpose well — in some organizations. Just how well it works depends on a lot of factors, like how big the company is, what kind of clients it works with or the specifics of the industry it relies on.
Waterwall framework performs well if the project is rather short or the client is able to define his expectations very precisely upfront and commits to keeping them. However, speaking from experience, that’s rarely the case… which is good! After all, we want to take advantage of how innovative the software industry is and make sure we can keep up by altering the requirements as often as needed.
On the other hand, the classic approach to project management doesn’t fully take advantage of one of IT’s most important characteristics: rapid innovation. When developers aren’t in constant contact with the clients, it is much harder to continuously address new ideas or objections — the methodology lacks… agility.
An agile wave
Over the past few years, the A-word has caused a big stir in the IT industry. It came as a direct response to the old way of doing things — one that made sure every participant of the company-client communication line had a real say. In the agile approach, the PM goes from being a link between the developers and the customer, to a facilitator. He participates in the relationship on the same terms as everyone else, while his unique set of skills helps moderate and organize the whole process. This translates to more responsibility for the whole team, smoother communication with the clients, better grasp of the project’s goals and the possibility to address new issues as they come.
An agile project manager makes sure there’s transparency between the customer and the team. That enables trust to grow and strengthen the relationship, as well as lets the client have an overview of what exactly he’s paying for. Hence, making good business decisions becomes easier, and pivoting — possible. The project manager often takes on additional roles, such as that of a coach or a thought leader who helps each team member develop himself professionally.
Managing projects at Code Poets
When I joined the organization, most developers weren’t in touch with the clients — that was the PM’s role. I had a lot of enthusiasm for agile methodologies and wanted to inject this spirit into our work right away… which was a mistake. The programmers felt that the scrum meetings were unnecessary and drew them away from what they should actually be doing. They also expressed some doubts and lack of confidence in their soft/business skills when it came to regular talks with the clients.
A team used to traditional management needs some time and, most importantly, education to accept changes. We had to go back together and introduce a new way of working step by step, starting with a full grasp of the agile principles and why it makes sense to follow them. Everyone saw the benefits almost immediately, mostly in a better communication flow with the customers. They started contacting our technical team directly, which made the cooperation much more efficient.
Every industry requires a degree of confidentiality, but in pharma and cheminformatics it is absolutely essential. Making our daily work transparent was a huge stepping stone in building trust and helped cement the relationships we have with our clients. They can see exactly where their money goes and feel like they have a real influence on the project’s direction all the time, while before they had to wait for the end result to judge it.
… as a Project Manager in Code Poets is multi-dimensional. On paper (or in my calendar), the majority of my day is spent in meetings — with customers, our team or both. We never breed meetings unnecessarily and always make sure to follow an agenda in the name of being efficient, but when there are a lot of stakeholders and you value real-time communication, you have to make yourself available.
It’s important to stress that rather than running the meetings, I facilitate them, meaning: I make sure the communication flows, but I don’t manage it alone. Actually, it’s my preferred approach in everything else I do, including:
- developing the team, not only in project terms, but also increasing productivity and job satisfaction,
- ensuring smooth cooperation between various groups,
- creating opportunities for self- and career growth,
- organizing professional meet-ups, training sessions etc.,
- encouraging #teamspirit with frequent after-work meetings, parties, trips and other initiatives,
- navigating difficult situations, supporting the customer in solving his issues.
Project management in a teal organization
Several months ago, we started making the transition to a teal company. One of the defining traits of this operational model, besides wholeness and a deeper sense of purpose is… self-management. This approach empowers each employee to make decisions that affect others. So, where does that leave me, the PM?
First of all, it should be mentioned that teal values are very much in line with the agile methodology. They support and strengthen the feelings of responsibility and trust. Knowing that I’m not the only one who’s worried about the project’s end result makes my job easier and less stressful. It also leaves me with more time to improve the workflow, quality of the project and cooperation, instead of running around, trying to manage the team and be a proxy for the customer at the same time.
Teal organizations place a big focus on developing soft skills of each employee, which falls in line with the agile PM’s competences, as well as my personal interests. This means that I can shamelessly devote myself to organizing meetings and coming up with initiatives that extend our skill sets.
Facing the obstacles
Naturally, it’s not all sunshine and rainbows. Even though my job brings me loads of satisfaction, I still face challenges almost on a daily basis.
Some of our client’s haven’t fully transitioned to an agile working mode yet, and we have to accommodate them in that regard. That means bending our rules and adjusting the workflow (eg. mixing up the teams to fit client’s needs perfectly or working the “second shift” because of time zone differences), which must be a bit taxing on the developers — especially those who work on several projects at the same time. We try to provide a lot of support and help our customers switch to a new management and cooperation system, but that takes time and effort — on both sides.
It also comes with additional challenges of a more administrative nature, like in case of communication channels. We have some clients that insist on communicating using their own tools (and we fully respect that) due to privacy and safety concerns. Again, that provides the developers with another hussle, but it's part of the job. At the moment, we are dedicating some of our brain power to solving that issue in order to increase our productivity.
Project management is an integral part of software development and it’s a really bad idea to disregard it. No methodology is perfect and none should be disqualified, as long as you choose it consciously.
Here at Code Poets, we’ve been implementing the agile approach because it fits our clients’ needs the most and helps us grow as an organization — not necessarily in the numerical sense of the word. However, we remain flexible and adjust the work mode to the project’s specifications and customer demands.
If you’d like to learn more about our approach to project management, discuss your idea, or, simply, chat with a like-minded person, don’t hesitate to schedule a call with our CEO — he’ll make the time for you.
I might jump on it myself as well!