Kevin Murphy

Musings of a Boston-based Software Developer

I Know I Can, But Should I?

Abstract 🔗

You can use a hammer to drive a screw into wood, but I’d recommend a screwdriver. Why? And when is a hammer the better option? This talk will propose a framework to use when comparing alternative technical choices. I won’t decide for you, but will leave you with a structure to apply in your decision-making process.

The ruby toolbox is vast. While Rails provides a default experience, it leaves plenty of room for alternatives. In learning how to do something, you may uncover different ways to accomplish the same goal. Determine which tool fits best in your situation with these lessons.

Presentation Resources 🔗

Evaluating Gnarly Alternatives 🔗

At The Gnar Company, learning about our client’s needs and providing solutions is one of the most satisfying parts of our work. Rails is a great and well-worn tool in our toolbox, but we work with you to understand your needs before ascribing a particular technology or framework. Our team works hard to make it easy to work with us.

Impact 🔗

Building a customer portal with Dispatch required a keen eye on the impact of our decisions. Working with the team we’d be handing the project off to, we ensured that any conventions we introduced met their expectations. Additionally, we needed to maintain a focus on non-functional requirements to provide fast response times and real-time communication with their customers.

Cost 🔗

Cost can be more than dollars and cents. Evaluating when to develop functionality yourself or utilize existing solutions is critical. When we worked to bring Valor Performance’s product to market, we focused on delivering a custom experience for coaching sales professionals while relying on third-party services to complement the product with scheduling, communication, and authorization functionality. As our involvement on the project wound down, we helped interview and onboard their internal team. Investing in the long-term success of our clients, even beyond our involvement, is built into our process.

Maintenance 🔗

We don’t limit our focus to the scope of our initial engagement; we make sure to account for any maintenance activities that’ll need consideration throughout the life of your product. After delivering a foundational product for Qeepsake, we continued to provide assistance and iterate on product features and application performance as adoption took off. While initially developing the product, we made sure to leverage best-in-breed solutions in billing and messaging to quickly provide core functionality that will continue to scale as their business grows.

Consistency 🔗

While working with a large existing development team at LevelUp, it was critical to consider consistency. We ensured we were delivering code that adhered to the team’s existing standards to provide a seamless hand-off that they were comfortable supporting. While we introduced our approach and experience to solving similar problems in different contexts, it was all done in a way that aligned with the larger team’s process.