Amy is a software developer with Agant Ltd.
- What do you currently do?
I’m a Mobile App Developer working for Agant Ltd. We’re a small studio (currently seven people), and we mostly work on apps for clients, especially in the publishing industry. We do have a few products of our own too: I’m lead developer for UK Train Times, currently the 7th highest grossing travel app in the UK.
- How did you get started in Mac and/or iOS programming?
I’ve been interested in computers ever since I was young. When I was about eight, my parents bought me some books about how to program in BASIC [see photos], that were specifically aimed at kids. They were great: they used little pictures of robots to illustrate concepts in programming, and programs written in BASIC were short enough to fit within a child’s attention span.
My family got our first Mac when I was a little older, and when I was in my teens I got my hands on a copy of HyperCard. HyperCard let you make virtual stacks of index cards (like a simple database), and drag text fields and buttons on to them. You could customise the buttons using HyperTalk, which was a programming language that read like plain English. I made things like a choose-your-own adventure game. Since it was before we had the internet, I used to send off my creations to magazines, hopefully for inclusion on their cover disk.
Actual Mac programming came much later, when I was at university. I decided one summer that I wanted to learn, and with access to a university library I was able to get my hands on lots of books to teach myself. This was in around 2004. Two years later I went to my first WWDC, on a student scholarship (with my student loans paying for the plane fare).
- What was the first app you created and what did it do?
The first major app I developed was also my biggest failure. My friend and I were coming to the end of our time as postgraduate students. We decided to try starting an indie software company, and came up with the idea for our first product, an app called In My Pantry, which was designed to track your groceries, and help you manage your shopping list. We spent over six months developing it, and took out a business loan to pay for doing so.
- Where did you get the idea for the app?
Both of us had had experience living in a shared house, and managing what groceries we had in stock (and keeping track of what needed eating before it went out of date) was difficult. We came up with an idea for an app that would do that, and help you make a shopping list whenever you ran out of something.
We decided to make it a lush, graphically rich app with visual representations of your groceries as little items on virtual shelves.
- What went well? What could have gone better?
We ran into two main problems. The first was that we were quite ambitious about what our app should do. The second was related to that — because we were pushing the limits of some of Apple’s newer APIs, we ran into a few bugs which held us up for longer than they should have.
In order to make your groceries look like little packets on the shelves, we came up with an idea where you could take a photo of the actual product and it would superimpose it onto one of a dozen or so types of virtual packaging. You could then tweak the colours of the packet. Once you’d done it, you could save that item as a blueprint that could be used whenever you bought more of that thing in the future. We also shipped with about 300 pre-existing blueprints for food products.
This took a long time to make. We were still quite new at app development at the time, so we were learning as we went, and that concept was very ambitious for the first version of a new app. In the end, the money ran out and we had to ship what we had.
The problem then was that I wasn’t entirely happy with it. When you’ve been working on a project for that amount of time, the point at which you ship is the point at which your enthusiasm is lowest, and really we needed another month or so on In My Pantry to do more tweaking and polishing. Because I wasn’t pleased with what we launched with, it was really hard to bring myself to do much marketing or hyping it up. Thus we didn’t sell many copies, so there was no money for further development, and the vicious circle continued.
The main takeaway lesson here is, don’t try to be too ambitious. Make your first version of the app a Minimum Viable Product — what is the very least feature set you could get away with that people would still want to buy? Make that, polish it until it shines, ship it, and add more features later. I’ve come out of that experience a much better developer, and it helped me get my job at Agant, so there was definitely merit to going through the process. As a developer, I’m learning all the time, and every project has lessons I take away and try to improve on, and that’s how it should be.
- What is your favorite among the apps you’ve developed?
Since I started working at Agant, my favourite app has been UK Train Times. I wasn’t the original author, but I’m now the lead developer on it, and I’ve added a lot of features to it since taking on that role. The reason I like it so much is it’s just so useful. I was a user of that app before I became the developer, and it’s saved my bacon many times when travelling by train.
I also like how unpretentious it is — it looks like the default iOS app styling, and gets out of your way when you just want to see the data within. That’s not to say it didn’t take any effort to design: if anything, it took more effort making sure things look and feel right — I’ve spent hours just working out where the line breaks should go in a status message. But the end result is something that is usable at a glance when you’re in a hurry. Nobody wants to get to the railway station with a few minutes to go before the train, and have to fight through a terrible interface before they can get the platform number.
- What advice do you have for young people who want to make apps?
Don’t expect too much from yourself too soon. If you find learning tough going, it doesn’t mean you’re stupid. Persevere, and you will get there in the end.
If you’ve never programmed before, you might do better learning some of the basic principals before moving on to app development: maybe look into something like Codecademy. You might be thinking “But it’s not even teaching me the same language that you write apps in!”. That’s true, but it is teaching you lots of transferrable programming skills: once you’ve learnt those, picking up a new language will be a lot easier.
And finally, when it comes to making apps, consider your users. Think of the problem from their point of view: what do they need? What are they trying to accomplish? Making an app isn’t just programming, it involves designing something that meets a need, is easy to use, and doesn’t try to do too much.
Help more girls learn software development. Contribute to the App Camp For Girls Indiegogo fundraiser, get a cool perk, and enjoy the feeling of having helped the next generation of software developers.