How Our Project Managers Manage Software Projects

Managing software projects is no easy task. In this post, we will share what our project managers (PM) do and how they work with developers on software projects, which begins the minute our PMs receive a wireframe from the designers.

Estimate effectively so everyone can expect the roadmap and their workload

Project Manager Estimation Sheet

After our designers have finalized the wireframe, the PMs will work on the estimation with the developers. They will first divide the wireframe into different sections such as preparation, authentication, and layout. Then, they will find matching sections and features based on the pages in the wireframe for an overview. In the estimation sheet, take a look at Column D and H, you can see ‘plan A’ and ‘Optional’ alongside ‘iOS’, ‘Android’, ‘API’ and the ‘Total’ (number of days). These columns show the time estimates of features, which in our case, are expressed in man-days. Our project managers will verify the time estimation with our developers and later on send it to our clients. If the estimate has exceeded the client’s budget, we will discuss and move some of the items to ‘Optional’ for next phase.

For each project, there is always a buffer period, which is normally 3 man-days for feedback and bug-fixes.

I highly recommend you this style of estimation. It helps project managers to schedule milestones and provides a very clear roadmap for not only project managers themselves and developers but also your clients and product teams.

Break down the tasks and keep it small

To work with developers, especially junior ones, project managers need to break down the tasks and let developers know what they need to deliver in terms of functionality.

Each task should be small
Project managers at Oursky will split tasks into manageable pieces. Each piece will be timeboxed for 1 / 3 / 5 / 7 hours. If a task’s timebox exceeds 7 hours, project managers will further break the task down. The reason why each task should not exceed 7 hours is to avoid “guessing”, as it is quite common for junior developers to underestimate a big feature or user interface, thinking they can complete the task in, let’s say, a week’s time, but it ends up taking them 3 weeks because there are a lot of details hidden behind that big feature. Planning each task ahead and breaking big tasks down will have lower odds of task underestimation.

Take building a “Chat” function as an example, chat features are way too broad and vague for developers to work on. So project managers might break it down into:

“Set up Skygear chat server”

“Chat conversation interface”

“Chat user lists interface”

“Create a new chat room interface”

“Offline / Caching functionality”

“Integrate chat functionality”

Not only does timeboxing help project managers give accurate time estimates, but it also helps them keep each pull request small and easy for code review. It definitely boosts the team’s productivity.

Our project managers and developers have daily stand-up meetings

Furthermore, we’ve found that stand-ups are one of the best ways to keep everyone on the team in the loop, besides our Slack chat rooms and GitHub issue tracker. Thus, we have a stand-up every morning. Project managers and developers will go through what they’ve done yesterday, what they’re going to do after the meeting and the obstacles they are facing. The bottom line is that we need to keep the ball rolling. We need everyone to be on the same page and the PMs to spot problems and difficulties the team encounters; they’d turn to the design leads and tech leads for help and advice when he/she thinks it’s necessary.

To keep things in sync, our PMs will give clients and the product team an update on the progress every week, and the clients and internal product team are also required to give us their feedback and opinion on the staging apps / system.

This is how we manage software projects at Oursky. Free feel to ask us any questions or share your company’s project management process with us in the comment section below!

Have any other user interview tips you’d like to share? Leave us a comment below.

If you find this post interesting, subscribe to our newsletter to get notified about our future posts!