7
8/20/2019 Selling Clojure to the Business - Our Experiences of Selling Clojure http://slidepdf.com/reader/full/selling-clojure-to-the-business-our-experiences-of-selling-clojure 1/7 Selling Clojure to the Business Our experiences of selling Clojure Posted by Jon Pither on Monday, 30 March, 2015 When JUXT talks to potential clients we're often trying to answer 'Why Clojure?' Here I will attempt to cover some of the answers we have evolved through various sales meetings. Feel free to use what's here or to provide feedback. For those wanting Clojure to play a leading role in shaking the IT industry out of its wasteful malaise, the n we're all in this together. Clojure is Lean Developers love Clojure for it's simplicity and well thought out approach to immutability with its persistent data collections. This is fantastic and absolutely valid, but if we're in a meeting with business stakeholders then it's better to lead with how Clojure helps development teams get more done with less. Clojure is leaner than other mainstream languages, and this should be the first killer answer to the 'Why Clojure?' question.

Selling Clojure to the Business - Our Experiences of Selling Clojure

Embed Size (px)

Citation preview

Page 1: Selling Clojure to the Business - Our Experiences of Selling Clojure

8/20/2019 Selling Clojure to the Business - Our Experiences of Selling Clojure

http://slidepdf.com/reader/full/selling-clojure-to-the-business-our-experiences-of-selling-clojure 1/7

Selling Clojure to the BusinessOur experiences of selling Clojure

Posted by Jon Pither on Monday, 30 March, 2015

When JUXT talks to potential clients we're often trying to answer'Why Clojure?' Here I will attempt to cover some of the answerswe have evolved through various sales meetings. Feel free to usewhat's here or to provide feedback. For those wanting Clojure to

play a leading role in shaking the IT industry out of its wastefulmalaise, the n we're all in this together.

Clojure is Lean

Developers love Clojure for it's simplicity and well thought outapproach to immutability with its persistent data collections. Thisis fantastic and absolutely valid, but if we're in a meeting withbusiness stakeholders then it's better to lead with how Clojurehelps development teams get more done with less.

Clojure is leaner than other mainstream languages, and thisshould be the first killer answer to the 'Why Clojure?' question.

Page 2: Selling Clojure to the Business - Our Experiences of Selling Clojure

8/20/2019 Selling Clojure to the Business - Our Experiences of Selling Clojure

http://slidepdf.com/reader/full/selling-clojure-to-the-business-our-experiences-of-selling-clojure 2/7

To back this up we talk about past Clojure projects. At a Clojurerewrite of an online newspaper the existing Java solution wasaround 500k lines of code, the Clojure replacement being ~20K LOC solution. There was an analogous previous attempt torewrite the platform in Java using XLST but this was terminatedafter a couple of years. The Clojure effort took about six monthswith a small team of high motivated developers and was utterlysuccessful.

At a major property portal we built and released 4 fully-fledgedsystems in under 10 months from scratch. We have seen fromother Clojure projects outside of JUXT that this is a repeating pattern; Clojure is an extremely powerful weapon forproductivity. You can achieve more with less; Clojure codebasestend to be an order of magnitude less in size than theirmainstream counterparts.

Yes, Clojure is a beautiful, elegant language to work with. Moreimportantly for businesses though, it's extremely effective forbuilding software against tight timescales.

Why is Clojure Lean?

The person opposite will be wondering why is Clojure so lean andeffective? You may think it's unsporting and a bit negative toshoot fish in a barrel, but here I like to attack OO a bit. You can'tavoid this anyway as OO is the elephant in the room being themainstream status quo. I've have found however that this can be alight and fun conversation, as people generally enjoy trading war

stories and rallying against established orthodoxy.

Page 3: Selling Clojure to the Business - Our Experiences of Selling Clojure

8/20/2019 Selling Clojure to the Business - Our Experiences of Selling Clojure

http://slidepdf.com/reader/full/selling-clojure-to-the-business-our-experiences-of-selling-clojure 3/7

We usually open by discussing how in OO we tend topreemptively build up a comprehensive object model to describethe problem domain exhaustively. Objects for everything, let nominutiae detail of the business domain go unmodelled,unformalised, unclassified. The object model adds reams of codeto the solution and generates a class of second order problemssuch as constant maintenance and dependency management.Sure, it may not be idiomatic in OO to create masses of typeclasses at low abstraction levels, but we're talking mainstreamhere. It happens all the time and leads to colossal waste onsoftware projects.

In Clojure we work with the data as it comes using inbuilt basiccollection types; maps, sets, vectors etc. We operate on the datausing simple functions to achieve transformational logic,functions being simple data-in, data-out contracts with no sideeffects. We offer that this is a much simpler way of going about

programming and gets us closer to working functionality faster.

Functional and an Evolving DomainModel

Sometimes I can see an element of 'better the devil you know'

creeping into the conversation with the person opposite. Thepotential client may well be thinking "OK, whilst I'm not a massivefan of big object models, I'm not sure I like this idealised future of mathematical functions manipulating raw data all the time... itdoes sound like a rather sterile and soulless future. What aboutthe value of having a domain model in the code? Hasn't everyone

has bought into Domain Driven Design, where the code makessome attempt to promote a common understanding betweendevelopers and business stakeholders?"

Page 4: Selling Clojure to the Business - Our Experiences of Selling Clojure

8/20/2019 Selling Clojure to the Business - Our Experiences of Selling Clojure

http://slidepdf.com/reader/full/selling-clojure-to-the-business-our-experiences-of-selling-clojure 4/7

Page 5: Selling Clojure to the Business - Our Experiences of Selling Clojure

8/20/2019 Selling Clojure to the Business - Our Experiences of Selling Clojure

http://slidepdf.com/reader/full/selling-clojure-to-the-business-our-experiences-of-selling-clojure 5/7

What's the size of the developmentpool, is it easy to hire Clojurians?

Our past clients haven't had any difficulty hiring, and what they

usually report is that they see a higher calibre of individualscoming through the door. I'm a little wary of over-selling thispoint as there's never a free lunch when it comes to hiring, andthe point can sound a little arrogant. But it is true nonetheless;the available resource pool of Clojure developers is self-selecting.

You get enthused technologists extremely passionate about what

they do, or else they would have stuck with the mainstream.

This point gets a lot of traction with potential clients. I can onlyconclude that every IT business struggles with recruitment. If having a language like Clojure will actually help the process, thenthey want to consider it.

We talk specifically about the great community spirit in Clojure,and of the frequent regional meet-ups happening in multiplecountries.

This conversation is usually interlocked with a concern abouttraining. We say we've never had any problem training up Clojuredevelopers, and developers making the leap tend to love it andnever want to go back. This helps hugely with staff retention.

Energising a company

This is a point we sometimes make, depending on the context.We do want to cover that Clojure is a fun programming language,and that it can be used as a mechanism to re-energise an ITdepartment.

Page 6: Selling Clojure to the Business - Our Experiences of Selling Clojure

8/20/2019 Selling Clojure to the Business - Our Experiences of Selling Clojure

http://slidepdf.com/reader/full/selling-clojure-to-the-business-our-experiences-of-selling-clojure 6/7

We're seeing lots of cases of IT departments feeling stuck andinefficient. Not all stakeholders are adverse to disruption, manyrequire and seek it.

SummaryThere are many more tangents and deviations than what we'vecovered here, and it does require discipline to stay focused. Wehope this post gives some ammunition to others trying to sellClojure, either externally or internally.

Tweet 109

Page 7: Selling Clojure to the Business - Our Experiences of Selling Clojure

8/20/2019 Selling Clojure to the Business - Our Experiences of Selling Clojure

http://slidepdf.com/reader/full/selling-clojure-to-the-business-our-experiences-of-selling-clojure 7/7

Processing documents withtransducers - Using transducers to

— Try clojure.core/eduction for an efficientreducible instead of

Course notes•

— Good stuff Malcolm!!!

JUXT

2 Comments 1

• •

Blake Miller •

Great post. The fa ct that choosing Clojure, rather than making hiring harder dueto Clojurians bein g a minority, in fact makes it easier b ecause it tends to be aminority of pas sionate, enthusiastic, out-of-the-box think ers, is often overlooked. Ithink it's exactl y right.

• •

opyate •

I'd have to add what a joy it is to edit Lisp code using Emacs (or any other editorthat plays well with S-expressions).

(https://twitter.com/juxtpro)

(https://github.com/juxt)

Copyright © JUXT LTD. 2015