Solution Architect’s Road trip to NDC 2018
When I won my NDC Access All Areas pass in the prize draw at DDD East Anglia 2017, I was understandably excited: as NDC is the Mecca for software developers. But I have never managed to make this pilgrimage before; as 5 days out of work and a couple of £k is not the easiest sell even if you have a great boss who understands how much good learning and invaluable networking happens at an event like this.
What is NDC
The Norwegian Developer Conference has been inspiring developers since 2008, the first being held in Oslo. it is now a giant 6 country tour around the world, taking in the sights of London, Oslo, Sydney, Minnesota, Copenhagen and Kongsberg.
I have attended enough conferences over the years to know that each one has a distinct personality. I liked what I’d heard about NDC, but being an NDC newbie, I didn’t know quite what to expect.
I liked what I found:
An eclectic mix of software industry royalty such as the likes of Microsoft’s Scott Guthrie, Scott Hanselman, and Google’s John Skeet alongside independent consultants; and they are all perfectly open to talking to you if you are brave enough to approach.
It is a place where open source advocates can rub shoulders with the likes of Facebook, Microsoft, IBM and Google employees. What you get from an event like this is an opportunity to get a guided tour of the industry right at the bleeding edge. And one that is balanced by virtue of being outside of the vendor bubbles.
So, it explains why it was somewhat different in feel to the vendor-organised events that can seem like little more than thinly-veiled marketing expos.
What surprised me was how refreshingly uncommercial it was: when I went on a freebie swiping mission to the stands, that not one single person tried to sell me anything. If you have ever been to a Developer Developer Developer (DDD) event, it’s a similar, indie vibe, just on a much larger scale. Think Glastonbury rather than V-Festival, you get music at both, but Glastonbury’s mission is about the music and only the music.
The other difference with DDD is this is a paid event so there is enough budget to hire 3 floors of a venue in the heart of Westminster, have complimentary catering throughout the event and (one or two) free craft beers.
I attended far too many sessions throughout the week provide an individual account for each one, so I have concentrated on the themes in this writeup. What you take away from an event is personal, but for me the main themes of the event were:
Encouraging Diversity in IT
Felienne – Assistant Professor at Delft University of Technology – set the tone when she took to the stage on day one with her opening keynote. Insights shared were on diversity in Software Engineering and her mission to make programming for everyone.
In a nutshell, her points were that programming is just like writing; it’s everywhere – even Excel counts – and so are code smells because we all write code we aren’t proud of sometimes. So if our attitude is that ‘developers’ are somehow better because we can write in code as well as prose, this only succeeds in deterring minorities.
NDC were very proud of their speaker list for this year, with contributors from around the world and almost a quarter being female. It doesn’t take long to spot that barely anyone at the event is speaking English. In my pre-conference workshop, there were 7 of us in total, from 4 different countries.
One of the reasons this resonated particularly with me is because I am actively helping with an organisation in my locality that has a similar mission albeit in a somewhat smaller scale – School of Code @theschoolofcode – is trying to do exactly this in the Birmingham area of the UK.
Almost everyone was talking about Kubernetes, CNCF and the serverless movement as a whole.
Whether it’s serverless logic like AWS Lambdas, MS Azure Functions, Google Cloud Functions or serverless data management such CosmoDB or DynamoDB; the future of software architecture is clearly going to be much more focused on the logical elements of your solution and how those are orchestrated.
It follows the general trend over the years of engineers wanting to solve real world problems, and giving themselves the headspace to handle larger problems through abstracting away some of the low-level details.
Unless you work in embedded systems, the likes of C++ and Assembler that were still being taught in my course at University, are unlikely to be something you use in your everyday role as a developer.
The same trend is occurring with Infrastructure: virtualisation and cloud were all about abstracting away from hardware, but serverless is about abstracting away any last remaining relation to the infrastructure.
This makes life simpler for developers, which enables problems to be solved faster. The other upside is that for systems where demand is highly variable because they are event-driven, the infrastructure cost savings available from Serverless are remarkable – as long as you design them to work asynchronously. Serverless are also a great fit for Microservice architectures.
I still remember the hype around SOA 15 years ago, and how microservices are viewed today. But the infrastructure complexities of those were the barrier against entry for many smaller teams, and this complexity problem is what serverless solves. There are other barriers of course: the supporting ecosystems (tracing frameworks, service mesh, orchestration) are still a little immature and the lack of standardisation may put off some adapters.
But the current lack of standardisation means that each vendor’s implementation is not capable with each other. If you choose Azure Functions, for example because you’ve seen the demos of people debugging their production environments and you love this feature, you are locked into Azure because there’s no way you can deploy these anywhere else without extra work.
If I was a betting man, I would bet on CNCF, of which Kubernetes is part of, to be the ones who end up setting the standard. But you may have to wait 18-24 months before that happens.
For the first time, this year, there was an ML track on one of the days that covered AWS Machine Learning, Azure Bot Framework, Azure Cognitive Services, Azure ML and TensorFlow.
My interest has always been centred on how to apply this towards solutions, rather than ML for ML’s sake. So pretty diagram aside, I shall say no more. It was great to see how others are using it in conjunction with Serverless to create really imaginative solutions.
For example, my favourite talk of the whole event was from Microsoft Chief Engineer, Nigel Parker’s personal healthcare bot: something he built himself to help him with his own health issues.
I mention this as a non-theme as if you believe the mainstream media, this is the today’s topic du jour.
Perhaps it’s because software developers tend to be analytical types who appreciate that blockchain just a data structure that happens to be supported by some interesting mathematics; or because all the cryto millionaires have now sold-up and retired; perhaps it’s because all the blockchain developers are currently working on top secret projects that they’re not allowed to share; or maybe despite all the press there are only 13 developers around the world who are actually doing anything with it.
Whatever the reasons, I was surprised that there was not a single session about Blockchain. Yes, I did attend a very enlightening 2-day workshop on building a Dapp with Ethereum, but our group was about 1/10th of the group that was learning about Kubernetes. I leave you to draw your own conclusion from that.
Overall, I left NDC with a feeling of being inspired about the great things that technology is doing around the world.
And also a sense that it is an incredible time to work in the software industry: the technology is becoming easier, cloud and serverless is enabling teams to build systems with record speeds and ML is enhancing the way those systems work in ways we couldn’t have imagined a few years ago.
For those of us at the coalface of Digital Transformation or Product Development, the skill in Solution Architecture is morphing away from deep engineering and projects with millions of lines of code, into one where the keys are your understanding of your client’s problems; what building blocks are available in the technology market; and how you can harness those blocks – whether Cloud, Open Source or bespoke – to solve those problems in the smartest way.
As a Solution Architect at cloudThing, I am very luck to have the freedom to use my imagination and to pick the best-fitting technologies to create high quality solutions for clients that will stand the test of time. A large part my role is also evangelise: to dream big and enlighten clients on the possibilities we can create from the riches we now have at our fingertips.
Attending events like NDC is tremendously useful in staying informed about what is occurring in the fast-paced world of software development. And it’s reassuring to see that cloudThing are investing in it’s people by allowing staff time to attend events of this calibre.