Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Navigating Your Options for Mobile App Development

Navigating Your Options for Mobile App Development

This presentation was given on 2014-06-04 at the Soundboard cross functional marketing conference, http://perfectpitchconcepts.com/soundboard/

Jonathan Wallace

June 04, 2014
Tweet

More Decks by Jonathan Wallace

Other Decks in Technology

Transcript

  1. Jonathan Wallace @jonathanwallace Navigating Your Options for Mobile App Development

    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...
  2. Jonathan Wallace @jonathanwallace You will be fired from your job

    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.
  3. Jonathan Wallace @jonathanwallace http://www.statesman.com/news/news/local-govt-politics/remarks-from-obamas-speech-at-applied-materials/nXm24 Trust Me now you might be

    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..
  4. Jonathan Wallace @jonathanwallace http://www.statesman.com/news/news/local-govt-politics/remarks-from-obamas-speech-at-applied-materials/nXm24 A new title President Obama made

    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.
  5. Jonathan Wallace @jonathanwallace https://www.itriagehealth.com/ iTriage All of that to say

    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? !
  6. Jonathan Wallace @jonathanwallace http://401kcalculator.org/ How much?!? If you haven't guessed

    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) !
  7. Jonathan Wallace @jonathanwallace http://www.bignerdranch.com/about-us/nerds/jonathan-wallace.html A new title so earlier i

    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. !
  8. Jonathan Wallace @jonathanwallace • Native (Mobile) App • (Mobile) Web

    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.
  9. Jonathan Wallace @jonathanwallace Native App https://flic.kr/p/6pt4aD a native mobile app

    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. !
  10. Jonathan Wallace @jonathanwallace Web App https://flic.kr/p/aTPqcx a web app, on

    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. !
  11. Jonathan Wallace @jonathanwallace Hybrid Approach https://flic.kr/p/7nkKYM does anyone know what

    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. ! ! !
  12. Jonathan Wallace @jonathanwallace Facebook Native vs. Mobile Web http://sixrevisions.com/mobile/native-app-vs-mobile-web-app-comparison/ Here’s

    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..
  13. Jonathan Wallace @jonathanwallace Facebook Hybrid vs. Mobile Web http://sixrevisions.com/mobile/native-app-vs-mobile-web-app-comparison/ the

    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.
  14. Jonathan Wallace @jonathanwallace http://sixrevisions.com/mobile/native-app-vs-mobile-web-app-comparison/ • http://www.appcelerator.com/ • http://phonegap.com/ Another Set

    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.
  15. Jonathan Wallace @jonathanwallace http://sixrevisions.com/mobile/native-app-vs-mobile-web-app-comparison/ • Faster • App stores take

    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. !
  16. Jonathan Wallace @jonathanwallace http://kpcb.com/InternetTrends Mobile Matters and why does mobile

    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.
  17. Jonathan Wallace @jonathanwallace http://kpcb.com/InternetTrends Mobile Matters Check out this slide.

    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.
  18. Jonathan Wallace @jonathanwallace http://kpcb.com/InternetTrends Mobile Matters This is a very

    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.
  19. Jonathan Wallace @jonathanwallace http://www.wired.com/2014/05/cheap-smartphones Mobile Matters According to Ericsson–the world’s

    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. ! !
  20. Jonathan Wallace @jonathanwallace Recap https://flic.kr/p/5q1RC4 so let's recap, we've determined

    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? !
  21. Jonathan Wallace @jonathanwallace ! • DIY ! • Contractors !

    • 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.
  22. Jonathan Wallace @jonathanwallace DIY ! • http://www.mobileappwizard.com/ • http://www.shoutem.com/ •

    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. ! !
  23. Jonathan Wallace @jonathanwallace DIY Pros / Cons ! • Fast

    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. !
  24. Jonathan Wallace @jonathanwallace Contractor ! • Cheaper than consultants •

    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.
  25. Jonathan Wallace @jonathanwallace Consultant You're going to spend more money

    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.
  26. Jonathan Wallace @jonathanwallace How do you know? ! • Prior

    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. !
  27. Jonathan Wallace @jonathanwallace http://www.joelonsoftware.com/articles/fog0000000043.html • Do you use source control?

    • 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. ! !
  28. Jonathan Wallace @jonathanwallace http://www.joelonsoftware.com/articles/fog0000000043.html • Do you use source control?

    ! • 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.
  29. Jonathan Wallace @jonathanwallace http://www.joelonsoftware.com/articles/fog0000000043.html • Do you have a bug

    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.
  30. Jonathan Wallace @jonathanwallace http://www.joelonsoftware.com/articles/fog0000000043.html • Do you have a spec?

    ! • 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.. !
  31. Jonathan Wallace @jonathanwallace http://www.joelonsoftware.com/articles/fog0000000043.html • Do you have testers? !

    • 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. ! !
  32. Jonathan Wallace @jonathanwallace http://howmuchtomakeanapp.com/ How much?!? One final thing. There's

    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. ! !
  33. Jonathan Wallace @jonathanwallace Navigating Your Options for Mobile App Development

    SoundBoard Cross-Functional Online Marketing Conference Jonathan Wallace