Blog

Jan 03 2013

Comments

Justin Gehtland - Podcast Episode 023

cover art

Way back at the end of 2011, I had this idea that maybe I could record some conversations with various Relevancers and throw together a podcast. Our very first guest was Justin Gehtland, so as the end of the year and the anniversary of the show approached, I thought it would be only too appropriate to have Justin on again. Besides, he's a great guest, and we were clearly overdue to have him on the show again.

As is traditional for this time of year, we spent a good chunk of our conversation talking about the year gone by (verdict: it was crazy) and the year to come (verdict: it's super exciting).

I hope you enjoy this episode!

Read More »

Jan 02 2013

Comments

Where to Find Relevancers: January Edition

Want to meet a Relevancer in person? Here's where you can find us during the month of January:

Sandusky, OH 1/8-1/11
CodeMash
Speaking: Jen Myers Talk: Straight-Up Design: Simple Ways for Devs to Make Apps Look and Work Better

Durham, NC 1/9-1/30
Girl Develop IT - RDU Intro to HTML & CSS @ Relevance HQ
Attending: Lynn Grogan

Richmond, VA 1/15
Richmond Ruby User Group
Speaking: Russ Olsen

Denver, CO 1/17
Den of Clojure Meetup Group
Attending: Timothy Baldridge

Durham, NC 1/24
Triangle Clojure User Group Meetup @ Relevance HQ

Dec 24 2012

Comments

The Real Secret Behind Project Failure

To the owner of a failed software project, there is little consolation that roughly forty to seventy out of every hundred other projects have also failed to meet their goals.

This sad math reflects a simple truth - delivering software solutions to hard business problems is, well... hard. Teams lacking sufficient technical skills are obviously doomed from the start. But a respectable lineup of developers merely gets you in the game. Projects making this first cut now must endure an onslaught of other challenges, from ambiguous requirements and unclear priorities to unrealistic schedules, poor communication, insufficient planning, and unmanaged risks. In other words, as a product owner embarking on a new assignment, the biggest threats to your success are not technical problems at all. At Relevance, we understand that software development is mostly a people problem.

This is why aside from employing an amazing group of developers, designers, and architects, most Relevance projects receive the direct attention of a Relevance coach to minimize the non-technical risks to your project, and to help great people accomplish great things.

So what exactly does a coach at Relevance do? A partial answer can be found in an episode of the Relevance podcast, but the conversation is sporadically interrupted by loud monkey noises (oddly not present at the time of the original recording). In true agile fashion we shall adapt and repeat, and our answer will focus on outcomes rather than activities. When clients ask us "What is the role of a coach at Relevance," we've found what they're really asking is "How will my project benefit by having a Relevance coach on the team?"

Read More »

Dec 12 2012

Comments

Timothy Baldridge - Podcast Episode 022

cover art

It may sound trite to say so, but Relevance is the awesome place it is because of the people that work here. So I thought it would be interesting to talk to our newest hire, Timothy Baldridge, about what it's like to get hired. He had a lot to say on the subject, and I found it pretty interesting. Just as interesting was finding out more about Clojure-Py, Timothy's implementation of Clojure on the Python runtime.

So please download the episode and enjoy!

Read More »

Dec 05 2012

Comments

Jason Rudolph - Podcast Episode 021

cover art

After Stu and Justin founded Relevance and started to grow it into the company it is today, one of the first things that they did was to hire Jason Rudolph. For that reason alone, I have long wanted to have him on the podcast. As it turned out, he had his premiere on the show with the Rails Rumble episode a few weeks ago. But way back in August I had already finally taken the time to sit down with him and chat a bit. Things being what they are, it has taken me until now to finally edit and publish that first episode.

Anyway, we got a chance to talk about his evolving role at Relevance, his recent experiences with ClojureScript, and his life as a productivity nerd. It was fun! Download the episode here. Enjoy, and thanks for listening!

Read More »

Dec 03 2012

Comments

Nov 29 2012

Comments

ClojureScript: Up and Running

enter image description here

We are thrilled to see the hard work of two of our team, Stuart Sierra and Luke VanderHart, pay off with the release of ClojureScript: Up and Running. Writing a book is hard work; writing one that makes it to print is harder; doing that while holding down a full-time job is damn near impossible. They pulled it off. Stuart also talks about the book on the Relevance Podcast.

O'Reilly has been kind enough to provide promo code CJSUR that can be used on their website for 40% off the print copy and 50% off the ebook. This code will expire on Feb. 1, 2013 at 2 am and cannot be used for any bundled purchases.

More information about the book:

Learn how to build complete client-side applications with ClojureScript, the Clojure language variant that compiles to optimized JavaScript. This hands-on introduction shows you how ClojureScript not only has similarities to JavaScript—without the flaws—but also supports the full semantics of its parent language. You’ll delve into ClojureScript’s immutable data structures, lazy sequences, first-class functions, macros, and support for JavaScript libraries.

  • Start writing ClojureScript code with the Leiningen build system
  • Learn how the ClojureScript compiler works to produce optimized JavaScript
  • Use JavaScript functions and libraries directly from ClojureScript code
  • Explore functions in Clojure’s sequence library such as map, reduce, and filter
  • Use macros to define new control structures or embed domain-specific languages
  • Compile manually or script your own workflow with ClojureScript’s compiler tools
  • Integrate ClojureScript with Clojure on the JVM to build powerful client-server applications

No previous experience with Clojure or ClojureScript is necessary. If you’re familiar with JavaScript, HTML, CSS, and the DOM, you’ll quickly discover that ClojureScript has the same reach as JavaScript, but with more power.

Nov 27 2012

Comments

Help, Even When it Hurts

We are a consultancy. Not a big secret. Our job is to do one of the following, generally in this order:

  1. Help our clients kick ass. Work directly with their devs, accomplish awesome stuff, and hope we leave their internal ecosystem in better shape than we found it.
  2. Kick ass on our clients' behalf. Work off to the side, accomplish awesome stuff, and hope we leave them with code and artifacts they can use far into the future.
  3. (and here's the weird one) Help our clients find a better way to kick ass than work with us.

That last one is pretty bizarre, since a business is in business only because it manages to attract revenue from somewhere. And learning that a prospective client can be better served by another vendor (or technology or strategy or timeline or whatever), could easily be in conflict with the mission of the business. But not if the mission is to help the people you meet find the best solution to their problem. When that's the mission, #3 is perfectly natural.

We had an example recently where a rather large, recurring customer of ours came to us with an idea. The idea seemed fairly well-formed and researched; they'd done some initial research on open source code and/or standards we could leverage to get the project moving, they had target customers and a revenue stream modeled out, and we had the capacity to start immediately. We signed off on the contract and invited them down to the office for an Iteration 0.

After a single day of the Iteration 0, nobody felt good about the project. There were more competitors, with more advanced features, already in the marketplace than the customer had realized. The revenue model seemed out of sync with what the market would bear, and frankly, the overall spend seemed light compared to the dawning realities of the need. Everybody went home or to the hotel that night thinking that maybe this project wasn't such a great idea, that the funding mismatch might be too much to overcome, but nobody was willing to just write the project off.

The next day, we decided to do something a little radical. Our customer started the day with the statement, "we don't think we should do this." Instead of that being the end of it, we scrapped the proposed agenda for Day 2, and our CTO (Mike Nygard) ran them through a two-hour business canvas session. (If you haven't been exposed to it, you should: start here). Sitting around a whiteboard version of the above canvas, the team discovered a vastly different approach to the problem at hand. The revenue stream would have to be different, but the potential revenue under the new model was a lot bigger. The up-front investment would have to be bigger, too, and would have to come from other sources. And Relevance may or may not be the right partner to build it. But the team left Day 2 confident that they had a grasp on a much better solution than they started with. Our Iteration 0 worked exactly as it was designed, leading to a well-informed "go/no-go" decision. Most of the time, you get "go". Sometimes you get "no-go", and every now and then, you get "wow, that's a WAY better idea."

Consulting shouldn't be limited to trading hours for dollars. It should be about engagement and collaboration and problem solving. The outcome for Relevance in this case is that we did exactly what we are supposed to do: help our customer solve a hard problem. It is just that the problem was answering the question "Should we pay Relevance a lot of money to build this system this way?" The answer, it turns out, was "no", or at least "not yet", which is a perfectly reasonable solution.

Nov 15 2012

Comments

Rails Rumble 2012 - Podcast Episode 020

cover art

It's our 20th episode! I'm not sure I ever thought the show would still be going after twenty of these, but we are, and I can't think of a better quartet of guests with which to celebrate it than Jason Rudolph, Kevin Altman, Jared Pace, and Michael Parenteau. They sat down with me and we talked about the 2012 Rails Rumble, in which they stayed awake for most of an entire weekend and produced goodmix.fm from scratch. Wow. Not only that, but out of 500 entries, they finished 10th. Double wow.

Download the episode here. I enjoyed listening to their stories of their experiences, and I think you will, too.

Read More »

Oct 31 2012

Comments

Where to Find Relevancers: November Edition

Want to meet a Relevancer in person? Here's where you can find us during the month of November:

Denver, CO 11/1-11/3
RubyConf 2012
Attending: Gabriel Horner

Malmo, Sweden 11/5-11/9
Oredev 2012
Speaking: Tim Ewald: Expressing yourself: Polymorphism in Clojure; Exploring Datomic: A Database Deconstructed

San Francisco, CA 11/7-11/9
QCon San Francisco
Speaking: Michael Nygard: Exploiting Loopholes in CAP

Chicago, IL 11/9-11/11
SCNA
Speaking: Jen Myers: Developers Can't Understand Design (And Other Completely Mistaken Design Myths)

Raleigh, NC 11/12-11/14
Clojure Training
Trainers: Luke VanderHart, Stuart Sierra

Raleigh, NC 11/15-11/17
Relevance Presents: Clojure/conj 2012
Speaking: Michael Nygard: Whence Complexity?
Attending: Almost all of Relevance!

Melbourne, Australia 11/29-11/30
YOW!2012
Speaking: Michael Nygard: Request Path Mapping; Architecture Without an End State?; Workshop: Production Ready Software

Popular Tags