How to Be Your Own PM, Make Friends (With Deadlines) and Influence People (Mostly Yourself)
Tags: beginners, pm, productivity, softskills
Published: 2023-11-09 00:28:15

With bootcamp winding down, I found myself at a loss for what to write about here. Do I want to go into detail about my capstone project, and all the new technologies I learned to execute my vision? Do I want to take time to break down a key feature of Flask-SQLAlchemy that I had to learn on the fly to make my backend seamless? Or do I want to zoom out and get a little more reflective?

To answer my own (mostly rhetorical) questions, I think I'd prefer to zoom out a little for now, and think about the _how_ of executing both my capstone project and that cool Flask-SQLAlchemy feature (both of which I'll probably go into greater detail about here soon.) 

A part of my development process over the past month that I'm particularly proud of is the way I worked as my own Project Manager to create a full-stack, multi-page, cool-looking (if I do say so myself) and bug-free (mostly) application on time and with minimal stress. 

I get the sense as a new dev that Project Management isn't a skillset that's seen as "technical" in the industry, an erroneous perception that I think is filled with all the inherent gender biases around "hard" and "soft" skills. As someone who's been on un-PM-ed projects with other new devs, software development without Project Management can sometimes be a clown show. With these things in mind, I'd love to talk you through some tools I used to manage my project successfully.

## Scoping The Project

The first thing I did to set myself up for success was to outline a few different "ideal" versions of the project: one with all the stops pulled out that went above and beyond, a "scaled back" option with a handful fewer bells and whistles, and a utilitarian option that did the bare minimum. While the final product I demonstrated to the class had elements of all three plans, the process of outlining the options was very helpful for deciding what MVP (minimum viable product) should be. (I also included the "scaled back" option in my readme to show anyone who looks at it that I was mindful of scope and time constraints.) 

## Sprint Planning

We were given about two and a half weeks to pitch, plan, execute, and present our projects. I knew that without an outline of tasks and a clear sense of allotment of time, I would easily get distracted. And as cool as a Trello board would be, it might not be enough this time. After some research, I was recommended Linear.app, and I've never looked back. I love the clean and intuitive UI, and how easy it is to assign tasks different "cycles" (their word for sprints.) Using Linear and my own notes about scope, I was able to assign different tasks to their own weeklong "cycles" and stay mostly on top of my goals. 


![A screenshot of the cycles section of my Linear page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pxb4ncjded169qeeo0zo.png)
Another cool thing about Linear is that it can graph out your productivity by cycle and show you how many of your goals you've met in each sprint. This was really helpful for the next step. 

## Estimating Time (...and re-estimating)

I had frequent check-ins with myself (basically a one-woman retro meeting) using the graph feature on Linear and my list of still-open to-dos. In these checkins, I'd look at how long I'd spent on certain tasks and re-evaluate if my initial estimations of time were still accurate. I was proud to see as the project progressed how much more accurate my estimations of task length became.

## Forgiving Yourself

While my estimation skills definitely improved over the course of the project, they weren't perfect. There were a handful of times I wanted to deliver on a task and found myself running out of time. While holding myself accountable, I became better equipped to forgive myself and (when possible) grant myself more elbow room. Additionally, by starting scaled-back but keeping my blue-sky vision in mind, I was able to pull many of my stretch goals in after completing my MVP. 

## Other Miscellaneous Helpful Things

Making sure all my commit messages were clear and descriptive and that new code sections had brief comments describing intent (aka the "Memento" school of software engineering) was really helpful for staying on top of goals and remembering what had already been done. 

These are a few of my most helpful project management tips  from this project; I'd love to hear more about yours in the comments! I'll probably blog here more about my project soon.