Django (part 1)
Recently a startup that I work part-time for asked that I transition to back end development. They were happy to have me help, even after hearing my disclaimer that I had little experience with the framework that they were currently using, Django. Eager to learn, I accepted the offer and spent the past month learning the ropes; implementing features here, bug fixes there. This is the first post in a two-part series. First, I will cover my philosophy on working in a completely new framework and how I account for billable hours. Second, I will cover the lessons I’ve learned after diving into the deep end of developing a Django brown-field project. If you want to learn more, I also have a tangentially related post in my old AAR series specifically about python development.
Starting work on a brown-field project in a framework that you’ve never used before presents two challenges. One: how best to approach learning the new framework and two: how to account for the work when billing.
I find that just jumping in and replicating the existing patterns is most effective for rapid development. Only when I encounter a novel situation that doesn’t have a precedent in the existing codebase or doesn’t behave as it does in other instances am I forced to take a step back. If it seems like a simple blunder on my part I generally just execute a quick Google search, explore the top three results, and move on from there. When it seems to be a more fundamental concept that’s eluding me however, my next steps are: find a tutorial, execute it from start to finish with a toy project, take copious notes, and correlate what I learn with the official documentation. A couple examples of tutorials I’ve found to be particularly useful in this regard are: https://egghead.io/courses/getting-started-with-redux and https://medium.com/technest/build-a-crud-todo-app-with-django-and-react-redux-8ddb0b6ac2f0. All the time spent on these toy projects occurs off-the-clock, of course. Which brings me to my next topic, billing.
Before I get too far in, I’d like to give thanks for how truly blessed I’ve been with employment. I currently hold a full-time job in addition to my part-time work. As a result my part-time work is purely recreational in nature. If I can get paid for practicing my craft outside the 40 hour workweek, why not? Because of that, there’s no temptation to flub numbers in order to make ends meet. I do my part-time work because I enjoy it, not because I have to. That means that if I’m working on a new feature for so many hours, only to find that it’s not functioning as intended because I implemented it in a flawed way due to my ignorance, I can scratch it. When working in my bailiwick of native mobile development I’d say I probably cut 1 hour out of every 12 charged for this reason. But because of my inexperience with Django-React my recent work has been almost reversed. For every 12 hours I work I usually end up only charging for three or four. Which, in a weird way, is what I’m truly thankful for. I don’t need to worry about that lost billing time because it’s not like I’m going to miss a rent payment or get my power shut off as a result. I don’t need to ever feel the temptation to compromise my morals for my work. I understand not everyone has this luxury, and I must say that those individuals are stronger than me for facing the specter every day and overcoming it.
comments powered by Disqus