Lessons learned from this phase of our Drupal project

I learned a lot from another three months doing Drupal. Here’s a summary:

  • I learned how to write low-level design documentation. I used to hate doing this because I was much happier prototyping things in order to figure things out, and writing in a word processor instead of a code editor seemed slow. Also, laying out images was a pain in both OpenOffice.org and Microsoft Word. The key breakthrough was that after a lot of iterations, I finally got to a document that had the level of detail my project manager wanted. Once I knew what he wanted, it was easy to write documents like that. In fact, I did one better–I filled in lots of details in the validation section of the design document, and I used that for test-driven development.
  • I smoothed out more of the kinks in our deployment process. Always testing our update scripts with update.php’s access check set to false helped flush out assumptions about user ID. Our regression tests came in handy, too.
  • I practiced more test-driven development. And I loved it! =) Yay yay yay yay.
  • I learned JQuery and the ins and outs of Views+Calendar. We customized our calendar implementation extensively, and it doesn’t look half-bad. Working with timezones had given me a lot of pain, though, but I managed to address all of those issues (and I have the regression tests to prove it! ;) ).
  • I learned that I should’ve gotten a second computer a long time ago. Having a dedicated development computer and another computer I can leave on Microsoft Windows means less hassle and less stress when it comes to working with other Windows-centric people and tools.
  • I learned that I have a lot of things I can teach people about Drupal. =) Mentoring is fun!

I’m moving to strategy-focused projects next quarter, but if I were to continue on this project, I’d probably:

  • Learn more about optimization (started doing a little bit of this, speeding up a page by an order of magnitude)
  • Write more validation tests in my design documents
  • Figure out how to check that coding standards are consistently applied ;)
  • Find some way to convince folks to go for Drupal 6, or find another project that uses Drupal 6.
  • andb

    > should’ve gotten a second computer…
    For those days when a Linux user just has to use Windows for some reason, the easiest thing is to use VMware server to set up a Windows virtual machine, then use VMware Player to use it on your Linux host. The player has a much more responsive interface then the server product (1.x’s app based interface is much snappier than 2.x but still a bit sluggish) but it cant be used to create images, hence the need for the two products.

    I have the VMware server product in an OpenVZ container that I just use as needed to make new VMs, I wouldn’t recommend installing both VMware products on the same workstation.

    Keep a copy of the original VM on DVD so no problem if it starts acting strange, just copy the original VM again. Much easier then maintaining a separate MS machine.

    Now if we could just wean people off of those Windows apps…

  • VMs require lots of memory. =) With Emacs, Firefox, and the Apache/MySQL/PHP stack going at the same time, I have hardly enough memory to run Lotus Notes, much less a VM. Maybe someday!