How to choose a technology framework and work with developers
Choosing a framework for your mobile app or web platform can be tough because there are so many options. Then working with developers on your project can be super difficult. In this episode I help you through this process.
Here’s the transcript from this podcast episode, please excuse any typos!
In today’s episode I’m going to talk about how to choose the right framework or language for your MVP. And then I’m going to go through the development process a little bit more in detail so that you understand how you can actually build an app, or a website, and not get so frustrated with all the challenges that are going to pop up. The first thing to do when you choose a framework or a language for your platform or your mobile app or your website is determining what functionality, do you need and what audience are you going for as well as what devices. Are you looking to get your audience on. For example, if you’re going to build a search engine for dog food. Well, you can probably get away with doing something on a website that is mobile responsive I think WordPress, or maybe you can use react j s which is a JavaScript platform made by Facebook, and includes like HTML and CSS, if you’re just looking for a basic website for your business or for a product you’re selling again you can go with WordPress, or something simplistic, I would stay away from Squarespace. And all those pay per month to use their drag and drop platform, because the first thing is they’re expensive. The second thing is you don’t really get the code, it’s all a drag and drop imagery. By using WordPress, or even just bootstrap themes on HTML, CSS, and JavaScript, it’s a little bit of a learning curve, but in the long run, you’re going to save money because paying for a server is only about $5 a month. And you’ll own the domain name you’ll own the code you can change it or move it whenever you want. Nobody can take it away from you. And if the business isn’t doing so well for whatever reason, you don’t have to shut down that 30 to $50 a month Squarespace account or whatever account you have that’s cost money, because you’re only spending about five bucks a month and it’s not so bad. So what are the different frameworks and how do they work and different languages and things like that people always ask me what should I build to happen. Well, it goes without saying, if you’re going to build a native mobile app.
Think Instagram or Snapchat or Facebook or, you know, any app that you use on your phone today. Apple has their own language called Objective C, and also Swift, that you build in a program called x code. So it’s their own programming language, it’s proprietary, it does have a drag and drop interface, but also mostly it’s code that you are going to be using. And then the Google Play Store uses Android or Java language to build their apps. And so there are two different types of languages that you have to use for Apple phones and Google phones, or iPhone and Android. But then there’s something called a cross platform. Think Xamarin made by Microsoft or PhoneGap or React. js, for example, these are what you would call web platforms like HTML, CSS, and JavaScript, but they use these wrappers to make the overall application work natively on iPhone and Android so you basically build it in this web interface type thing where it does work as a website so you have the website the web platform, and then you build it adaptively or responsively to adapt to these different devices that you’re using, whether it be a laptop and iPad, or a smartphone. This is typically what I tell people to do in the beginning stages of things because building a web app that’s cross platform and works on any platform or device is generally cheaper and takes less time to build than it would be a native app. And so if you’re just getting started and you have this great idea for a platform, a new search engine or e commerce platform or like a social network or whatever kind of app idea you have, I would say go with something like Angular or React. js, or Xamarin, something cross platform that you could launch on all the platforms at once, and when you do an update, you can update all the platforms at the same time. Now, there is a downside to this. Typically when you do this, you can’t think of it as being a completely perfect platform, because you are kind of faking the rappers, it’s not really native iOS or Android so there are some limitations, typically that has to do with the camera functionality because you’re not really using the native camera functionality. Yes, you can use what’s called libraries or plugins so you can kind of plug in a library to use the code with your platform to make things easier, but there’s another downside to that too, when you use a library, if the developer who built that library didn’t update it and there’s an error or Apple or Google is not allowing the rejecting the app because it’s using that library. Well then you’re out of luck you have to wait for the developer to, you know, send the commit to GitHub, which is a programming code development repository, called github.com. If they wait for the developers to commit or submit code fixes to that repository.
I know I’m getting a little technical here so what I’m going to do is go into different technologies so let’s say you’re building a search engine, or you’re building a social network, and you only want it to be a website for now, which is cheaper and faster to build. Well, you may consider either going with WordPress, or PHP and MySQL which is a very popular choice for websites and social networks and search engines. There’s also Ruby on Rails, and JavaScript, and a lot of other languages you can use the Python, but for the most part, most people feel more comfortable using PHP MySQL, you know, cross platform technologies like I mentioned, or WordPress, or just HTML, CSS, and JavaScript. Now when building this MVP, like you’ve heard in different episodes I’ve given you so I’m not going to touch too much on this if you have to be sure you’re testing the platform every day with people, not just you and your mom and your dad or your brother or your friends. You have to pick at least 20 outsiders. It’s not that many people, I’d say 10 to 20 people who are in your circle, who are testing your platform and giving you crucial feedback through surveys or in person, suggestions or feedback, and you can show them screenshots of your idea or, you know, just show them your prototype whatever you built and say hey what do you think What do you like what do you not like, and then you want to kind of build on that you want to build on that feedback and people seem to forget to do that or they don’t want to they think that it’s better to just build the entire thing first and then launch the platform. That’s just a big mistake, you’re going to find out that when you do that, you’re going to have to end up changing a lot of stuff along the way.
Some of the challenges you’re going to face when developing a platform. When working with programmers you’re going to miss deadlines, and you might even go over budget, because one of the biggest things I tried telling people when it comes to programming is it usually costs twice as much money and takes twice as long to build your platform. It’s frustrating. And some people just don’t understand why, but it’s just the nature of the beast, it’s how it works. So, what I tried to do to mitigate that risk and to try to counteract that is I tell people, some of these things so for example, don’t add too many features at once. Just stick to one feature. Get it built, test it, and then move on to the next feature. Maybe that’s one feature per week, or even one per month. Take your time. Don’t try to flood it with features. Because when you add a new feature. It will most likely break an old feature. This is completely normal. And it should not cause any concern, you should just be expecting bugs to pop up because they will pop up all the time. They have to be fixed, and they’re not always easy to fix. This is completely normal because unforeseen circumstances will appear in the middle of the development process that can push your launch or your updates back weeks or even months. So I always try to tell my entrepreneurs that I help.
Don’t tell your users via email or social media or any other method that you’ll have a feature or a version or an app update ready by a certain date, only send that message up after the app is published to the store or the website is updated because if you don’t do that people are going to be like well what the hell why you know why isn’t it working because you didn’t get approved by the App Store. Well your website wasn’t finished on time if you thought it would be. Which reminds me, developers cannot control Apple or Google when it comes to the app review process, they will probably reject your app at least once. Okay, so you can’t blame developers when Apple or Google doesn’t accept your app. Sorry, just don’t blame the developers, please. Also when your developers have issues with your app, trust them, give them the grace and the time to figure out how to fix the issue, fixing issues takes time. Bugs should not be expected to be fixed overnight. I think one of the things that people forget is that development is very very difficult, especially when you want a high quality platform. It takes time to build these complicated features, while making sure that performance of the platform is still scalable. So one of the things I try to tell entrepreneurs, even though it seems to go in one ear and out the other is to accept the fact that challenges blockers walls
bugs and issues will pop up during the development process on a regular basis. And if you can acknowledge this fact, it will allow you to set certain expectations, and it’ll allow you to understand that the deadlines that you want are unreasonable and they’re not going to work. Which reminds me, if your developer misses a deadline, please for the love of God. Don’t be upset with them, don’t chastise them. Don’t you yell at them, don’t tell them how upset and disappointed you are, it’s not their fault. It’s beyond developer control because bugs are always going to be part of the development process.
And here’s the last piece about development that people don’t seem to understand. Even when you quote and unquote finish your app and launch it. It’s still not finished, why is that well because APIs and SDKs and others third party software that you might use, including operating systems like iOS or Android, have to be constantly updated to current software versions, you know, in the news right now Apple is releasing iOS 13, guess what, all the developers out there that have apps have to update their app to meet the requirements of iOS 13, you cannot do that if you don’t things might not work they might break and then your user will be complaining, you have to update the app. So, even if you think your app is finished. It’s not because there are technology standards that are distributed by companies, every single day that you have to keep up with it is an ongoing process, it never, ever, ever ends, remember that. So once you choose a framework or language that you prefer, or you find a developer who tells you which framework or language to use. Now it’s time to start building your MVP, and giving your developer a break, giving them a chance to get through the bugs. A typical work week would be building a feature or two or a bunch of features, and then going through rigorous testing of the front end and the back ends of the app, or the website to make sure everything works. If it doesn’t work, or something doesn’t work. Don’t get upset, like, if anything, you should be expecting those bugs and you should be happy to find them before your users do put them into a task management tool like Trello Trello comm, which is amazing. It allows you to put cards of these bugs with screenshots and comments, and then you can drag and drop them to different lists like to do list or finished and testing or done, etc. And you can have your developer kind of drag and drop these cards to different lists as they’re working on them.
It gives you a good way to organize your bugs, organize your feature lists and, you know, kind of see the bigger picture all in one shot, and it’s free to use and it works on mobile phones and websites and it’s all you know synced together so if you do it on your phone, it shows up on the computer so I use it every day. It’s amazing. But the point here is to put your bugs into Trello or anything, a Google spreadsheet, a Word document anything you can jot down your bugs and then give your developers a chance to fix those bugs, don’t expect them to get it done overnight bugs are hard to fix, and especially if you hire a developer after you work with a different development company so let’s say you work on an app with a programming company that you hired, and the app, they gave you is not exactly what you want it so you had to find a new programmer. It’s going to take weeks for that program or that company to start figuring out how to get your app up and running to expect them to get that up and running in a week or two is completely 1,000% on reasonable, getting upset at that developer for not getting the app up and running after a couple weeks is just 100% unreasonable. You have to give developers a chance. and you also cannot hold these bugs against them like these bugs are here Why are these bugs here Why is the app broken Why is the app not working because you got to give us a chance to fix it.
I mean, it makes no sense to me when people just think automatically bugs should not be in apps or misspellings, or you know, the color is wrong. So typos. Come on, typos happen everywhere in life, whether it’s an article you write online or a book you write or an essay paper or a website, everything includes typos and if there’s a typo, instead of getting mad at the developer, just tell them to fix it, put it on Trello. Same goes for any other issues you might have with an app, you have to be reasonable. When you’re unreasonable with a developer, they don’t want to work with you. And that’s a fact developers pick and choose the projects they work on carefully because they want to know if they’re going to enjoy the project, be enjoy working with the entrepreneurs and see this idea worth it to build like they actually like the idea. If any one of those three things don’t work in their favor, they’re going to quit, they’re going to find something else. So you should treat them accordingly. With respect and trust and patience, above all patients, please. Hopefully you’ve picked out a framework, and you find a programmer to help you build your dream platform. If not, feel free to drop a line in my comments, or check me out on my website and ask for help because I do have a dev shop that I launched called full stack MVP, which is FullStackMVP.com, and you can see a little bit more about how we help entrepreneurs like yourself, build your dream platform.