Lean Project Management: Field Notes from 9 Years of Development

When Oursky first began all three of us founders were project managers (PMs). But as our company grew, we faced the same quality control issues as other companies. With over 50 team members now, we needed to strike a balance between nurturing junior developers who may not have as much experience and ensuring code and design quality for our clients.

We began bringing onboard new PMs after passing 10 simultaneous projects. Our PMs are the glue, drivers, and client contact points for projects, not just account managers. Below are the multiple hats great PMs wear.

Note: We emphasize that everyone on a team is responsible for product quality, from designers and developers to PMs and quality assurance (QA) colleagues.

What does a PM actually do in a tech company?

Photo by Christopher Burns via Unsplash

Unlike many other agencies, PMs and account managers are the same individual at Oursky. Our PM plans a project, keeps it on-track and ensures the quality of the final product. As acting account managers, they also advise clients on what’s possible within their budget, the technical considerations and provide progress updates.

At Oursky, the PM is usually introduced when the sales team is confirming a project. Once the deal is signed and the project officially kicks off, the PM will open a Basecamp project so that the client see our progress and leave messages. A complete list of tasks expected of PMs is another article in and of itself, but just to give you an idea, here is what a PM’s checklist looks like during just the initial project setup stage.

Organize meeting for tech lead and developer to discuss technical concerns in the project

API doc initial draft is written

Database ER diagrams are prepared

Server architecture is planned

App structure / navigation is planned

Model unit test case is set up

Analytical stats collection is defined

Queen or King Estimator

We categorize the issues and features of the app, weigh their significance and prioritize them.

The first step is to figuring out the business goal of the project, which is done when a new project is confirmed. PMs begin by providing an A and B project estimation (measured in billable man-days) based on the requested features and budget. The reason they provide at least two optionsis because clients usually revise their product once they realize the price of the original project scope. It usually at this point that PMs also ask a designer to begin working on the wireframe.

Once the main components, such as key features, budget, and timeline are settled on, the PM will assemble a team based on each colleague’s schedule and platform focus. Our developers generally focus on Android, iOS, or web development, but are full-stack as they are expected to take ownership of complete features. The key features are then prioritized and features are broken down into two-day maximum tasks.

Being Chief Chaser and Maintainer

Photo by Quino Al on Unsplash

Another major role for a PM is maintaining communication channels. This begins with a daily stand-up meeting with Waffle.io integrated into a GitHub project for all development team members to touch base. The PM will go through new issues and prioritized client requests before making assignments. While the PM is the contact point for the client, they also need to know which requests are urgent (like critical bugs) and which should wait so as not to distract developers. Also, since our PMs manage multiple projects, they can often share relevant libraries and common issues that developers in different teams may not be aware of.

Build Once, Revisit Once

Photo by Margarida CSilva on Unsplash

Cohesion is just as important as communication. It should be noted that PMs aren’t the ones actually ensuring the quality of code. That task belongs to the tech lead. But what the PMs can do, and should be doing, is ask the right questions during daily meeting with the dev team, such as whether it is worthwhile to change the data structure right now given that a client is running a campaign. The PM will also ask for small details that can improve user experience, such as a change in color to indicate a status change to go with a minor bug fix in the same feature. In other words, the PM makes sure everyone is assembling their feature with the bigger picture in mind.It’s not just elegant code for its own sake. Quality code means the next person can spend time improving, rather than fixing features.

Catching the Details

Photo by Margarida CSilva on Unsplash

One of the most difficult things for new developers in the company is commit messages on GitHub and readable code for pull requests. As our company rotates developers between projects to ensure code readability, the PM must also ensure that an incoming team member is properly briefed and able to pick up the assignments to meet deadlines.

We’ve come up with the following guidelines for quality assurance:

Each pull request requires a code review done by a tech lead

Each project has at least one code reviewer assigned

Automated lint checking, cyclomatic complexity, and test coverage.

The PM is also the person who does a final check for a new feature and coordinates the QA tests once a build is finished. Once the team completes a project, we provide the source code and Git repository to our clients for them to maintain or edit as they like.

Our Project Management Tools

It’s not enough to just work with people. With so many tools available, a PM’s role is also to find the most suitable one for project tracking and facilitating efficient communication with our clients as well.

Our favourite is still Basecamp for non-tech consulting clients and internal projects. For technical clients and our internal development teams, we use the Github Issue Tracker that we’ve integrated into Waffle.io to have a Trello-like sprint overview. As a full company coordinating our developers’ workloads, we go back to the simplest tool: a spreadsheet scheduling developers for a specific project duration.

Conclusion

Photo by rawpixel.com on Unsplash

At Oursky, we are passionate about products. As we evolved from a 3-person team to a firm with 50+ staff, we recognized the need for an additional type of person: someone who could bring people together to do what they love, and to do it well. Actually, PM also stands for people manager.

If you found this piece helpful, follow Oursky’s Medium Publication for more startup/entrepreneurship/project management/app dev/design hacks! 💚

😻 At Oursky we’re all about helping brands and entrepreneurs make their ideas happen. Get in touch if you’re looking for a partner to help build your next digital product.