Project Management

How to master project management

So you’re starting your first IT project — be it your startup’s website, a new online shop or an innovative mobile app. But where do you note down everything that has to be done, share it with your team and track progress?

Or perhaps this is not your first IT project — you might have already done few of them. But you’ve had the feeling that you were constantly in meetings or calls with your developers to keep track of what’s going on.

It doesn’t help that there are a ton of tools out there — Kanban boards, Gantt charts, task list managers and not to mention the almighty spreadsheet…

So what’s the best tool for your project?

In the end, it’s all about who you work with and what’s the scope of the problem you are tackling.

Let’s drill down into two different cases.

Case 1: You are trying to send half a million tons of metal into orbit (working with Elon perhaps?), for which you will need to coordinate hundreds of engineers, a few government agencies and a lot of sub-contractors.

Case 2: You want to sell delicious, healthy, custom-mix mueslis online (cheers to our dear friends and one of CodeControl’s first clients: MyMuesli).

In the first case, you need a solid Project Management (PM) system. This includes a ton of automated reports, processes written in stone and an early-problem-detection system.

In the second case, you need something lightweight and flexible. A system that can grow together with your project and yet is powerful enough to keep all tasks and their details in a single centralized place.

For heavy and complex IT projects we use the industry standard, Atlassian JIRA, along with a bunch of other integrations and add-ons. While this does the job perfectly, it comes at a price.

1 Zqcbp-y76kj2H9DRCYSbuQ

What does a heavy-duty PM system cost?

Let’s start with the obvious: license costs are quite high!

Firstly, you need to pay for JIRA Software, the core system. Without boring you with too many pricing details: there is a cloud and a self-hosted version. Currently, the cloud version costs $7 per user per month, while the server costs $2000, paid once for 25 licenses (with 12 months of free updates and support).

You have to buy additional components (or add-ons, as JIRA calls them) separately. JIRA is a very capable system but without additional components, your fancy system is like a cannon without gunpowder (i.e. useless). So you need to put your hand deeper into your pocket to have a fully working system.

The real overheads include setting up the system in the way you want and maintaining it, which often is a full-time job in itself. Making changes, updates or upgrades is also costly.

In many ways, a heavy system like this takes away the possibility for your team to be flexible and adapt quickly.

That’s not to mention the time and effort you have to invest in on-boarding a new team member and explaining to them how everything works. It may not be an issue for a typical agency, but it becomes a huge problem when working on smaller projects with lots of freelancers involved.

To top it all off — developers rarely like using such systems (and you don’t want your dev team to be unhappy, do you?).

What does a small to mid-size project really need?

Flexibility! Your PM infrastructure should grow together with your startup or product.

Start with a lightweight solution. Use an adaptable tool that can easily be altered to accommodate your team’s needs. It should be simple rather than over-engineered — you don’t really need automated burndown charts for your two-month project!

But you do need your PM system to be a single collection point of information — one place to keep track of all tasks, their details, related discussions, documents, access credentials for testing accounts, and the like.

With the never-ending stream of emails, calls, different documents and chats, it’s easy to forget what you have discussed, where you wrote it down or whether you saved something. It pays to put everything in one place and make a habit of recording all details there.

Ideally, when your developer is sick but you need a crucial bug fixed immediately, you can effortlessly onboard somebody else with all the details.

Having everything in there is the first step, but it should be organized so that you can find what you need quickly. The worst feeling is knowing the information is there but you just can’t find it — especially while your investor or boss is waiting on the phone.

And arguably the most important thing: to be able to get a fairly good understanding of what’s going on with the project. Including who is doing what and if there are crucial problems that need solving — with a single glance.

Why disturb your developers with meetings and calls, when your PM system could easily provide you with an up-to-date overview?

1 qYGtYc5PUP-J7MWbSgmb5Q

What about The Trusty Spreadsheet?

If you have just a few tasks, then you can create a Google Sheet so that everybody can contribute to it anywhere and anytime, without wondering, “is this the latest version?”.

Add the tasks as rows, with columns covering name, description, status, owner and any deadlines. Congrats, you’ve got yourself a basic PM system!

Spreadsheets are great, but they easily become a mess when used for PM. Adding a simple screenshot is a pain. Discussing anything inside the document is almost impossible. So then you start sending images via Skype and discussing the details over a call…and there goes the idea of a centralized, single overview of information. Good luck finding that conversion you had later on.

Okay, how about a Task Manager then?

All of us have used Wunderlist, Evernote,, or something similar for our personal To-Do lists.

But even tools created with Project Management in mind (like Dapulse, Insightly, and Asana) are still lacking crucial functionalities that mean they aren’t a fully viable choice for PM.

Yes, these tools look sleeker than a spreadsheet. Some have a nifty checkbox before each task to easily cross off completed tasks from the list. You can even attach descriptions and comments, or assign people and set deadlines with automated notifications.

Cool, huh? But that’s basically it — just a fancy checklist.

What you are lacking is a process (also known as a workflow!)*. Tasks don’t magically move from ‘To Do’ to ‘Done’. There is a lot going on in between these two stages. Actually, this is where the real magic happens.

You know what’s waiting to be worked on and what is already completed. But you need to be able to oversee what is already underway. Plus, the development process happens in stages (or steps) that each task progresses through. Knowing which task is at which step is of great importance.

To solve this issue, Taiichi Ohno (an industrial engineer from Toyota) came up with a simple solution in the 50s, which was called Kanban.

*Asana added Kanban boards last year. Technically this lets you set-up a workflow, but it still feels more like a task manager than a Kanban tool.


Kanban started as an inventory-control scheduling system for lean manufacturing. Well, that’s how Wikipedia puts it ;).

Imagine a factory, where a part starts as a simple block of metal and then goes from one machine to the next. Step by step it becomes a gear wheel. It didn’t progress from metal block to a gear in one go, it slowly made it’s way to that state.

Where Kanban shines is while tracking the progress of the gear. In software development, we use Kanban boards with separated lists (or columns) for each step from your workflow. You can have as many lists as you like, but the classic and most simple setup is to have three: To Do, In Progress and Done.

Here is the basic setup for you:


Setting up your Kanban Boards

Usually, the project owner puts all the tasks into the To Do list as Cards (each task gets its own card) and orders them by priority. When the developer is ready to start working on a task, he picks the top card from the To Do list. Then he moves it to the In Progress list and assigns it to himself. In this way even when multiple developers work simultaneously on the project, the project owner can easily see which cards are currently under development and which developer is working on what. So you can spare (or at least drastically decrease the number of) status update meetings.

Also, this setup lets the project owner (you) decide which task (card) will be next in line for development. Plus, you can change priorities on the go.

Sign me up! But which is the best kanban tool?

Undoubtedly the most popular kanban tool out there is Trello — and we simply love it at CodeControl! We use it for all our internal projects and for clients’ projects, particularly those for which JIRA is an overkill. That means basically every time we work with a startup or build an MVP.

Trello’s biggest strength is that it looks and feels simple, but it is powerful enough to satisfy most startup’s needs regarding project management.

When you create your first Trello board, you might even say it’s too simple to do the job well. But you couldn’t be more wrong — remember what I said before about simple versus over-engineered solutions? It’s lightweight and easily adaptable, so you can change your workflow at any moment by simply adding or removing a column. This means it offers development teams the freedom to organize themselves in an optimal way.

Now isn’t that what being agile is all about?!

1 AJnsN1S Rz0rvzFyBKtv6g

So, what does Trello offer me exactly?

First of all, you can set up your own workflow (steps) by creating a separate list for each step in your process. At CodeControl we keep things simple and usually start with the following lists:

Backlog — we use it as a brainstorming column and put every possible task we come up with in here.

To Do — when a card is approved for development, we move it to this column and prioritize it. We strive to keep individual cards small. This means it has an expected completion time of less than one day of work. If a card becomes too big, we split it into several new cards.

In Progress — when a team member starts working on a card, he or she moves it to this column. The product owner can easily see what is everybody occupied with at any moment. They can also take action if a card stays in progress for longer than expected.

To Be Tested — if a task is not tested, it’s not done! So when development is completed, the card is moved here and gets assigned to whoever is doing the quality assurance. Which is usually the project owner for smaller projects, or a dedicated tester for bigger ones.

Done — only after it’s been successfully tested can the card be moved to Done. And if the test was not successful, then the card is moved back into the To Do list. Details are then added to let the developer know what has to be fixed.

In Trello every card has a name, description, comment section, due date and labels. Using the built-in filters and calendar view makes it easy to find what you are looking for. Also at the bottom of each card, you can see a log of all the changes — which is perfect for when you need to keep track of the progress made on that card.

Once a team member is assigned to a card, they receive an email for every change made to that card. If somebody needs to stay in the loop regarding a particular task, they can add themselves as a ‘watcher’ for that card. This means they also receive notifications for any changes.

Pro Tip: Assign only one member to each card to improve accountability. If more than one team member needs to work on the same card — then your task is too big. Split it to more cards and assign each of them individually.

But that’s not all…

A hidden gem in Trello.

“Yes, Trello is simple. And yes, it’s lightweight. But I want POWER!”

Well, you’re in the right place. Trello has Power-Ups and integrations — exactly what you need to fine-tune your setup, add some additional functionalities and essentially take your Trello setup from good to great.

We believe that customers should pay only for the exact time that the developer spent working on their project.

Because of that, both time-tracking and time estimations are very important to us. We’ve integrated a third party tool, called Everhour, into our Trello setup. Thankfully, the integration takes just a few minutes and is easy enough for non-technical people.

Everhour let’s development teams add time estimations to each Trello card and then track the time spent working on that card. Even when the estimations are a bit off, tracking the differences offers essential insights for any future decisions that the client, the project owner or the stakeholders will have to make.

In the past, we’ve used Toggl (instead of Everhour). Stay tuned for our next blog posts, if you want to know more about why we switched.

In summary

Before choosing your PM system, you should consider who you will work with and offer your developer(s) the freedom to change and adapt the workflow. It’s the best thing you can do to minimize ‘bureaucracy’ and maximize performance.

Overall, Kanban boards and Trello are an easy way to organize your project without over-engineering, spending too much time and effort on it or increasing admin overheads. It brings a much-needed structure to the development process. Plus it keeps it open for improvements and offers ways to upgrade. And most importantly, it brings out the best in a great development team and keeps developers (and clients) happy.

Author Blagomir Yanakiev

About the author

Blago Yanakiev is a passionate scuba diver and traveller from Bulgaria. Blago leads the Project Management team at CodeControl and can otherwise be found producing videos, working for NGOs and dabbling with graphic design.