Automating PM Status Reporting
I am big on figuring out ways in which I can spend time more meaningfully. Part of this is a strategy to automate as many of the routine tasks as possible, to make sure that I can focus on the big picture - building products that deliver value to customers.
I should also preface this post with some context - I am a remote employee. Sometimes it’s hard to communicate what you’re doing and how you’re approaching the stack of tasks while hundreds of miles away from your team. What works best for me in this situation is to have a weekly report that I send out to my team, where I document the 3 Ps - Progress, Problem, Planned.
I’ve realized that I approached this problem in a somewhat un-automated manner - I would take notes in OneNote throughout the week, and then on Friday I would sit down, aggregate them and send them out. There was this extra step of aggregation and organization that would take a good chunk of time (I want to provide full context on the work done). Today, in a conversation with my lead, an idea struck me - I can make this easier. I keep track of work that I need to get done in Trello, with descriptions and context, that I can just automatically aggregate at the end of every week. And Trello already has an API that I can talk to!
So I embarked on a journey of writing a Python script that did just that! Meet
trello-report-generator - a Python application that is capable of connecting to a Trello board and then organizing the progress in a neat Markdown file. If you clone the repository locally, you can run the following command (from the context of the folder where the cloned content is located):
python3 reportgen make \ --access-key=YOUR_KEY \ --access-token=YOUR_TOKEN \ --work-board=Work \ --completed-list=Completed \ --next-list="This Week" \ --blocked-list=Blocked
You can get the access key and the access token from the Trello website - you should log in first before going to this page! I am intentionally not focusing on a full OAuth flow here because I am only intending this tool to be used for personal reasons - you can add custom auth logic if you intend to use this more broadly.
What this tool does is run through the three specified lists, ingests their descriptions and comments, and then creates three separate sections in the Markdown file, that cover all three buckets of items:
This can now be automated even further - I can plug this application into Azure Pipelines and make it run on a schedule, where every Friday it will query the Trello board and generate the report, after which it will check it into a repository that my lead has access to. Then it can post the link to the Markdown file in the Teams channel we’re all part of!