16 Mar 2018

In our recent project update blog post, I marked the fact Node-RED has recently hit 1 million downloads. It’s a big milestone to reach for the project and a good opportunity to reflect back on how we’ve got here.

There are a couple of threads I want to explore.

  • Open by default
  • Low Code application development

Open by default

When we started Node-RED, it was a tool to help us do our day job, but our day job wasn’t to spend time writing development tools – it was to build real solutions for clients as part of our Emerging Technologies group. That had some consequences on how we approached developing Node-RED. It meant that we weren’t adding features speculatively – everything we did was in reaction to a real need to do something. We were also limited in how much time we could spend on it during the day – evenings and weekends were much more the norm.

As we discussed how to push it to a wider audience we knew that open sourcing it was the only route we wanted to take. The alternative was for it to remain a proprietary piece of code that would likely sit on a shelf and only get used by us – which wasn’t really an option.

I spoke at MonkiGras a couple years ago about our experiences going through the open-sourcing process at IBM. It was a straight-forward process and very much reflected a growing attitude of being open by default – something that has continued to flourish and become an important part of our culture.

Being an open source project has been absolutely instrumental to the success we’ve seen, but it was never a guarantee of success. A ‘build it and they will come’ approach may have worked in Field of Dreams, but with any brand new open source project, it takes hard work to spread the word and get people engaged with it.

It also takes deliberate attention to develop in the open. Discussions that would previously have happened over a coffee in front of a whiteboard need to happen in an open forum. The long list of ideas written on sticky notes need to be visible to the community. Communication is key and I think this is an area we can continue to improve on.

Low Code application development

Node-RED embodies a Low Code style of application development; where developers can quickly create meaningful applications without having to write reams of code. The term Low Code was coined by the Forrester Research in a report published in 2014 – but it clearly embodies a style of development that goes back further back then that.

There are a number of benefits to Low Code application development, all of which we’ve seen first hand with Node-RED.

It reduces the time taken to create a working application

This allows the real value to be realised much quicker than with traditional development models.

It is accessible to a wide range of developers and non-developers

Above all else, this is one of the most important benefits we’ve seen. Anyone who understands a domain-specific problem, such as a business analyst, a linguist or a building engineer, will know the discrete steps needed to solve it. Node-RED gives them the tools to express those steps within a flow and build the solution for themselves.

The visual nature helps users to see their application

Show, don’t tell” is a powerful concept. We often see Node-RED get used to demo capabilities of APIs, such as the Watson cognitive services. It’s so effective because the visualisation of your application logic shows the art of the possible without having to explain every semi-colon, bracket and brace. Not everyone thinks in lines of code; the visual representation of application logic is much more relatable.

This is all evident in the way Node-RED is often used as part of the code patterns my colleagues produce on IBM Code.

Low Code? But I *want* to write code

Low Code platforms may open up application development to a wider audience of developers, but they still have their critics in those who prefer to be able to tinker with the underlying code.

This is where the open by default approach of Node-RED brings us an advantage. Node-RED isn’t a closed platform that acts entirely as a black-box. Anyone is able to look under the covers and see what’s going on, to provide feedback or to suggest changes.

If someone finds a node that doesn’t do quite what they need, they can easily work with the author to add the desired features, or choose to create their own node.

I think one of the most important things we did in the project at the very start was to make it possible for anyone to self-publish their own nodes. We chose not to become gate-keepers to what the community could add to Node-RED. The fact there are over 1300 3rd party nodes today, a number that climbs steadily, is testament to that decision.

Getting to the next million

As we look to the future of the project, there is a lot still to come. The roadmap to 1.0 opens up so much potential for new uses of Node-RED that we’re all eager to get there as soon as we can. We continue to see more companies adopt Node-RED as part of their own developer experience. As the user community continue to grow, our real challenge is to grow the contributor community – helping drive the project forward.

I’ve talked about Low Code in this post and not mentioned IoT once. We are still, and will remain, IoT at heart. But there’s a much broader framing of the project to consider beyond IoT. I have more personal flows doing simple web automation tasks than I do anything related to IoT. There’s a huge developer audience to tap into who may otherwise be put off by our focus on IoT. How that framing takes shape is something we need to think carefully about.

Ultimately, Node-RED is an open source, low-code, event-driven, flow-based programming environment. It has a great community behind it and new users coming to it every day. I’m sure we’ll get to the next million much quicker than the first.

16 Jun 2017

Last September, as I marked my 15 years with IBM, I ended a post wondering what the next 5 years would hold in store. Perhaps a bit sooner than I had planned, it’s time to find out.

I’ve been in IBM’s Emerging Technologies Services group for close to 6 years now. In that time I’ve worked on a host of projects, including:

  • writing embedded MQTT code for smart energy meters
  • connecting a Scalextric to a mind-reading headset
  • 6 weeks spent in a 7th floor conference room writing custom Dojo UI widgets (not a highlight, but you’ve got to pay the bills)
  • wiring up some Arduinos and Pis in an Ice Cream factory (a highlight)

And of course, the main thing I’ve focused on for the last 3 years, Node-RED.

The client-funded nature of the work ETS does has meant I’ve only been able to work on Node-RED because someone has been willing to pay me to do so. I’ve been incredibly fortunate to have been in that position; being able to turn a side-project into a job.

I’ve enjoyed my time in ETS, but the time has come to make a change.

I have now moved over to IBM Digital Business Group to be a Developer Advocate, focussing on IoT. This is a new part of IBM where all of our work around developer advocacy is being brought together in one place.

Making our products, APIs and services attractive to developers is vital to the future of the business. Long gone are the days that software is sold to the CIO. Developers are far more empowered than they ever were to make their own technology choices. Go read Stephen O’Grady’s The New Kingmakers for a far more insightful take on how this has been the trend for quite some time now.

In my new role I’ll be working to help developers engage with our technology. Whether that’s through hackathons, conferences, blog posts, stack overflow questions, videos, Coursera courses – really anything and anywhere that developers are.

So what does this mean for my time on Node-RED?

Well, truth be told, the group I now work for is the group who was previously funding my time on Node-RED. So whilst I have changed departments, the primary focus of my work stays exactly what it has been: leading the Node-RED project and working hard to grow the community and eco-system around it.

Everything changes. Nothing changes. On to the next 5 years.

3 Sep 2016

In a previous post, I wrote about how I ended up at IBM. I finished that post with a question: Will I still be here in another 10 years? Well, I’m half-way to finding out, but I’m no closer to an answer.

The last 5 years in the Emerging Technologies group have flown by. The last three years of which have been pretty much dominated by my work on Node-RED. It’s been a lot of hard work, but it has been incredibly satisfying work. I’m very fortunate to be in this position; not everyone gets to turn a side-project they created into a job.

That said, as I spoke about in my Monkigras talk this year, when a side-project becomes a job, it risks becoming a chore. I have to continually make sure I strike a balance between the fun and the not-so-fun parts. I don’t always get that balance right which can make it harder work than it should be.

So what of the next 5 years? No doubt Node-RED will continue to be my focus for now, but that doesn’t stop me wondering what else I could be doing.

12 Nov 2014

Last month, I was fortunate enough to fly off to Austin with a group of colleagues for a week long IBM Design Thinking camp. It was an opportunity to get away from the day job, with laptops all-but banned, and have a deep-dive into what IBM Design is about and how it can be applied.

As a relatively new effort within the company, IBM Design sets out to bring a focus back to where it should be; the human-experience of our products and services. This isn’t just about making pretty user interfaces; it is the entire experience of our products.

As an engineer, the temptation is always there to create shiny new features. But no matter how shiny it is, if it isn’t what a user needs, then it’s a waste of effort. The focus has to be on what the user wants to be able to do. This is something I’ve always tried to do with Node-RED; we often get suggestions for features that, once you start picking at them, are really solutions looking for a problem. Once you work back and identify the problem, we’re often able to identify alternative solutions that are even better.

P1070048

It’s often just a matter of asking the right question; At Designcamp, the very first exercise we were asked to do was to draw a new type of vase. Everyone drew something that looked vaguely vase-like. Then (spoilers…) we were asked to draw a better way to display flowers. At this point we got lots of decidedly un-vase-like ideas that were much more imaginative. It’s the difference between asking for a feature and asking for an idea. The former presupposes a lot about the nature of the answer, the latter is focused on not just the what, but also the why.

This relentless focus on the user isn’t a new idea. GDS, who are doing incredible things with government services, have it as their very first Design Principle. But it is refreshing to see this focus being brought to bear within a transformation of how the entire company operates.

Oh, and of course being in Austin, we got to screen print our own IBM Designcamp T-Shirts to commemorate the visit.

Go to Designcamp, screen print your own t-shirt. Obvs.

Lots more photos from the week over on flickr.

21 Mar 2012

One of my plans for the year was to take photo everyday. I knew it would be a challenge as I spend most days at my desk in work. Trying to find a different, interesting photo everyday when I’m not visiting new places all the time meant opening my eyes to the everyday.

But it hasn’t really worked out like that. Looking through the photos to date, too many have been taken after 10pm as I’m heading to bed and needed to take a photo of something.

How else can I explain the photo of an orange?

Then last week, we were ill and although I dutifully took a photo each day, I didn’t get around to uploading them. Last night, sat in bed, I realised I hadn’t done that day’s photo.

All of these factors have resulted in my decision to stop the Flickr 366 project. It had become a chore and not fun.

I’m glad I tried and I’m sure I’ll try again in the future, but the 366:2012 set on Flickr is done.