SoundBoard Cross-Functional Online Marketing Conference Jonathan Wallace good morning everyone, thanks for coming out. My name is Jonathan Wallace and i'm glad you're here to listen to my talk. ! i was going to talk about "Navigating Your Options for Mobile App Development". that's the title but it doesn't really cover what i'm going to talk about today. so i needed to make a few adjustements and well, here's a more appropriate title...
five years from now unless you understand what your options for mobile app development are right now. Navigating Your Options for Mobile App Development whoa, whoa, whoa you say. you're asking yourself "who is this guy to stand up in front of us and tell me that i'm going to lose my job? why should i trust him??" well. let me show you who i am. ! i'm this guy.
asking yourself, what the hell does it matter that the president mentioned something i built. and that's a great question, it doesn't. what matters are the dates involved. so let’s go back..
this speech on May 9 in 2013. I started work on iTriage, called appointmentcity at the time, in 2010. The project had existed for two years before I started on it. Doing the math, you can see that it took five years from the beginning of this project before it was touted as a 'success.' And the main way that it was a success was in getting acquired by larger and larger companies. There were two acquisitions while I was on the project and last I heard it was now ultimately owned by Aetna.
is that it took 5 years for that app to become a success. Let's ponder that for a moment. 5 years. That's a long time. Even more, I wasn't the only developer on the project. Let's assume that the cost to the customer was $150K per year per developer. I'd argue that this is a lower bound on the cost of a fulltime developer. There were over 44 people who touched the code when I last saw it 2011. That's a combination of contractors and employees. Assume an average of 4 developers at full time for 5 years and we're talking at a minimum of three million dollars. ! Why am I telling you all of this? We just played a quick round of jeopardy and three million dollars is the answer. ! What's the question? !
this is, one of, if not the most commonly asked questions I receive as a developer in the mobile and web space. Today we're going to talk about how to not spend three million dollars and instead, know about how much you should look to spend based on your needs and desires. ! at the end of this talk, i want your ability to evaluate which approach to take is best for you and your company to have improved over where it is when we started. so you don't get fired for making the wrong choice. (or your company goes out of business) !
said i would give you a reason to trust me. allow me to do that now. as i said earlier my name is jonathan wallace. my official title is "backend web team manager" and i consider a large part of my job to be consulting. we'll talk more about what that means in a few minutes. ! i work at a company called Big Nerd Ranch. at BNR, we do three things. we write books. we write apps. and we train others how to write apps. when I say apps, i'm talking about mobile applications, web applications, javascript apps, design, etc. I've worked there going on 5 years and I've been doing web development for three years before that. I got started freelancing to help out small businesses solve business problems using web technology. !
App • Hybrid Definition Time i've thrown around some jargon so i'm going to take a step back and cover the most important terms. let's talk about mobile vs. web app and what exactly that means.
is written in the language of the platform and using the libraries provided by the platform. for an iphone or ipad, this is called objective-C. for android devices, this is java. software written natively will automatically get the benefits of the UI built into the frameworks. what's this mean exactly? if you build an iphone app, it'll look like almost all the other iphone apps. buttons on one app will act like buttons on another app and your great aunt matilda will be able to use your app. ! think of it like peanut butter. it is something of substance but harder to move around. !
the other hand, is like jelly. it is basically a "smart" web page and can be written on any number of languages and platforms. its available on computers as well as mobile devices. !
this image is? GOOBER JELLY. A blending of peanut butter and jelly. Looks good, right? Now that metaphor is making sense!! ! there's also numerous approaches in between. facebook for example started out as a web app but has slowly migrated to a fully native app. they did this by having certain parts of their app that were native and others that were just loading a web page. ! ! !
a screenshot of facebook. On the left, we have facebook viewed as a mobile web app. Web app on the left. On the right we have the “native” app. I’m using scare quotes because back when this image was taken..
screenshot on your right, is actually a hybrid. That’s part of the reason they look so similar however, you can see a few differences there. In this hybrid approach, facebook is loading a web page inside a native app.
of Hybrids Tools that allow you to write in one language and generates the native version. The layer of indirection add complexity. With complexity sometimes comes cost but in general this is a good way to go when you need something more complicated than the simplest solutions which I’ll speak about later.
a cut of revenue • Cost more to build • App for each platform • Multiple versions in the wild Pros / Cons of Native Native apps are typically faster and feel more responsive because there's no network latency. ! App stores typically take around a 30% cut. ! Native mobile devs are typically around ~40% more expensive than a web developer. The ranges between web and mobile developers overlap but generally you'll find mobile developers to be more expensive. ! If you want your app natively available on android and iOS, you'll have to pay to build the same app twice. And it'll probably cost more than twice the cost. !
even matter? ! I've cribbed this slide and the next couple of slides from a deck by Mary Meeker. Mrs. Meeker is an American venture capitalist and former Wall Street securities analyst. She is a partner at the Silicon Valley venture capital firm Kleiner Perkins Caufield & Byers. She's been a part of the IP of Netscape, anyone remember them? Also, she was an early champion of Dell, Microsoft, AOL, Amazon, Yahoo, eBay and Google. ! You don’t have to read the details of this particular slide but check out the trend. Quarter over quarter, we’re seeing the amount of smartphones as a percentage of mobile phone continue to increase. I’m defining a smart phone is a phone that is able to install apps and view web pages.
The interesting change is that the blue bar is much larger than the green bar. The green bar represents mobile views of web pages. We’re seeing an almost 100% increase year over year in North America. But what I really want to point out here is that Asia and Africa have some of the largest increases. Why? We’ll get back to this in a moment.
cool slide. Its shows how each computing cycle we see a magnitude increase in the amount of units. What’s next? I believe after mobile internet, we’ll see sensors, small low powered on the order 100B+ units. This could take 10-20 years.
largest supplier of mobile networks and the company that probably knows more about who is using what than anyone else–there were only about 1.9 billion smartphone subscribers at the end of last year. It expects that number to reach 5.9 billion in another five years... ! For $129, you get the latest android software, a gorilla glass screen, all day battery in a water resistant phone. ! .. three out of ten American consumers who couldn’t previously afford a smartphone may be able to buy one this year ! This continues the commoditization of tech. ! !
that you're going to get fired if you don't listen to what i have to say and learn something, right? what have we learned so far? ! it takes time and money to develop your presence in the mobile app arena. you've got technological considerations but mobile is coming and you're going to build something. you're going to follow up on the pros and cons link i referenced earlier, read through it, think about it, and you're going to build something... or get left in the dust. ! what do you do next? you know you want to build. how do you do it? what are your options? !
• Consultants Paradigm Time i've got my mental model for how i like to think about getting software built. you have three main options. let’s talk about each of these in turn.
http://www.apps-builder.com • http://www.theappbuilder.com/ There are web apps that you can use to build a mobile app. Sometimes they are cross platform tools, which means you build it once and it'll build you an iphone app, an android app, and maybe more. there're downsides to these. ! !
and easy • Cheap ($) • Limited in your options You are limited to what they envision. What options are provided for you. If your needs are simple enough, fantastic, you’re done! ! pro: is cheap for money. doesn't take a lot of time to investigate and try out. this is a good idea when you're looking to establish your companies presence in the Apple App Store or the Google Play store. ! cons: it may act cheap. performance may not be great. it can be difficult to build complicated functionality. are you integrating with the camera? what happens when you want to store your users images on their flickr account? ! also, depending on the apple reviewer, apple reviews apps before they go out, it may not be approved because apple has a huge long list of dos and donts and if you violate the donts you don't get in the store. !
Hired for a specific job • Know what you want costs more money than the DIY approach but *should* take less time. You can use services like elance.com and odesk.com to find contractors. Contractors are developers that expect you to tell them what to do and what to build. You need to know exactly what you need. If you fail to specify all the details, or if you forgot to consider a situation, a contractor will not bring this to your attention. You'll have to catch it yourself.
here but the ideal is that you spend it most effectively. A good consultant will keep you from wasting money building things inefficiently or things that you don't need. A good consultant will help you determine what you need. A good consultant will begin helping you for free. Sounds crazy, right? ! A good contractor may turn in to a consultant / customer relationship.
experience ! • Referrals ! • Interactions How do you know a good consultant or good contractor? Let's look for some good correlations. Have they worked with your business type before? Can they provide referrals to previous customers? If you want to reduce the risk of picking a bad partner, then these are important questions to follow up on. Finally, do you learn something new about the your business when speaking with them. A good consultant is happiest when helping you be successful. After all, the most valuable customer for a consultant is a happy, repeat customer. As all of you here know marketing and sales can be expensive and time consuming, an ongoing customer reduces marketing and sales costs to zero. A good consultant is vested in your success. ! These aren't hard and fast rules, these are just things I suggest you look for. !
• Can you make a build in one step? • Do you make daily builds? • Do you have a bug database? • Do you fix bugs before writing new code? • Do you have an up-to-date schedule? • Do you have a spec? • Do programmers have quiet working conditions? • Do you use the best tools money can buy? • Do you have testers? • Do new candidates write code during their interview? • Do you do hallway usability testing? Joel Test Okay, so what else? Well, the dirty little secret is that everything we've been talking about today is built on a foundation of software. The actual code that is executed by the CPU to bring your app into existence is written by people. Crazy, isn't it? And over the years, software developers have developed best practices that ensure a quality product emerges from the process of software development. ! The metric you see here is called the Joel Test. So called because a guy name Joel Spolsky came up with it. It is used to get a quick three minute judge of the quality of a software team. Each question is yes or no. You get one point for each yes. For reference 12 is perfect, 11 is tolerable and 10 or below and the software team has serious problems. ! What's nice is that many of these best practices should also apply to your software consultant or contractor. Let's break 'em down real quick. ! !
! • Can you make a build in one step? ! • Do you make daily builds? Joel Test If you don't know about source control, well your consultant better and they better use it. Maybe a good way to ask this question is not "do you use it?" but "which one do you use?" if they say they don't any, run away. If you're not familiar with source control, it is a tool used to track changes to files, typically text files. Source control allows developers to coordinate on a project with accountability, efficiency and resiliency. I.e., if someone introduces a defect, it can be easily rolled back because of source contorl. ! Can you make build in one step? I.e., how hard is it for you to get access to a new version of your app? Ideally, the developer should be able to click one button and some amount of time later, you're looking a new version with new features. The more manual a process is, the less possibility it is done frequently which will reduce the quality as it will take longer for defects to be surfaced. ! Do you make daily builds? Again, this is about ensuring that defects are caught earlier than later. This isn't a hard and fast requirement but highly recommended. A good consultant is ensuring that what is produced is of high quality and working.
database? ! • Do you fix bugs before writing new code? ! • Do you have an up-to-date schedule? Joel Test Are you tracking defects? Defects happen. If you're not tracking them, then you're going to forget about them and they won't be fixed. ! In general, not always but in general, defects should be addressed before new features. The longer you wait, the costlier it becomes to fix a bug. Developers forget the context associated with the code when it is written, so the sooner they fix it, the faster they can fix it. ! Schedules? Yes, they may slip but sometimes there are dates that cannot be changed. You have a big demo coming up a trade show. You have to have something to show. And if you don't have a schedule then you won't have the pressure on your project to force to chose which features are most important. In fact, I'd say this has been one of the most important things I've done consultant. Pushing my customers to make tough decisions about what is most important in their products.
! • Do programmers have quiet working conditions? ! • Do you use the best tools money can buy? Joel Test Okay, so now we're getting into the second half where the relevance of these questions may not seem as obvious to you as a customer but I'm confident the make the case to you. ! You need a specification of what the software is going to do. Often, what is built and what was specified initially will change. And that's okay, because in the process of building it, testing it and reviewing it, you'll discover new perspectives and/or requirements that changes the initial specification. ! Next. People are productive in quiet working environments. Getting into the zone is key for developers to be productive. In a work for hire situation, you don't get to dictate the environment but it is worth noting that it is damn hard to write good software in a coffee shop. At least, without headphones. ! The best tools save time. Slow computers waste time. And when you're paying a consultant, you don't want the charging you for time where there laptop takes 10 minutes to boot. I'm not kidding. I know people who work with laptops that take 10 minutes before they can do anything with it. Luckily, that person is not a consultant but still.. !
• Do new candidates write code during their interview? ! • Do you do hallway usability testing? Joel Test Last three real quick. If software isn't tested, then it doesn't work. Period. If you're not testing the code that your consultant is producing, then you don't know that it works. Someone has to approve the work. It doesn't have to be you but it needs to be someone other than the person writing the code. ! Okay, I'll give you that the next to last one doesn't make a whole lot of sense to ask about but you want to know that the people you're hiring are competent. ! Finally, hallway usability testing is incredibly useful. The idea is that when you ask someone to use your software that you think works great and is absolutely perfect, you'll learn all kinds of things watching them try to work with it. ! !
a great website called howmuchtomakeanapp.com where you can go and walk through their wizard which will ballpark an estimate based on a bunch of great questions. you should check it out. ! !