Lessons learned attending GO TO Amsterdam conference
Last month I attended GO TO Amsterdam, hashtag #gotoams, a general (not SAP-specific) developer conference here in the Netherlands. I’m still amazed at the great talks I’ve been listening to, and the things I’ve learned, not to mention the ‘homework’: reading through the presentations and following up on the interesting links that many of them contain.
I’d like to share my experiences outside SAP-land with the community here on scn and encourage others to also think more out-of-the-SAP-box. I know I’m not the first to mention it, but I still think it’s a valid and important message, and since I now have first-hand experience I’ll repeat it anyway 🙂 .
Gotoams (for short) is a 2-day (extended with an additional day of instructor led training) vendor independent developer conference and part of an ongoing series of conferences around the world, all organized by Trifork. Other well-known conferences include the QCon-series (London, San Francisco), the YOW-events in Australia, etc.
The people from Trifork do a great job at this: all conference stuff is excellently taken care of (in terms of food, drinks etc), and at GO TO Amsterdam they even had a neat mobile app (for iOS as well as Android) that not only included the schedule for the different tracks and talks, but in which they also provided an option to rate sessions and to ask questions during the talk, which comes in very handy if you’re not comfortable asking your questions in public. They gamified the experience by giving away free books for everyone that entered at least 11 ratings (out of max 14). That’s how I got this book for free: “Working effectively with Legacy Code”. Seems suitable for an SAP consultant, right?
Tracks and talks
The talks were divided between keynotes, one at the beginning of each day and one at the end, and parallel sessions in-between, each time slot having 4 different talks in parallel.
Then there were all the different tracks, most of which bundled either the morning or afternoon talks of one of the four rooms. Of course you didn’t need to subscribe to tracks, you could attend whichever sessions you wanted. To give you an idea, I visited the following tracks: ‘Rise of educational Technology Startups’, ‘Cool companies’, ‘Bring your own Language’, ‘It’s all about the People, Stupid’, and finally ‘Legacy and Big Systems’. I skipped a lot of mobility and big data sessions, so in my opinion there’s really something in it for everyone.
Agile & People
Not surprisingly one of the main themes was agile development and the human side of the software development practice. There were two tracks dedicated to this theme: ‘Agile closing the loop’ and ‘It’s all about the people, stupid’, and then there was the opening keynote by Linda Rising about incentives, and half of the opening keynote on Wednesday by Martin Fowler, called ‘Agile: Essence and Fluency’. I didn’t attend all talks about agile, but will summarize what I learned from those I did attend.
To be honest I had no clue as to who Linda was (is), but it turned out she has a computer science degree (obtained 1 month before she turned 50) and is still an avid speaker at age 71! She really was a very good speaker, and was introduced as an ‘agile peacemaker’. I know that in the SAP world we value troublemakers 🙂 , but this was meant as a compliment, and rightly so. Both of her talks, the keynote I mentioned before and the other session in the ‘People’ track about ‘The Power of the Agile Mindset’, were eye-openers, and not only professionally!
The keynote, titled ‘Incentives, why or why not’ basically showed that rewards can undermine intrinsic motivation, leading to worse performance. In this talk she shared a very funny video that goes to show that humans don’t always make rational decisions, and more importantly, that fairness counts. As the video shows, this also holds for monkeys! Of course there was more to it, so go check the slides if you like.
Her other session about the ‘Agile Mindset’ was all about research by psychologist Carol Dweck who’s found out that people either have the believe that talent is something you’re born with and that there’s not much you can do about it. This is called the ‘fixed mindset’. Or, that they have a can-do mentality: no matter what you’re born with, you can get better if you try hard enough, and this is called the ‘growth mindset’. In reality a combination is more likely to exist, but these are basically the 2 opposite attitudes people have. Linda connected the notion of the ‘growth mindset’ to ‘agile’. A similar presentation by her on this topic is available on Youtube.
The other speaker in the ‘people’ track (and at the same time track host), was Simon Brown, a well known software architect and software engineer from the Jersey Islands. His talk was all about agile teams, and what you can do to improve the performance of a team, once a certain basic level, the level of ‘Sustainable Competence’ (title of the talk) is established. Simon turned out to be a great (war) story teller.
Martin Fowler is a software engineer and author, very well known from books like UML Distilled, Refactoring, Patterns of Enterprise Application Architecture and more recently Domain-Specific Languages and NoSQL Distilled. These are all books I’d recommend to any developer, SAP or non-SAP!
His keynote on Wednesday morning consisted of two talks, one more technical about ‘Schemalessness’ (if you’re interested, check out his infodeck about it), and another titled ‘Agile: Essence and Fluency’.
The latter talk was all about the maturity of agile development teams, though he was very careful not to use that phrase because of the associations with terminology like the Capability Maturity Model. The talk was basically a report on a very interesting paper, written last year by Diana Larsen and James Shore about the different levels of agility that they had encountered in their work. Level 1 was basically having the agile management processes in place (what’s called Scrum). Level 2 was a lot harder to achieve, and required also having the technical capabilities like automated tests (TDD), and continuous integration and delivery. The third level, only reached by about 5% of the teams they’d observed, required the team to proactively think of new opportunities to create business value, together with the business, instead of having a more reactive attitude. Be sure to read the paper, published on Martin’s website!
There were of course also multiple technical subjects, reflected in track names like ‘Bring your own language’, ‘Big Data NOSQL Search’ and ‘Legacy & Big Systems’. Here are some of the technical talks I attended:
Clojure and other friends, Promiscuous LISPing
An excellent talk by Mr. Simplicity, Russell Miles. About simplicity in software, how to achieve it, and about programming in the appropriate JVM-language, which he rather took to extremes by stating that you could (and should?) choose your language (Java, Scala, Clojure, Groovy, etc) per class/module, depending on the desired functionality of that class/module. Not sure I agree with that, but certainly provocative! Of course there was a lot more to it, but after a few weeks some stuff already seems to have disappeared from memory.
Machine Learning == Automated TDD
A brilliant talk by Erik Meijer, about Machine Learning and how to approach it from a developer point of view without being impressed too much for your own good. Erik didn’t share his slides, and I don’t recall all the details, but this was a very good talk. He’s also blogged about the topic.
Getting started with Graph Databases
I had some reservations about this talk, as it was contained in a track called ‘Cool companies’ (oh no, no marketing please!), but this turned out to be a perfect introduction to Graph Databases, by Rik van Bruggen of Neo Technology, the leading graph database provider (with their product Neo4j).
Conceptually the case for graph databases (often mentioned as a NoSQL variant, which, according to Rik, is a contraction of Not Only SQL 🙂 ) is not one of volume but of complexity: graph databases arguably allow for a richer data model and more expressing power. Rik demonstrated how in graph databases certain semi-structured, connected data can be modeled more naturally than in a normal relational database, and illustrated this with a demo featuring Belgium beers, one of his other passions. In the SAP world, a common setup would be to install a graph database next to your ERP instance (HANA anyone?), load data from your ERP-system to this database, and then query it. Kind of an ETL-like process, but you wouldn’t create cubes or anything but use the Cypher graph query language to extract meaningful information out of it. If you want to learn more about graph databases, there is a book being written which you can (at the time of writing this blog) download for free.
So, what are the main lessons to be learned from all this? Well, most importantly, despite not knowing a single soul I had a great time during these two days.
Next to that, I learned a lot. Will I use all this new knowledge directly in my current SAP project? No, certainly not. Will it ultimately make me a better developer? You bet! Knowing for instance when to use which database (i know, always use SAP HANA 🙂 ), knowing which fundamental options there are (like schemas vs schemalessness, like SQL vs Graph vs other NoSQL), ensures that you can include more options for the customer or choose the better option yourself. For instance, even when in the SAP customer base you probably won’t need a graph database anytime soon, it’s still useful to know when it can add value and in what kind of scenario.
This conference also got me thinking again about how much the SAP community is still lagging with regard to general development methodologies like iterative, agile development, practices like TDD (Test-Driven Development,) BDD (Behavior-Driven Development), Continuous Integration and Delivery, etc. One of my goals for the next few years is to help ‘us’ (SAP people) make the shift that many developers outside of SAP have already made, and to become better at what we do and how we do it. I won’t pretend I ‘get’ even half of it myself at the moment, but this is something we should definitely push going forward (but it deserves its own blog post). One last link if you’re interested in that stuff: read this excellent blog post by Paul Hardy!
So like I said in the beginning, I can recommend everyone to go to a non-SAP developer conference and to broaden his/her mind. Which conference that’d be, depends on what you want to learn (you could for instance go to a dedicated mobility conference if that’s what you’re interested in), but at least have a go at it!
I’m pretty sure I’ll go again next year (they have very interesting discounts too!) and I’ve already asked the organization to maybe include an Enterprise track (and of course I’d be happy to help…). That would be really cool.
So, after all this text, let’s make the page a bit more entertaining by providing some photos of the building: the famous(?) Beurs van Berlage. This turned out to be an excellent location for a small (compared to sapteched) conference:
Well, if you’ve made it until the end: thanks for reading!