Skip to content
Bytes by Ying
Go back

Changelog Evolution

Edit page

“If you can’t measure it, you can’t improve it.”

Peter Drucker

(Update 03/17/2019): As I am currently writing this, I am quite behind on my seven-part series on concurrency models in Python, as begun in this post back in January. If I have mentioned this to you in person as something I wanted to do and to check my blog for updates, I apologize for the lack of progress on this front. It is still on my roadmap. Ideally, I’ll finish it up before PyCon 2019, and posts will be updated out of order (posted after this for their original due dates in January and February). Newer posts will be created after this one.


I had discovered Keep a Changelog shortly before joining my current company, and I was impressed by its arguments for why you should keep and maintain a good changelog. That need became ever more visible in my current role, where until very recently, there wasn’t a dedicated product manager for our small team. If I didn’t maintain a changelog, I’d make it more difficult for myself to inform internal customers, prospective additions to the team, or stakeholders about the work done on this project, and I’d lose a lot of the hard-earned knowledge to the void forever, with all the consequent and compounding problems that result from lossy communications. So I decided to maintain a changelog and see how it would help my development workflow, and if I could glean any insights from it after maintaining it for a while.


Lessons Learned


All in all, I’ve found maintaining a changelog to be highly worth it. It’s pretty much the only document that I constantly update and remember to update (design documents, flight rules, etc. become outdated at a brisk pace), I love the portability and independence it gives from deployment platforms (no GitHub releases and form-filling on web apps), and it’s great for giving a birds-eye view of what I have done.

(Correction on 2019/05/11): The above mentioned changelog was originally made available as part of this blog post. Due to a misunderstanding, it has been taken down.


Edit page
Share this post on:

Previous Post
Monads aren't as hard as you think
Next Post
Concurrency with Python: Conclusion