In this interview, Daniel Steinberg, the founder of Dim Sum Thinking and author of multiple best-selling books, talks about his upcoming Mobile Dev + Test keynote. He gives tips for finding your target audience for an app and explains the impact deadlines have on development.
Josiah Renaudin: Today, I'm joined by Daniel Steinberg, the founder of Dim Sum Thinking and author of A Swift Kickstart and Developing iOS 7 Apps for iPad and iPhone. He'll be presenting his keynote, “Crazy (and Focused) Mobile App Development,” at our upcoming Mobile Dev + Test Conference. Daniel, thank you for joining us.
Daniel Steinberg: My pleasure.
Josiah Renaudin: All right. Before we cover the keynote, I want to talk a bit about Swift, which is something you'll be discussing at one of your tutorials. Can you expound upon your experience with this programming language, as well as what you feel it brings to the table? What really makes it unique from other programming languages?
Daniel Steinberg: Of course nobody has a ton of experience with it; it's brand new, less than a year ago. A couple of us were lucky to have guessed that it was coming and spent some time thinking about what it could be before it was released, and then starting in June, started really digging in. It's a lot of fun, and I don't want people to think that I don't like Objective-C. I love Objective-C. I've written a ton of code in it and I'll still write code in it, but Swift is such a modern language. It does so many things right in terms of memory overhead, in terms of safer code, cleaner code, so I think it will especially appeal to people who are new to the iOS or Mac OS platforms. A Java programmer or Ruby programmer will come and feel very comfortable digging into Swift.
Josiah Renaudin: Your upcoming keynote digs into the paradox of meeting the needs of the many by focusing on the few. What made you choose this particular topic of discussion?
Daniel Steinberg: I don't think it's a paradox at all. In fact, this morning on Twitter, there was an interesting quote from someone quoting William Zinsser, who says, "You can't write a book writing for everyone. You have to write for specific people. Everyone reads their own book in their own voice." I don't think it's a paradox at all. You can't please masses by writing for the masses. You please an individual person and really focus on the needs of a real focused target audience, and then you'll reach a ton of people.
Josiah Renaudin: That sounds risky from the outside. It seems strange to just picture a single user's problems and develop your application with that single person in mind. Why do you think this method actually creates an app that more people will find useful?
Daniel Steinberg: Who else are you writing for? You're not writing for everybody with a credit card. You're picturing a single person's needs, and if you focus on their needs, you find that it actually meets the needs of many people. I have a friend who's working on an app for blind people and he's got a single-focus user. He's a blind musician, and he's trying to help him acquire music where he can't read and scan music, and he's found that many sighted people have benefited from this app, too, in ways that he couldn't have possibly anticipated. If he had set out to just write this generic app that pleased everyone, he wouldn't have met the needs of either the blind person or all these sighted people.
Josiah Renaudin: You argue that developers are more often focused on improving creation skills over crafting application for real customers with real problems. Why do you think development leans so heavily in this direction?
Daniel Steinberg: I'm sorry. I don't understand what you mean by creation skills.
Josiah Renaudin: It seems like a lot of developers are just worried about getting the app done and understanding the different programming languages instead of maybe adding their own personality to something, instead of, like you said, focusing on a person and creating an app for that person. Does that make more sense?
Daniel Steinberg: We do have to work on our own skills and we do have to learn new languages and new techniques. We should be learning those all the time, but also the app that I write and the app that you write, they can be different apps. And so hiding from that, pretending that there's this objective voice when we write our apps … I used to teach mathematics, and I can tell the voice of my students solving problems, even though you think of math problems being very robotic. They're not. There's a lot of personality there. You're surprised that your personality comes out in everything you do, so why hide from that?
Josiah Renaudin: Absolutely. Now, deadlines. I have a journalism background and I deal with deadlines all the time, and I feel that if you have wider deadlines, if you have longer deadlines, you're able to be more creative—you're able to put more into your story before it comes out. How do deadlines impact the process by which applications are developed? Could developers insert more personality or even more functional UI into the app with softer delivery targets?
Daniel Steinberg: I come from a journalism background as well, and I actually find constraints really focus you and you can be very creative within constraints, and if you have to turn something around in a day, you can still find a way to reach your audience. If you have to write within 250 words, which is a very tight requirement, you find very creative ways to say a lot, and so I think constraints actually make us create much more interesting products than if we don't have any constraints. If it's wide open and we have a ton of time, that can lead to disaster.
Josiah Renaudin: So you do think it's similar between journalism and software development that maybe that focus—that you know you have the certain date you're supposed to hit—that actually pushes you harder in order to make a stronger app?
Daniel Steinberg: In the keynote, actually, I use a lot of examples from my radio background, and so you'll see a lot of things that I use when I was working on air come across when I'm working on an app.
Josiah Renaudin: What tips can you share for narrowing your scope in order to more easily identify your target audience?
Daniel Steinberg: That's the most important thing when you create an app, saying what it's not going to do—ripping things out of your app and making it very easy to understand how to use things. You look at the apps that really delight you, they aren't this huge menu that allows you to do everything, because then you don't know what to do first. Focusing is really key in creating a really solid, popular app.
Josiah Renaudin: Most importantly, I know you've got a long keynote and have a lot of different things you want to discuss, but what message do you really want to leave with your audience in San Diego? What's the sticking point as the audience walks away? What do you really want them to remember?
Daniel Steinberg: That you can change a single life, and by trying to change a single life, you're going to change many lives.
Josiah Renaudin: All right. Fantastic. Daniel, I appreciate your time, and I look forward to both seeing your tutorials on Swift and iOS development as well as your keynote on making a mobile app in a crazy and focused way.
Daniel Steinberg: Thank you.
Daniel Steinberg has spent the last three decades working as a professional Swift developer. OK, he hasn't. But he's really enjoying the Swift programming language. Daniel has been writing apps for the iPhone and the iPad since the SDKs first appeared in beta and for OS X for many years before. Daniel is the author of the best selling books A Swift Kickstart and Developing iOS 7 Apps for iPad and iPhone, the official companion book to the popular iTunes U series from Stanford University. Daniel presents iPhone, Cocoa, and Swift training and consults through his company Dim Sum Thinking. He is also the host of the CocoaConf Podcast. When he's not coding or talking about coding for the Mac, the iPhone, and the iPad, he's probably cooking or hanging out with his wife and daughter.