conference

While It’s Compiling: Skills Matter interviews Tom Stuart

In the run-up to CukeUp! 2015, we caught up with BDD expert and enthusiast Tom Stuart to ask him about his talk and what he thinks of the current state of BDD. Tom is a computer scientist and programmer. He has lectured on optimising compilers at the University of Cambridge, co-organises the Ruby Manor conference, and is a member of the London Ruby User Group. You can find him on Twitter here, and visit his website here.


You’re leading an open-discussion at CukeUp that’s looking to define what BDD actually is. Can you give us a brief overview?

The title of the discussion is “WTF is BDD?”, and the idea is to try to get everyone to agree on a simple, clear, concrete description of what BDD is and literally how to do it. I don’t know if that’s a realistic goal, but I thought it would be interesting to try.

Where did this need to redefine BDD come from – what has led you to this talk?

It’s not about redefining it so much as just nailing down a usable definition in the first place. I honestly don’t think we have one right now and I find that frustrating.

The term “behaviour-driven development” has mostly worked well for discussions between experts — primarily this means consultants and trainers — because the people involved in those conversations know how things have been done differently (and badly) in the past, and are able to use that experience to interpret, frame and prioritise the whole cloud of ideas that swirls around BDD.

But I’d say there’s been a failure to communicate the essential idea of behaviour-driven development to the wider non-expert community, which is a shame because it’s the non-experts who stand to benefit the most from it. I find BDD very useful but I also find it difficult to persuade other people to do it because there’s nothing to point at to show them what I’m talking about. That makes it look like it’s not a real thing. It‘s embarrassing.

Right now the only guaranteed way to “learn BDD” is to pay one of those consultants or trainers to come and teach it to you, which is fine in itself, but it shouldn’t be the only option. If BDD has validity and value then we should be able to communicate it straightforwardly, without jargon or enterprise-consultant-speak.

And even among experts there’s a lot of noisy disagreement over the details of what BDD is. There are so many blog posts out there about “doing BDD right”, “doing BDD wrong”, “BDD is not X”, “BDD is just Y”, “if you’re not doing Z you’re not doing BDD”, and so on. This sort of debate is a sign of a healthy and inquisitive expert community, but again it’s not helpful for getting people engaged in the basic principles and practices of BDD. It puts them off — “if these clever experts can’t even agree on what it is, what hope do I have?”. I like to think that if we set aside the fine-grained disagreements for a moment, we’ll be able to agree on some big fundamental stuff that would be useful right now to people who need help with their software development process.

You’re currently working on a book and screencast – How to Write a Web Application in Ruby. How did that come about? And when can we expect to see it!?

It’s adapted from a workshop I run for Ruby developers. In the workshop we incrementally build up a complete web application from scratch by reading the appropriate specifications and using only the Ruby standard library — TCPSocket, URI, CGI, that sort of thing. Then, once it’s working, we refactor it by replacing bits of our hand-rolled implementation with battled-tested third-party code like Rack, Active Record and Action Pack. So halfway through the workshop we have a long manual implementation of a web application, and by the end we have essentially a short single-file Rails app. People seem to get a lot out of the workshop when I run it, so the book and screencast are about taking that same content and making it available to anyone online.

The stated goal of the book is to help Rails developers to understand their tools better by illustrating what each piece does in isolation and how they fit together. Its unspoken ideological goal is to make the point that software isn’t magic and it doesn’t come about by a process of divine revelation. It’s just stuff made by people, and you’re a person, so you can make that stuff too. You don’t need to wait for someone else to come along and make a framework for you to use; you are capable of building a thing yourself. Of course there are good pragmatic reasons to reuse someone else’s work instead of building everything yourself, but ideologically it’s important to know that you have a choice. Software is brilliant and it should be empowering, not constraining.

I’m ashamed to say that it’s become a bit of a long-term project now, not because I’m not excited about it, but just because I’m a terrible procrastinator and I don’t have a publisher breathing down my neck about it, so I can easily put it on the shelf for months at a time while I’m working on other things. I first announced it on the Ruby Rogues podcast in August 2013 so it’s definitely been brewing for a while.

I’ve resolved to get it shipped this year. That sounds terribly pessimistic. What I mean is that I’ve made a resolution to speak at fewer conferences in 2015, because they ordinarily take up so much of my time, and the idea is that I’ll be freed up to get the book finished. It’s the main thing I’m working on right now. I just checked the PDF and it’s 77 pages so far. So it is real and it will be out before too long.

Your writing spans a pretty huge range of topics – not just technical (like this post from your website on the London Cycle Hire scheme). Where do you find your inspiration from?

I would love to say something motivational and high-minded here, but the truth is that my writing is mostly born of frustration. I am very excited about the possibilities presented by general-purpose computation, and that excitement turns to frustration when those possibilities go unrealised because of bad education or lazy design or whatever it is.

So much of what is wonderful and beautiful about the computable world is hidden under a thick layer of inane jargon, poor documentation, crummy explanations, arrogant behaviour, confusing interfaces and so on, and I feel compelled to try to dismantle those things whenever I see them. Often that amounts to just unproductive complaining, but sometimes it motivates me to try to build a really clear explanation of a particular idea, or at least a really clear illustration of why some existing thing is bad. That’s actually still just complaining but I invest some effort in dressing it up as something superficially more constructive.

Explaining things clearly, whether through human language or computer code or interaction design, is really difficult to do, but that’s what makes it important and worthwhile. I think that you can change someone’s life in a tiny way if you help them to understand something fundamental about the universe, so it’s worth putting a bit of effort into. In practice the main thing I’ve learned is that this is a terrible way to try to make a living.

Were you always going to be a developer? What do you think you’d be doing if you weren’t?

I was fortunate enough to have access to easily-programmable computers from a very young age, so yes, I’ve been programming for as long as I can remember, and it’s hard to imagine doing anything else for a living. I suppose that latterly I’ve been spending more time explaining things to humans than to computers, so under different circumstances maybe I’d have become a teacher. I am a huge fan of mathematics so it’s likely I’d have ended up as a maths teacher, if not an actual mathematician, if computers hadn’t existed. It’s a frightening thought.

Finally, and back to CukeUp; what are you looking forward to most at this years conference?

Well, obviously my bit is probably going to be amazing, but social convention dictates that I pick something else. Actually I’m really looking forward to the workshops, because workshops (more so than talks) are often an opportunity to really learn something new — to be that person who’s having their life changed in a tiny way. So I’m hoping to be shown different ways of thinking about Cucumber and BDD, and to get the chance to ask some awkward questions, and to find something new and interesting to complain about.


While It’s Compiling is a continuing series of interviews with experts across a range of bleeding-edge technologies and practices, exclusive to Skills Matter. Be sure to subscribe to this blog for future interviews, or follow us on Twitter.

Find out who we’ll be interviewing next, and get a chance to put your questions forward with the hashtag #whileitscompiling.

FullStack 2015: Call for Papers

FullStack 2015

Our second edition of FullStack – the conference for JavaScript, Node & IoT developers – returns June 25th-27th. The conference is independently organised for and by the community.

Following the tremendous response to our Call For Thoughts, and with support from Cian O’Maidin (nearForm), Rob Moran (ARM), Robert Rees (Guardian), Sarah Clarke (Google) and members of our JavaScript, Node & Angular community, we have been able to identify some key themes for this year’s conference:

  • ES6 and io.js
  • App Architectures for Performance, Maintainability, etc.
  • Software rendering
  • Virtual DOM (e.g. React)
  • NodeJS and associated technologies
  • Implementation stories and soft skills
  • Dev Ops/NoOps
  • Microservices
  • AngularJS 2.0 and related topics
  • Hardware
  • Internet of Things

To submit your proposal, head over to the Call for Papers page. We’re especially keen to hear from people who haven’t spoken at the conference before. If you’re worried about presenting alone, feel free to pair with someone on your team. The community is very friendly and this is a safe way to dip your toes in the public speaking arena. If you need some help a great place to start it here.

If you have any questions then please contact us at info@skillsmatter.com.

The CfP will close on March 20th. All presenters will be contacted the week commencing April 6th. 

Please be sure to read the Skills Matter Code of Conduct. It outlines what we expect from our speakers and guests so that we can continue to provide a fantastic environment to learn and share skills for everyone.

CukeUp! 2015: Call for Papers

cukeup_2015cfp

After a sold out 2014 conference, CukeUp! returns to London for its fourth iteration. The conference brings together all stakeholders who use BDD for two days of talks and workshops, helping teams to crack complex software problems. We’re on the look out for talks that will inspire and educate others around BDD and it’s wider practices – so if your team is just starting out on the road to BDD, you’ve got some nifty tips to test the untestable or you’ve got a use case on how to bring technical and non technical teams closer together – we want to hear from you.

We are planning for talks to last around 30 minutes, so keep introductions to a minimum and allow time for questions!

To submit an idea for a talk head over to the Call For Papers page. We’re especially keen to hear from people who haven’t spoken at conferences before. If you are worried about presenting alone, feel free to pair with someone on your team. The CukeUp community is very friendly and this is a safe way to dip your toes in the public speaking arena. If you need some help a great place to start is here.

If you have any questions then please contact us at cukeup@skillsmatter.com.

The CfP will close on January 23rd. All presenters will be contacted the week commencing February 2nd.

Please be sure to read the Skills Matter Code of Conduct. It outlines what we expect from our speakers and guests so that we can continue to provide a fantastic environment to learn and share skills for everyone.

While It’s Compiling: Skills Matter interviews Dean Wampler

dean-wamplerFor an insight into Skills Matter’s Scala eXchange 2014 at the Business Design Centre on 8th and 9th December, we caught up with recognised Scala author and expert, Dean Wampler. Giving the keynote speech on day two of the Scala eXchange, he’ll reveal why those dealing with Big Data are increasingly being won over by the power of Scala. But in this pre-conference interview, he offered an insight into balancing his roles as evangelist, strategist and hacker, his changing focus within Typesafe, and his love for traveling, cats…and traveling cats. Read on to find out more!


 

You’re a software developer, a new data scientist, a technical author, and a frequent public speaker.  Which aspect of your work would you say defines you the most?

I’ve had a circuitous career path. For my dissertation (Physics PhD), I modeled complex decay processes in nuclei to look for signatures of exotic behaviours. I discovered a love of programming during that time and made the decision to pursue a career in software development. Fast forward to a few years ago, I moved into the Big Data world because of several appealing factors. First, I knew that Scala and Functional Programming were the right tools for the job – something the rest of the industry is learning now! Second, lots of the mathematics used in Machine Learning and analytics are the same tools I used in physics. Finally, it’s a growing, exciting field with lots of hard problems to solve and lots of opportunities to explore. So, I see myself as part evangelist for how Big Data should be done, part strategist for Typesafe on our place in the ecosystem, and part hacker to help make it all happen.

Tell us about Scala’s relationship with Big Data and why you think this is important.

From the beginning, Scala has been a great “upgrade” for Java developers who want to use a language that exploits cutting edge thinking about language and software design, while at the same time leveraging an existing JVM-based infrastructure. One of those cutting-edge ideas is Functional Programming for writing robust concurrent software. However, I now think that interest in FP and Scala are being driven more by Big Data applications than concurrency concerns. Working with data is fundamentally about Mathematics. Since FP is also based on Mathematics, the match is natural. Furthermore, many Java developers who otherwise saw no need to move from Java to Scala discovered Big Data tools like Scalding and Spark, which were eye-opening. The elegance, the concision, and the expressiveness of these tools made the move to Scala far more obvious than before.

In your talk at the Scala eXchange, you’ll explain why data-centric applications are driving Scala adoption. Can you give us a few insights into this now?

In a nutshell, every language, tool, library, or environment needs a “killer app” where adoption is without question. Just as the Web was the killer app for Java, Big Data is the killer app for Scala. The fit is so obvious on many practical levels.

You consult for Typesafe, the company behind Scala. What does your work there involve?

I’ve taught courses on Scala and Akka and I’ve worked with clients on Akka projects and more recently, Spark projects. I’ve developed our initial set of training materials for Spark and delivered those materials to clients around the world. However, I’m now moving into the engineering organisation as Architect for Typesafe’s strategy for Spark-based products and services. As the Scala experts, we are uniquely positioned both to help make Spark better and to help our customers use it most effectively. Stay tuned 😉

Your Flickr page shows a love of travel and a love of cats. Do they trump your love even of Scala?? And where is your favourite travel destination?!

The ultimate is love of travelling cats, I guess, but they are as rare as Unicorns. I travel a lot, which is a privilege, and I like to record my experiences. When I return home, my cats keep my wife and I entertained. If I say that I love Scala more than them, there will be hell to pay, so you won’t get me to say that on the record…A lot of those pictures are from backpacking trips around North America. Yosemite National Park in California, the Cascades in the Pacific Northwest, and many places in Utah and Arizona are hard to beat. Do come over and see them! For more civilized adventures, is there any city in the world more interesting than London? I don’t know of one.


While It’s Compiling is a continuing series of interviews with experts across a range of bleeding-edge technologies and practices, exclusive to Skills Matter. Be sure to subscribe to this blog for future interviews, or follow us on Twitter.

Find out who we’ll be interviewing next, and get a chance to put your questions forward with the hashtag #whileitscompiling.

Five top Javascript Skillscasts from the Skills Matter archives

 

Gary Short: End to End Javascript (login required)

Gary Short, End to end Javascript

From the 2012 Progressive .NET Tutorials in London Gary Short, Technical Evangelist for Developer Express, looks at how Javascript as a language was beginning to infiltrate all three layers of application development – from JQuery in the front end, through NodeJS in the middle tier, to Map/Reduce functions on back end databases like CouchDB.

Gary looks at some of the gotcha’s within the language before going on to build an exemplar, 3-tier application in Javascript. By the end of the session he demonstrates a much better appreciation for the language and the power it has on all application tiers.


In the Brain of Carlos Ble: Behaviour Driven Rias with Javascript

Carlos Ble came along to Skills Matter a year ago for an In The Brain talk looking at a whole range of topics: why JavaScript is getting so popular, Executable Specifications with Cucumber for the RIA, the Passive View Pattern, event oriented programming and how to test-drive it, test driving promises, technical debt on purpose and the role of the “server side”.


Tamas Piros: An Introduction to AngularJS

In this talk organised by the Mean Stack user group, Tamas Piros came along to Skills Matter HQ with a presentation suitable for everyone (experienced and brand-new), with an introduction to AngularJS describing the basics such as data-binding, expressions and directives.


Jonathan Fielding: Building better experiences with Responsive Javascript

From the archives of another Mean Stack meetup, Jonathan Fielding goes beyond media queries showing what CSS can offer and moving into the realms of responsive Javascript.


Damjan Vujnovic: Backbone JS Unit tests

While most of us will agree that unit tests are an important aspect of development, actually implementing them seems to be a different story. Damjan takes you through your first steps with unit testing in Javascript in this mini workshop, hosted by the Backbone.js London user group.


FullStack – the Node and JavaScript Conference

fullstack-tri-blog

This year sees us host our first ever FullStack Conference, bringing together the best in the worlds of NodeJS, Javascript and hackable electronics.

Join world leaders such as Douglas Crockford (creator of JSON), Cian O’Maidin (founder and CEO at nearForm) and Karolina Szczur (Smashing Magazine) for two days jam-packed with talks, demos, and coding.

Book your ticket now!