We’ve been growing at an incredible rate here at Trainline. While it’s been amazing to see the constant stream of fresh, enthusiastic faces, it’s really put our engineering practices – and culture – through its paces.
However, complete autonomy that is easy to manage in small, nimble teams becomes unmanageable across hundreds of hard-working, creative engineers. Continue reading
For the last year, I’ve led the web team at Trainline on a test and learn journey towards a new way of working called evolutionary management. Building on the foundations of agile, this management paradigm adds a new playbook of practices meant to promote self-management, wholeness, and evolutionary purpose.
Part one of this series describes my journey towards discovering this way of working and the foundations of evolutionary management. Here in part two, I detail what we learned from experiments designed to create breakthroughs in self-management and wholeness – the good, the bad, and the beautiful. Continue reading
Is your development backlog too big? Do you to find yourself having two backlogs without realising it? One which is high priority items, recent defects and tasks to be completed in the next few weeks, and one which is full of nice-to-haves, low priority defects and legacy requests? I think we all know what gets the focus and what is just muddying the waters. Continue reading
As the Agile Coach across the Trainline Group, where we have enjoyed a rapidly expanding tech contingent, I have had to put my mind to devising ways in which I can quickly assess the agility of individual teams.
It is also important to ensure a common culture and common understanding. If you have been in tech for any length of time at all, you will be well aware of the fact that “Agile” means different things to different people. To some extent, this is OK. My own natural inclination is not to be too prescriptive, and this is part of the strength of Agile principles. However, experience has shown me that this can often lead to a kind of entropy – an “anything goes” approach which, once adopted at an individual level, leads to the disintegration of a team in all but name. Continue reading
In my previous post I discussed some questions around UI automation testing for iOS applications. I looked into questions regarding stability and the use of stubbing data as a base for most UI tests.
Choosing the right tools
The most important part of doing automation is to choose the right tools. There is plenty of choice on the market for UI automation testing tools for iOS. Appium, Calabash, KIF – these are just some of the big players you can choose from, not to mention a large number of smaller ones and one native tool – Apple UI Automation. All of these tools have some benefits but also some disadvantages.
The main challenge is this: there is no ideal solution. Continue reading
The gong went off with a humming twang.
Around the table, 20 people sat staring. Our agile web team had kicked off many sprint planning meetings, but none like this. As the sound of the Tibetan meditation bowl receded into silence, nervous impulse rushed to fill the space – fidgeting, murmuring, exchanging glances. After 30 seconds or so, this noise died down too, settling into a deeper silence still. Once another half-minute had passed, I rang the gong again.
We then proceeded to have one of our most efficient sprint planning sessions in weeks. We even finished 15 minutes early. Not a bad return on investment for one minute of silence. Continue reading
Our team was tasked with creating a new RESTful API to help reduce the amount of logic that is implemented in potentially different ways across our front-end channels. One item discussed early on was if we should try using JSON API to structure our responses.
Other teams within Trainline have had some success creating JSON-API-based services in Ruby, and we saw no reason why our C# implementation would be any less successful. This blog post is an attempt to tell the story of the journey we took and where we ended up. Continue reading
I was selected for the Trainline graduate scheme right after university and the first few weeks here have been a new chapter in my life. It might be somewhat confusing for most people how an Aerospace Engineering graduate finds himself starting out at a tech company that deals with trains. Software was always a key part of my work in engineering and I have always wanted to learn the tricks of the trade in this sector. What better way for me to achieve these goals than to join one of the most innovative e-commerce companies in Europe? And, more specifically, in a team which is responsible for so much interaction with the trains on the ground? Continue reading
Since my talk at AWS re:Invent in December, we’ve had a lot of questions about how we tackled our Oracle Exadata migration to AWS.
This post goes through our Oracle migration journey in more detail and also includes some general tips for moving large databases to the Cloud. Continue reading
We recently started working on rebuilding the desktop version of the Trainline website. It is a big deal for the front-end engineering team because we have to make sure every choice is justified so that the user experience is never compromised. I am writing this blog post to explain how we went about selecting our front-end tech stack and why we made these choices. Continue reading