Spree Commerce

Try It Now

SpreeConf DC Speaker: Gregor MacDougall

Posted on April 09, 2013 by Lynne Brehmer

Last Thursday we introduced you to SpreeConf speaker, Peter Berkenbosch who will be discussing how to thoroughly test your Spree store at SpreeConf DC May 20th – 21st in Washington, DC. Today we’d like to introduce you to Gregor MacDougall. Gregor is a Senior Software Developer at FreeRunnning Technologies and will be speaking at SpreeConf with his colleague Clarke Brundson about his experience migrating a large scale PHP based e-commerce store to Spree. Learn more about Clarke in a future blog post.

Gregor MacDougall

Gregor MacDougall

Senior Software Developer
FreeRunning Technologies

Gregor is a software developer with over 15 years of experience. He focuses on a large variety of web applications built on top of open source software using agile methodologies. Gregor’s SpreeConf talk will discuss how he and his colleagues at FreeRunning Technologies took a large, custom built, error prone, unmaintainable PHP ecommerce platform, and made a gradual transition to the Spree cart, checkout process and models. He’ll explain how they avoided a single, large switchover date, opting instead for a series of small incremental improvements leading towards the end goal. You’ll learn how these techniques can be applied to your own e-commerce migration projects in order to help you make a similar smooth transition.

Getting to Know Gregor

We asked Gregor to give us his thoughts on the latest happenings in the Ruby space and some of the interesting projects he’s working on right now.

What trends are most exciting to you right now?

I’m excited by the improvements being made in software craftsmanship, specifically, writing less code, better code, and more reliable code. I support the effort being made to continually improve the way that we write code through both changes to our processes and our tools. I’m proud of the fact that I write better code today than I did in the past, and you should be too!

Any interesting projects you are working on that others might be interested in?

I’ve been working on a lot of Spree related projects lately, including some extensions that others might find useful:

  • spree-license-key – Automatically sends out a software license key to a user once their payment is captured, so that they can activate the software.
  • spree-multi-domain – Enables users to run multiple spree sites off of a single instance. I’ve been focused on improvements to currency selection, shipping methods, and the payment methods are available for a specific store
  • spree-custom-store-email – Allows for customized e-mails to be sent for a specific store (from spree-multi-domain). We’ll be working on something similar for product specific e-mails in the near future.
  • spree-pre-order – Provides the ability to create multiple payments for a single shipment. The first is a deposit which is automatically captured on purchase and the second is a payment to complete the order once the item is ready to ship. It’s tied to a specific payment processor right now, but we’re looking to improve that in the future as well.

What are you most looking forward to at SpreeConf this year?

I’m most looking forward to meeting the members of the Spree core team, and talking with them about the future direction of the project. We have a few different projects using Spree, including a very large project which will support 60+ stores moving forward. We have a small wishlist of things which would be helpful to include in the core Spree application for a store this size. We also have ideas for improvements to the extension system. I’m also looking forward to meeting other developers maintaining large stores to talk about styling sites, customizing Spree, and the business side of things. Continual improvement isn’t just something we apply to our code!

What do you hope SpreeConf attendees remember about your talk when they get home?

I want SpreeConf attendees to remember that you can make large changes in large projects by doing things in small steps. It can be difficult to make that choice since initially it may seem easier to bite the bullet and do everything at once. However, an unfortunate situation often arises.

You have the old system (which is technically awful, but responsible for making money), and the new system (which is technically good, but running only for developers). The new system doesn’t support all of the features for the old system, so you can’t roll out the new system to everyone. A money making opportunity arises, that requires features only supported by the old system, and some new custom functionality. The company decides that it needs to make those changes, so they get made to the old system. Now, you’re trying to hit a different target for the new system. Because the old system is responsible for making all the money, it gets priority, and the new system gets pushed back.

If you’ve ever been in this situation, you know how frustrating it can be, and how challenging it can be to launch the new system. I want people to remember to think hard about making the decision to throw out old code, and replace it with better code. Your intentions are always in the right place, but the uncertainty involved with such a drastic change can mean that all of your efforts will be put into a project which will never get finished, never be rolled out to production, and never make money. It’s a situation that you should always pause, think twice about, and consult with your colleagues regarding the risks and rewards. Take some time and see if you can break it down into smaller chunks, so that you, and your team can be productive.

Do you have any interesting picks – blogs, technology, books, new companies to follow?

We’re big vim users and fans of Tim Pope a man who has improved my productivity greatly. On the technology front, I love RSpec (for Ruby testing) and Gerrit as a code review tool. For books, I enjoyed reading Succeeding with Agile by Mike Cohn, Working Effectively with Legacy Code by Michael Feathers, Managing Software Debt by Chris Sterling, and Continuous Delivery by Jez Humble and David Farley. For companies, I can only follow the self promotion route and talk about my current place of employment FreeRunning Technologies, a bunch of nerds who write solid code, and solve tough problems for a reasonable price. What more could you need!

Come meet Gregor and hear his talk about migrating a large scale PHP based e-commerce store to Spree at SpreeConf DC, May 20th – 21st.