I'm a technolgist at Huge Inc, the posts below are about work, but probably don't reflect my employers opinions. If you want to connect about work related topics, then this is probably the best place to do it.
It often starts with a sigh. Away from work you hear the obvious sound of frustration when an app or service doesn’t work as expected or crashes at a critical moment. As more and more of our lives are mediated through different glass rectangles, the expectations and importance of delivering brilliant, scalable and reliable experiences on those devices grows.
Which means in practice that the numbers of people involved in creating and engineering the apps and services that people rely on are inevitably large. One of the challenges for people like myself responsible for delivering the software to make all this happen is that with so many people involved how do you create an environment that delivers high quality software and services.
It’s a bit of a management speak truism that everyone on a project is “on the same team”, but in practice that’s not really possible. For some of the global projects I’m working on at Huge, there’s often over 100 folks involved, with a large percentage of these made up of engineers in variety of locations. We have a common objective but in practice we are many teams.
Where location does play a factor is often around balancing time zone coverage so that there’s enough people in each location to ensure effective collaboration. There’s no point adding a single developer with almost no time overlap with anyone else on the project.
However, in practice the amount of overlap doesn’t always have the positive effect people might think. Complex engineering problems require deep focus and an environment that reduces interruption in addition to cross discipline collaboration. The reality of a distributed team is that at some point of the day there are times when there’s fewer people online. Which correlates with fewer interruptions.
Would I choose to have the engineering teams scattered across the planet if it was possible to have everyone in one building. Probably not, but the reality of the work is that this isn’t really possibly, and in practice it’s not the most important piece of the puzzle.
Some thoughts on technical leadership and coding.
The other day someone in the team asked me if I still write code. Which got me thinking about how, especially in agency land, senior technologists often don’t. Faced with the growing need for Technical management and client facing technologists, many larger digital agency environments have a fork in the road where people can pursue a less hands on route.
Over the years I’ve worked with lots of senior folks who continue to be practitioners. People from an engineering background who are still, at least some of the time working with software. This isn’t unusual in other fields - nobody expects the top brain surgeons to do all the operations, but they are expected to do some. The same is true for lawyers and in agency land often true for strategists and UX / design folks.
That’s not to say that management and leadership aren’t skills in themselves, skills that require practice and a significant time commitment. As an engineer the way you scale and produce a better output is (or at least should be) by having a team. The team is your unit of awesome.
There’s code, and then there’s code. On the projects I’m involved in the amount of real technical output I contribute varies significantly. Often the things I’m doing are prototypes, setting a direction - more like someone doing a sketch that communicate an approach or a style. It’s not about being ‘the best developer’, firstly because defining best is difficult (fastest, fewest bugs, most code, least code, best collaborator etc..) and also because that’s probably not your role on the project.
Sometimes it’s just about chipping in with a bug fix, picking up a few tickets and helping when the deadline is looming and JIRA is looking a bit unpleasant. It’s fairly unlikely that I’m going to be picking up lots of dev work across any of my client work, but it is an aspect of how I go about solving problems in my day-to-day work.
That’s not to say it’s easy to stay on top of the ever changing technology landscape, but for me it’s not a binary choice between management and coding. They are part of the dynamic of technical leadership, and it’s important that you make time to develop your skills in both areas.
2017-11-15 14:47:11 GMT permalink
Recently I’ve been doing lots of work with voice interfaces. Globally AKQA has been working with clients on VI since it started to go mainstream, and in the UK we’ve helped Jamie Oliver and Arsenal get onto the Amazon Echo platform.
VI is also a lens to use when looking at system or service and figuring out what an MVP really is. By it’s nature VI is a paired back user experience - so if you have an experience that works well for voice users then you probably have a good idea of your core use cases.
From a technology perspective it also starts to place some new demands on engineers. It forces technical teams to think differently about infrastructure, code and server less at scale. The separation between code and infrastructure can get messy when working with AWS Lambda (and similar services), so it’s extra important to focus on code and build pipelines for anything but the most trivial use cases.
Developing for voice also highlights something I think is increasingly important for engineers - the ability to bring service design thinking into software / sprint planning. There’s an increasing overlap between writing software that doesn’t have dead ends and handles exceptions well, and managing the user through options and occasions frustrations of voice interfaces.
Test automation, unit and integration tests are even more important than usual (though I’m not sure how much more important you can make these kind of tests!). Manual testing of voice services is slow (you can’t really speed it up), so you need to have good test coverage to have high confidence in your software and for the team to be able to work at a decent velocity.
It’s also important for everyone on the team to spend time using voice services and to understand the emerging design patterns and expectations of regular users. In the early days of television it was apparently common to meet people who appeared on TV shows but refused to own a television set. The same approach won’t work if you’re developing VI. Using an Echo or Google home on a regular basis is the only real way to understand the possibilities and frustrations of voice interfaces.
2017-05-17 14:25:25 GMT permalink
Almost every day there’s some new buzz, hype and occasional factual statement about self driving cars. The intersection (pun intended) of technology, user experience and transport policy is an interesting place.
From a technology perspective it feels like autonomous vehicles could be the equivalent of the space race for our times. As a side effect of getting people on the moon, NASA is also credited with inventing everything from Nike Air to better dentistry. Whilst the self-driving car industry is still in its infancy, innovations in detailed mapping, artificial intelligence, motion detection, capacity planning, battery technology and machine learning (to name but a few) have already started to have a significant impact on the technology we use everyday.
But transport and mobility matter a lot more than as a way to get a more accurate vacuum cleaner. The relationship people have with cars is complicated. Much of what has been written about vehicle ownership, usage and urban planning doesn’t take into account the irrational choices that people make around transport everyday. How autonomous vehicles fit into real world scenarios is going to be complicated, and based on how politicians handle most rapid technology change, I’m not optimistic about how smoothly the polity will adapt.
In many ways the motor car has been one of the most liberating inventions of the past 150 years. If I was so inclined, tomorrow morning I could pile up the car and drive to the South of France (or more likely the west coast of Scotland) with a level of ease and freedom not possible 100 years or so ago. Yet, despite having a car I don’t really self identify as a driver. It’s something I do, but I’m more likely to say I’m a cyclist or walker. But I’m conscious for many people driving is a very important part of their identify, and for some people the self-driving car represents a challenge to the idea of what it means to be human.
As with most complex technology problems, it’s easier to get to grips with them if you start by trying to build your own version. A self-driving car is a bit of a leap, but the next step for the location aware drinks trolley I build last year is probably autonomy. Even if I don’t get as far as a universal product, a beer wagon that can navigate my office is probably a pretty good place to start.
2017-01-30 22:28:23 GMT permalink
Most agencies have a Friday drinks routine. At AKQA London there’s a couple of Virgin Atlantic drinks trolleys that do the rounds. Split over 3 large floors, it’s sometimes hard to know exactly when your G&T is going to arrive. To counter this problem we decided to upgrade the drinks trolley.
The CRD team have been adding estimote beacons across the office (15 or so per floor). These give pretty good coverage, more than enough for a drinks trolley tracker. There’s a few ways you could check the location of the trolley, but it made sense to use all those beacons.
To turn the trolley into an IoT device, we used an Intel Edison hooked up to a SparkFun battery pack. The Edison is Intel’s small connected prototyping device. Think an Arduino but with a bit more power and built in WiFi and Bluetooth.
The Edison runs a version of Linux and you can write apps in a variety of languages including node.js. Using the Bleacon library I wrote a simple script that uses the onboard Bluetooth to scan for beacons.
When the Edison finds a known beacon, it calls a service to let it know which beacon is nearby. To keep things simple we are using AWS API gateway and dynamoDB so there’s no server side code to manage. There’s a second endpoint that returns a list of places the trolley has been. We then use this data to populate a simple website to tell people where the trolley is.
It’s a fairly silly application for IoT, but it shows how you can create a proof of concept without lots of infrastructure. The good news is we now know where the trolley is. The bad news is that it doesn’t make it arrive any sooner.
2016-09-16 14:50:38 GMT permalink
2016-08-23 21:03:58 GMT permalink
Next month parliament will debate the removal of performing arts from exam options for 16-18 year olds. The debate will only take place because over 100,000 people signed an online petition. MPs on all sides seemed to have little understanding of the impact that creative and performance based subjects have on students. Both on their potential futures and the needs of businesses.
I am someone who benefited enormously from studying music and drama throughout my schooling. In particular studying performance based subjects at GCSE, A-Level and then at degree level. These studies equipped me for life and work in many ways.
These studies introduced me to a creative literacy that I hadn’t experienced before. The ability to communicate abstract thoughts or big ideas through sound, word or gesture wasn’t always part of my life. I grew up in a declining northern town in the 80s and 90s. Performing arts field trips to local theatres and concerts opened my mind to a broader view of the world. It wasn’t easy for most 16 year olds to stumble across Brahms or Brecht in Rochdale.
Beyond exposure to a broader hinterland, these performance lead studies also started to develop a set of softer skills. They gave me confidence in-front of an audience, the ability to communicate as part of a group and an understanding the importance of rehearsal time. These are skills I continue to use and develop as part of my day-to-day work. Without them I wouldn’t be able to do the job I do now.
As with most of our daily lives, technology plays an increasingly important role in performance and the arts. I spent my late teens playing with a whole range of niche and now obsolete devices. Trying to wrestle their output into some sort of communication or emotional response. I do the same sort of thing now, just with a different set of technologies.
The key skills of the future are creativity and communication linked to technical capability. We should be encouraging more children to take creative performance based subjects seriously, not fewer.
2016-06-09 10:58:07 GMT permalink
Yesterday at AKQA London, Alec Ross took part in a Q&A. Ross is former innovation advisor to Barack Obama and Hillary Clinton. The session was wide ranging covering genetic testing, cyber warfare and the US election. But the topic that got me thinking was when Alec described the skills that people will need in the future to be employable in a more automated world.
Alec’s answer was that people will need to combine excellence in technology, creativity and the humanities (social sciences, psychology, politics etc…). The need for “creativity in the age of automaton” isn’t a new idea. But humanities in the age of automation was a new addition!
Listening to Alec I realised that many of the best developers I’ve encountered in my agency career would already fit this profile. Developers with a background in music or fashion or cartoons or in some other discipline beyond just computer science. Some with a pure computer science background often have a hinterland - a not so hidden passion for triathlon or pickled onions.
This isn’t a plea for developers who don’t know their (pickled) onions. Deep tech knowledge, and a genuine understanding of the fundamentals is mandatory. It’s a recognition of the fact that a well turned out line of code on its own isn’t going to be enough. Solving complex problems requires deep collaboration. Collaboration with people of different disciplines and levels of technical expertise. The most successful agency side developers are not just receptive of input from designers, strategists et al. They are empathetic to the objectives of different disciplines and able to contribute to the process.
We often talk about T-Shaped individuals (especially when hiring). This sometimes masks the reality of an organisational structures and processes that make it hard for such people to succeed.
Finding ‘renaissance’ developers today is one thing. The T-Shaped developers of tomorrow are probably a bigger concern. If Ross’ hypothesis is correct then current trends in UK education policy are a serious concern. Rather than reducing the emphasis on arts and creative subjects, we should be emphasising the importance of these. Not at the expense of STEM subjects, but in conjunction with them. Perhaps I’m biased - I’m Music Tech graduate, who works in technology.
2016-02-24 12:32:46 GMT permalink
2016-02-22 11:57:32 GMT permalink
2016-01-07 12:55:04 GMT permalink