Behind every great team and project, there is this one person titled project manager. He/She is the one who does the ‘dirty job’ to such as to plan, estimate, communicate and make sure everyone in the team is happy — because that’s how people produce great work.
At Oursky, we have a couple of project managers in-house who share the heavy workload of managing our client/own projects. So I asked them for software Project Management tips, here you go!
We break tasks into manageable pieces and keep things as lightweight as possible
By breaking big tasks into smaller chunks and distribute them to the team, everyone will be more capable of staying on top of projects. Every element completed by our developers will be documented, including when and what issue to be completed by whom.
Developers could be easily distracted if you just give them a big picture. That’s why we prefer breaking it down to actionable items. Write down the detailed descriptions of each task, weigh the effort required for each and then start according to priorities.
We believe the longer a developer stuck on one task, the harder it will be for him/her to move on to the next; they may feel unmotivated if they’re not able to finish the tasks they’re assigned to. Therefore, we pay special attention to tasks with long expected hours to complete. This helps us know whether an issue is blocked by anything unexpected.
We ensure code quality so the next developer won’t have a hard time maintaining
It is quite common even for developers to totally forgot the context and logic for a piece of code he developed 6 months later — thus if the code is not already self-explanatory or doesn’t have a well-defined architecture, future maintainer would have a hard time doing his/her job.
At Oursky, we have very strict guidelines for code quality assurance:
- Each pull request requires code review done by a tech lead
- At least one code reviewer for each project.
- Automated lint checking, cyclomatic complexity, and test coverage.
Since we provide the source code and git repository to consulting clients, they have all the rights to maintain or edit any way they like. It is also an important steps to build reputation and trust from clients.
We use different PM tools in different situation
For the last couple of years, we have settled with Basecamp for non-tech consulting clients and internal projects; For technical consulting clients and our development teams, we used Github Issue Tracker with our own synchorization tools to visualize issues in Trello.
To make the world a better place, we made the Github x Trello synchorization tool public at gitlo.co, check it out. While how to use Trello for software project deserve it owns blog post 🙂
We build our own tools to develop faster and better
Don’t repeat yourself rule does not only guide us in programming, but also in every aspect of our work. We’re extremely time-driven and we love finding the best way to speed up our process.
However, there’re also times when we couldn’t find a good existing solution and we ended up building our own one:
- Chatops for deployment and iOS / Android build via Slack
- MakeAppIcon, simplifies the process to resize and generate app icons.
- ShotBot, generate and submit screenshots to iTunes Connect / App Store in bulk.
- Gitlo, which allows project managers to go on Trello and see all of the issues created by developers on GitHub.
But what about development? We’ve tried many other BaaS like Parse and Kinvey, but none of them are flexible enough for our projects with scalable backend.
Thus, we built and open-source Skygear, our own reusable backend, and hoping it helps other programmers and startups to develop quicker.
Every startup has their own way of doing things.
We hope this guide will get you closer to finding the project management process that works for your team. After all, people work in different ways, and it is Project Manager’s job to keep everyone happy. 🙂
How do you manage your projects? Comment below if you have tips to share.
If you find this post interesting, subscribe to our newsletter to get notified about our future posts!