Thursday, August 2, 2012

Preparing for Liftoff

Site launches.  They are whole other kind of thing.  There's a popular saying that goes something like '80% of the work happens in the last 20% of the project'.  I would say that's being kind, that sometimes the last 5% of the project feels like most of the work.  Add on being wholly responsible for all aspects of tech - because you have no team other than yourself - and you're suddenly responsible for hosting, DNS, the code itself, all media assets, caching, the database, and a litany of other things.  It's mayhem.

So, I am thinking now that I need some kind of plan for launching a site.

  1. Do we have hosting figured out for production?
  2. Do we have any cron jobs sorted out and tested?
  3. Is the database indexed and stable?
  4. Is the cache server running smoothly (and for chrissakes, is it actually caching?)?
  5. Since I'm still better than you and using Python/Django, is Debug == False and does the site work without it? Do you have your 404.html and 500.html?
  6. Oh yeah, what about the fav icon? That's an obnoxious thing to forget.
  7. Since you're obviously not using any sort of proper release technique with git, is your repo at least cleaned up with all extraneous files removed?
  9. Is the DNS sorted out?
  10. Did you forget the www. subdomain?
  11. Is email sending from the server?
  12. Is email being marked as spam?
  13. God, did you validate a single one of your pages? Your HTML looks like shit (this is not the FE devs fault, you're the one that hooked it up). W3C hates your guts.
  14. Have you load tested with more than yourself in two different browsers at the same time? No? Good.
This is just where my mind takes me off the top of my head.  It's mayhem.  Part of being a developer CTO is trying to step away from the nuts and bolts of the service to how it's going to fit into the world at large.  Your website is not an island.  In fact, you want it to be landlocked as all hell and getting as much throughput as possible.  You want tourists and locals and random bums to stop by and poke around.  Have you given SEO any consideration? Have you remembered robots.txt?  If you're using SSL, are you conscious of duplicate content and how Google will spank your ass like a bad child for that?

For these kinds of situations, I highly recommend setting up a Trello board with your checklist of things to do prior to launch.  It keeps you stable.  You can see, 'yes I still have 5 things to do'.  When your list on the left is empty and your list on the right is full, you can go get wasted.  Just keep your phone on Ring so when your CEO calls you screaming their head off that the site is caught in an infinite redirect because you jacked up the SSL middleware, you can drunkenly slur that you'll fix it.  And then go fix it.

Such is the life of an accidental CTO.

No comments:

Post a Comment