Agile Development

While It’s Compiling: Skills Matter Interviews Arti Mathanda

CukeUp!

CukeUp! 2015, the conference all about BDD, is coming to London next month on the 26th and 27th March! There’ll be talks and workshops by Behaviour Driven Development experts and the inspiring Rachel Davies and Dan North will be our keynote speakers. In preparation for this fantastic event, we’ve picked the brains of Arti Mathanda, the event’s programme lead, to find out more. Check out the full programme here.


Arti, you were invited to join the CukeUp! 2015 organising team by Matt Wynne, lead developer at Cucumber Pro. Can you tell us how this came about and what points of difference you hope to add to this year’s programme?

I’ve known Matt for several years now. Last year we caught up again at Sandi Metz’s course and we started to talk about how one of the CukeUps that I had attended was very code focussed and he asked if I would help out with this years conference. I said yes! I was hoping to help make CukeUp more business focussed and also to help increase visibility for minority speakers.

What topics will you be exploring in the workshop you’re delivering at the conference this year?

My colleague Adam and I will be talking about how we use Hypotheses and Measures and how to use them to prioritise your work.

What initially attracted you to working with BDD?

It just seems like the right thing to do. BDD done right helps you figure out why you’re doing the work you’re doing and if it actually makes sense to spend time and resources doing it.

What questions would you most like to ask the community about at CukeUp!?

What are some of the topics you’d like to hear about at the next CukeUp? What are your favourite talks/workshops from this year. Most importantly – did you have fun!

What themes are you most looking interested in hearing about at the conference?

I want to hear about product owners and business stakeholders using BDD – rather than just the tech teams.

As is often the case at tech events, less than half the speakers at CukeUp! are female. What do you think holds women back on the tech scene? Is this changing?

There’s a multitude of reasons why women hold back on the tech scene. One of them is as innocuous as people organising conferences tend to ask people they know to speak at them – and since tech is typically a white male dominated industry, that usually leads to mostly white men being asked to speak. We made a concerted effort to reach out to the women we knew in the industry, whose work we admired. We have a pretty good number of women speaking at this year’s CukeUp including the keynote speakers on Day 1. There’s still work to be done, but we’re heading in the right direction. We also made sure there was a good Code of Conduct and resources for people who were scared of public speaking.

Read more about CukeUp! 2015 and see the full line-up here


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.

While It’s Compiling: Skills Matter interviews George Dinwiddie

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.

george-dinwiddie

George Dinwiddie is a software development consultant and coach with over thirty years of experience, and a speaker at this year’s CukeUp! in New York City.

We recently got the opportunity to ask George about the relationships of Behaviour Driven Development (BDD) to Test Driven Development (TDD), the importance of conversation in BDD and his upcoming session at CukeUp! 2014.


It seems that for many developers BDD is often seen as an alternative to TDD. Do you think that’s a correct assumption, or are BDD and TDD linked and dependent on each other?

These terms are not very precise, and have different interpretations. When Kent Beck invented TDD, he was doing it at the programmer level. Josh Kerievsky (I believe) coined the term Story Test Driven Development, for writing tests at the acceptance level for a user story. Others have called this Acceptance Test Driven Development. In some ways, BDD encompasses all of these, though the emphasis at the programmer level is often on the interactions between objects, rather than on the state of an object after an interaction.

Is BDD essential for effective teamwork and software creation or is there an alternative? Essentially, why should teams choose BDD?

Certainly people have been building effective teams and creating software long before BDD came along. BDD is a convenience, and a power tool to make development more effective. BDD describes the desired functionality with more precision than the typical requirements document. BDD promotes a discussion that’s equally accessible to the development team and the business asking for development. And BDD creates a safety net of regression tests that alerts us when we’ve violated a prior expectation.

You have 30 years of experience in software development and coaching – what have you learned in that time that you wish you knew from the beginning?

I wish I’d known that software (and hardware) development is not just a technical problem. It should have been obvious to me, since my undergraduate degree is in English with a Psychology minor, but I didn’t notice. I spent many years focusing all my efforts on the technical side of things, and losing years of opportunity honing my people skills. Both are important, but only very small projects get accomplished without collaborating with other people.

Back in April at CukeUp! in London, Elizabeth Keogh discussed some of the big things that have gone wrong over the past 10 years, specifically that BDD is not right for everyone, that a focus on automation can actually slow people down (too many scenarios, not enough conversations or conversations less about behaviour and more about how language should be phrased); she surmised that the conversations were the single biggest aspect of BDD. Would you agree with that conclusion?

I do believe that the conversations are the core aspect. Alistair Cockburn has said that the speed of software development is the speed of transferring an idea from one brain to another. Conversations with examples are perhaps the fastest way of doing this. I don’t exactly agree that BDD is not right for everyone (though they’re welcome to forgo it if they want). I do agree that the focus should be on the conversation, and the automation should support that. Not everything needs to be automated, and on a large project, you’ll never have time to automate every interesting scenario. One of the things to talk about are which scenarios seem worth running repeatedly and which ones are likely to detect problems that won’t easily show up elsewhere.

Your talk at the upcoming CukeUp! in NYC is focussed a lot on visualising scenarios in order to show clear understanding of what we or others should expect in the future. Can you give us a brief insight into this visualisation?

When we describe the behavior we expect our program to exhibit, we need to be specific enough that others understand our meaning. So often we, as people, are a bit vague in our conversation. If those we’re talking with share enough of our implicit assumptions and knowledge, they often understand what we mean. If not, they can ask. When we write this down, the reader is shifted in time from the writer, and it’s generally not possible to ask for clarification.

This leads us to expect more details. But which details? If we write every detail we can imagine, we obscure the intent, and the reader is not helped. Worse, we lead them astray, as they may think certain details are essential though we just mentioned them as an example. Writing scenarios is as much an art form as writing software. It takes work and attention to detail and correctness.

The aim of CukeUp! is not just for developers, but rather encompasses product owners, testers, business analysts and so on. How does your session address all of these stakeholders?

All of these stakeholders need to understand the scenarios, and ensure that their concerns are adequately covered in them. That’s why I recommend the “Three Amigos” approach to writing the scenarios. This approach writes them collaboratively with all the necessary points of view participating. With collaboration, they can spot when jargon from one stakeholder makes it unclear to others, or an example offered by one is too narrowly focused. Writing good scenarios is hard, and when it’s done from only one point of view, it usually misses the mark.


CukeUp! New York City

George will be speaking at this years’ CukeUp! conference Tue, 30th Sep – Wed, 1st Oct at DUMBO Loft, New York City.

He will be joined by a host of leading names from the world of Cucumber including Aslak Hellesøy (creator of Cucumber & co-founder of Cucumber Ltd.), Eric Evans, Mary Thorn, Paul Rayner and many more!

This two day conference will explore various aspects of BDD in this New York community event. CukeUp! is organised and curated in partnership with Cucumber Limited and also runs annually in London.

Click here to book your ticket now!

While It’s Compiling: Skills Matter interviews Melanie Diepenbeck

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.

Melanie Diepenbeck

This week we caught up with Melanie Diepenbeck, who is currently pursuing her PhD degree on “Behaviour Driven Development for System Design” at the University of Bremen in the Graduate School System Design (SyDe).

Melanie’s In The Brain talk at Skills Matter on Monday will discuss an improved Behaviour Driven Development (BDD), as she looks at current research ideas to answer questions such as – Did we think of everything important? Does our implementation behave as expected? Did we test everything? Can we make sure that our implementation behaves as expected in every case?

Spaces are limited and filling fast, so book your spot at this free event now!


You are currently researching BDD, particularly verification in the specific Electronic System Level (ESL). How did you discover BDD and what aspects have you found insightful when looking at BDD in ESL as opposed to software programming?

Since verification and correctness are two – still increasing – important factors in the hardware design, we looked outside of the hardware box to find better solutions to increase the correctness in the development flow. That’s how we found BDD.

For one thing, in hardware it is rather unusual to start with tests first. Although testing and verification takes up to 70% of the effort designing hardware systems, implementing and testing are two separate tasks. It’s also interesting to combine the requirements process with the design. But the important questions when considering BDD for hardware focus on the quality: Is it applicable? Can we guarantee correctness and completeness? On the contrary: Some of our findings are even applicable for software development.

Your upcoming In The Brain talk is going to look at the fact that you don’t have to be an advanced TDD practitioner to walk away with better understanding of BDD, due to the hardware focus of the talk. Do you think there is a culture in the BDD community of drawing from analogous fields?

I think both hardware and software development can learn from each other. While in the software industry people are more advanced in developing techniques, people in the hardware industry are more focused on correctness due to the fact that a lot of safety critical systems (such as airplanes and cars) depend on it. Therefore BDD is very interesting since it brings a new angle through which we can look at correctness in hardware development.

Since BDD has its roots in the Test-Driven-Development community, would you say there are some trends developing within BDD which may grow to be successfully separate fields of studies?

One interesting trend could be the use of natural language processing methods in BDD such that scenarios which can automatically be translated to corresponding code. This leads to BDD distancing itself from the original TDD flow since it explicitly includes the requirement engineering process in the implementation. This is one of the many research directions we’re evaluating right now.

The proliferation of best practices and methodologies has seen many theories quickly fall out of popularity. BDD has proven to be quite the opposite from a flash in the pan philosophy, what is it about the ideas and indeed the community around BDD which has made it such a successful field?

One of the important parts of BDD that made it so successful, is its ubiquitous language that directly interacts with the code. Since requirements are written in natural language every stakeholder of the system can participate in the development flow. But I think we could explore this natural language connection further by investigating the requirement engineering process and using natural language processing tools.

And as we’re discussing community, and as you’ll be here soon to talk at Skills Matter, is there anything you think people should be looking at or exploring more within BDD? And are there any burning questions you’ve seen arise recently that the BDD community should be attempting to answer right now?

It’s great that so many people are using BDD right now. There is an increasing amount of tools for all kinds of programming languages. But – as for research – there are only a few studies about the effectiveness of BDD and only very few open source projects that could be used for further analysis of the methodology. Particularly, industry studies that reveal some lessons learned would be of huge interest to us and also to the community.

Friday Round Up: 4th November – 8th November

It’s been a quiet week in the line of conferences but we’ve had a very busy week here at Skills Matter hosting nine free events with our community. These included three In The Brain sessions and six User Group meet-ups all receiving positive feedback and marvellous turnouts! These events wouldn’t be what they are without our community so we’d like to take this opportunity to thank all the attending delegates and speakers for learning and sharing at Skills Matter this week.

This week in SkillsCasts:

IMG_3261

Monday saw the arrival of the London Java Community with a talk from Martijn Verburg and Richard Warburton ‘The Bleeding Edge’ where they spoke about what happens to your technology stack if you’re willing to take a risk. Martijn and Richard work together at jClarity and are running production systems using Html 5, Angular.js, vertx, Mongo, groovy and are deploying using chef. They explained how it has been an interesting ride: how some things worked really well and how some things didn’t. They also explained how they ended up with such a diverse stack and how to make technology choices in a fairer way.

Infracoders London were also in for their November meet-up with an interesting talk on ‘A Journey of Windows Infrastructure Automation At thetrainline.com’ – a brief history, where it started, what’s happening now and where it’s heading using Chef, VMWare, power-shell plus a few other tools.

The London Clojurians had three separate lightening talks from the speakers, Henry Garner, Kris Jenkins and Jamie Brandon. This is definitely one to catch up on!

Oren Eini (aka Ayende Rahien) graced us with a first-rate In The Brain session, with a talk on ‘The DB Disassembly Kit’. Oren went into the details that make up the different components in a database, how they are put together and what the different design choices you have for each component, and how they work together.

Our second In The Brain session of the week was from Susanne Madsen who spoke about ‘Project Leadership: Are we too busy with the urgent to focus on the important?’ A very interesting and relevant talk – worth a watch if you missed out!

The London Pyramid Group had two awesome talks, the first from Jon Staley who gave a quick intro to Deform & Colander and spoke about how you can wrangle them into doing what you want. The second from Riley Doyle who covered key lessons learned in building an advanced ‘DNA Search Engine’ with Pyramid.

The London Lua had a talk on ‘Lua & Corona SDK – Cross platform mobile game development’ for their November meet-up. This talk is great for anyone interested in a basic beginners guide to getting started with indie game development in Corona and Lua…

The final In The Brain session was with Ian Plosker who spoke about The Triumph of Simplicity: how database complexity will be replaced by simple services. He discussed why the level of complexity in storing and querying data has exploded and how database software eventually will be overrun by simple services. The Skillscast to this talk will be available in two weeks.

Next week at Skills Matter:
Monday – The London Big-O November meet-upLondon Ruby User Group November meet-upLondon AJAX User Group November meet-up

Tuesday – In The Brain of Vaughn VernonIn The Brain of Jon Jagger

Wednesday – London Scala User Group November meet-up


Stay up to date with the latest from Skills Matter! Follow us on Facebook, Twitter, Google+, or sign up to our newsletter.

This Week & Last!

Hello and welcome to This Week & Last. Pretty self-explanatorily, this weekly post does what it says on the tin. It’s just your weekly round-up of what’s ‘happening’ and what happened at Skills Matter. Simple, no? And convenient too, this is our cherry-pick of skillscasts for you to catch up on, and a look ahead at what you can sign up for this week. Dig in & click on!

THIS WEEK

Monday

London Ruby User Group

Talks by Andrew Nesbitt on ‘An introduction to Rubymotion’ and Khash Sajadi on ‘Background processing in Ruby (and Rails)

Learn more, sign up!

Tuesday

London Ajax User Group – Performance in JavaScript

Jonathan Fielding leads a short trip through the different ways in which one can optimise javascript to take into account how a user will interact with the page to minimise loading time and maximise the performance of the site.

Learn more, sign up!

Wednesday

In The Brain of Richard Clark – Practical Websockets

Richard will review the WebSocket protocol, discover how to deploy it successfully, look at the programming APIs, and see how to debug WebSocket traffic

Learn more, sign up!

Thursday

London .NET User Group – Event Driven Architecture

So you have decided to break up that monolithic application into services, after all it worked for Amazon, right? Perhaps you want to embrace the DevOps model, perhaps you want to scale your development. But just how do all those services talk to each other, and how do you build a UI on top of them?

Learn more, sign up!

If you’re joining us, please don’t forget to register on the Skills Matter event page!

Obama signs up for Skills Matter

Obama signs up on Skills Matter

AND LAST

Continuous Delivery in a Corporate Windows World

How does the continuous delivery thing work if your web app runs on Windows? And what about when you don’t have access to the production environment?

Watch the video!

London Clojurians – Machine Learning with Clojure

Neale Swinnerton investigates which features of Clojure work well for machine learning and discuss some of the limitations and how to avoid them.

Watch the video!

London .NET User Group – iOS Development in C# with MonoTouch

C# to build iOS applications that take full advantage of Apple’s APIs to deliver stunning native applications.

Watch the video!

Have a suggestion on a user group, talk, or community gathering here at Skills Matter? Get in touch – theo.england[@]skillsmatter.com