For the last few weeks I have spent a lot of my free time rebuilding the GoDjango site. GoDjango has been a lot of fun, and I have felt bad putting it on a hiatus to get a new job and get married. So I decided i’m going to relaunch the site and really do things more intentionally over the haphazard way I did them before.
In order to relaunch, and make sure I don’t burnout and overstress I decided to lay out a plan, a long one. I stepped back and setup a timeline of things to do from coding to video production. With the relaunch of GoDjango.com coming tomorrow, and a long and fruitful future coming. I wanted to recollect on the 5 biggest things I re-learned doing this project.
If You Don’t Define Scope Your Sunk
Once I decided to go full steam ahead reworking GoDjango to make sure it was a success I wrote down 10 steps and gave my self 3 weeks to do it in. My biggest problem is three of the steps are things I had never done before, so I set about breaking down two of those. My steps ballooned to roughly 40 steps. I learned that I should have broken it down before I set a deadline so I wouldn’t have had to push it back to make sure I got it all done.
However, the question is would I have pushed as hard with 40 steps as I did with 10?
Minimum Viable Product is Smaller than You Think
I set out to have three key things done by launch. Only one of them will be fully ready with the others getting turned on in the coming couple of weeks. As I got closer to the deadline I really started thinking what do I really need vs. what would be nice to have. It turns out I didn’t need as much as I thought. So on launch tomorrow two features I really wanted wont be available, but they will be soon.
To mitigate this problem in the future I think I really need to take to heart “Launch and Iterate”. To be honest though it is hard you want everyone to have everything from day one, even knowing you will have more users later and they wont know the difference.
Proper Deployments Take Time
I haven’t done a full deploy in a long time. I have used heroku a lot, but I have felt like I lost some of the control I really wanted. Therefore, I setup a VPS just for the new GoDjango, and decided to do a best practices deployment. Unfortunately because I haven’t deployed in so long it took a lot longer to setup than I though it would. I should have better planned my deployment and built in longer than a couple of hours into my schedule for it.
Write Down Everything
As part of the planning process you should write down everything you think about. I went through and planned a large portion of what I was going to code, and how I was going structure things. Unfortunately, I did a portion of it in my head thinking “Oh I wont forget”. Well I forgot, and had to spend time re-planning out portions of the rewrite of GoDjango. So going forward if nothing else I need to write down on my whiteboard whatever I plan out, and take a picture of it.
Don’t Put off What You Don’t Know
Finally, don’t put off things you don’t know about. I have never purchased and SSL certificate, or setup a server to use one. I have never had the need before. As part of keeping GoDjango alive for a long time I am going to add a premium subscription model to the site. In order to take payments I need SSL, I don’t want to use paypal. Unfortunately I put this off, and off, and off again. Now I wont be launching tomorrow with the ability for people to subscribe because I am having to argue with the State of Oklahoma as to why my business isn’t showing up for my certificate authority to verify.
If I had taken care of this sooner I could have had this all wrapped up by now. Now I have a bit of egg on my face, and a valuable lesson learned.
Being the sole developer, designer, architect and project manager of a site has a lot of challenges, and falling down in one area can have adverse consequences in other area. In the future I need to be more diligent in all areas. Maybe even make some checklists for everything to make sure all is covered.