Monday, August 18, 2014

Ten Simple First Steps to Starting an App Business



H
ave a great app idea? But don’t know how to get started? Well, either did I until I took the plunge into the app world head first. Lucky for you, I made many mistakes before I came up with these 10 simple steps to get started. To learn more about my app journey read “Have an App Idea? Start a Business: How I didit under a Month (Part 1)” and “Failing is Succeeding.”


(1) Market research
The reality is that the Apple App Store currently has well over one million apps, and the number of apps is increasing every single day. In fact, many experts argue that the app store is over saturated.



 For example, apps like the calculator app are in such abundance and diversity in the app store that Apple has banned new uploads of this particular type of app. The phrase “there’s an app for that” has never been truer. If you don’t believe me, visit the app store and you will realize how many types of apps there are.

 Unfortunately, for most of us, our earth shattering app idea has probably already been created. So what does this mean for you in your journey to create an app business?  As soon as you have an idea, you must ask: (1) Has your app already been created?; (2) What apps are similar to yours?; (3) How does your app stand out from the competition?  

Now, even if your app idea has been taken, do not lose hope. Many developers still compete in the crowded app market space by improving upon an already created app idea. Nevertheless, we must ultimately ask ourselves how our app is going to leverage a reasonable market share, attract and keep loyal customers, while turning a profit. If you have reason to believe that your app is unique enough to accomplish the aforementioned points, then proceed to step two.

(2) Create a flow chart
Although app ideas can range from simple to complex, even the simplest ones require an outline or flow chart. Think of your app like a puzzle, with many pages, buttons, functions, and alerts organized into a systematic and logical framework that allows your app to function. As with most things in life, there are many ways to skin a cat, but, in the world of app development, you must find the simplest way possible to organize the framework or skeleton of your app. Always think of your users, otherwise known as your customers, when developing this chart. Think of what would make this app easier and more intuitive for your users to use and keep using.

Also, take into consideration your future developer. Of course if you are a developer yourself then you will not have to worry about explaining how your app functions to a third party, but, for those that do not have the developer acumen, you will have to hire a contractor to code the app.

As with all communication, the message can be lost in transition. In other words, it can be very easy for your developer to misunderstand or misconstrue your idea. If he begins the app development process without the exact and correct framework for how you want your app to look and function, you are asking for future headaches, extra development cost, and loss of time because your developer will have to fix any inconsistencies with his beta version and your original idea.

So, you must break down your app idea into a step by step logical progression for how the app functions via a flow chart. See the example below:




 Through this process, you will realize there are many steps, functions, alerts, push notifications, etc. that the app requires, but were not readily apparent when you first envisioned the idea. Don’t get ahead of yourself yet, however. At this point, we simply want to outline the broad logical strokes of how the app works. That is, when creating your flow chart, focus solely on how each page of the app interconnects. In the next step we will illustrate how each page of your app is organized.

(3) Create wire frames
You now have your flow chart in hand. Think of this flow chart as the skeleton of your app. But, the app still needs the tendons, ligaments, muscles and veins, to give the skeleton life and the ability to move. Although your flow chart has described the broad logical structure of your app, it has not yet detailed how the app will look, where the buttons will be placed, and how the user will interact with the app. As a result, we need to illustrate each page of your app. This is the beginning, the embryo of your user interface (UI). I must be clear that we are not yet focused on graphic design, colors, or logos, or any of the glitz and glamour—the skin—of your app, but, rather, this preliminary illustration is what we call wire framing. Wire framing is jargon for basic artwork or drawings that illustrate how your app will look from screen to screen. See the example below (of course you can use online wire framing software so that your wire frames do not look so crude):



Finally, once you have completed your market research, created a flow chart, and illustrated the look of your app through wire frames, it is time to hire a developer.

 (4) Post an ad on Odesk.com for a developer
Odesk.com, in my opinion, is the best place to find free-lance developers. In a perfect world, we would all know how to code. For that matter, we would also have the time, energy, and dedication to learn every skill that we needed to succeed in life. Yet, not only is this ideal not practical, but it is far from necessary.

The reality is that most of us do not know how to code and are not software engineers. But don’t despair. Remember you are a business owner. As such, you are the person who creates a network—a team—of professionals who can carry out your vision. Your first hire will be your developer.
This leads me to a slight digression. In many ways, this aspect of networking is what makes us humans so unique from other species. Our intelligence as a collective whole lies largely not in any one person’s ability or knowledge, but rather in the collective knowledge that is passed not only from one to another, but from group to group, and generation to generation. In fact, we are the only species that has this ability to pass on shared knowledge through the generations.




Ultimately, despite this awesome human ability, all networking humbly starts with reaching out to the people you need, and posting an ad on odesk.com is a very simple way to accomplish this end.

First, create an account and log in. At the top left of the screen, you will see a tab that states “Recruit.” In this tab, to the left of the search bar on the right hand side, you will see a green button that is labeled “Post Job.” Click this button, fill out the subsequent form, and push another “Post Job” button at the bottom of the screen. It is that simple.




As a point of advice, I would be as descriptive as possible in the ad without giving away any proprietary ideas that you don’t want the world to know about just yet.

Also, many of you are probably thinking at this point, how can I trust someone I have never met with my precious idea, my time, and my hard earned money. Of course we will proceed cautiously over the next several steps, but I will explain why ultimately we have nothing to worry about. In fact, hiring online contractors is not only a very safe and reliable method for accomplishing our app goals, but it is the most cost effective method for doing so.

(5) Screen your applicants, schedule your interviews, and have them sign a non-disclosure agreement
You’ve posted your ad! Now it’s time to reap the benefits. In my experience, I had over forty applicants in response to my job posting within two days. In full disclosure, I was shocked at how easy it was and that so many experienced developers were jockeying for a place in line to be hired by me—a person who has never created an app before and who, at the time, had little knowledge of the app development process.

But what do you do with all of these applicants? First, you are going to have to screen out the applicants who do not fit your criteria. There are three things you should look for when screening your applicants: (1) You should look to hire developers with more than one hundred Odesk hours under their belt. For the hours worked, look at the user feedback. Were people happy with their performance? Make sure that their ratings are above four on the one to five rating scale; (2) Hire a developer who has a minimum of five years of experience. Through my anecdotal polling of many developers, this seems to be the minimum requirement for making a hire; (3) Research the developer’s portfolio, which should be listed in their application and profile. Your hire should have developed a similar app to the one you are trying to create.
After you have found four to five solid applicants that you want to move forward with, you should respond to their applications by sending them a response message. In this message, thank them for their time and ask for a time that works best for them to interview via Skype or Gchat.






As a note, most of your applicants will be from overseas if you currently live in the United States or North America. In fact, most Odesk contractors tend to be from Eastern Europe, Asia, and India. As a result, the most cost effective method for talking to these individuals is via Skype and Gchat, both of which are free online services.



Also, in this message, ask them to sign a non-disclosure agreement (NDA). Relax, you do not need to hire a lawyer to draft an NDA for you. In fact, most developers will have their own NDA handy. Regardless, still supply your own, along with signing theirs. I received my free NDA through Rocketlawyer.com.
This form should be signed prior to jumping on the Skype or Gchat call. As discussed, although many of these developers are trust worthy, you should still take this minimal step to protect your idea. But, also, most legitimate developers are used to this process and will not have a problem signing your NDA. I see their willingness to sign an NDA as a first sign that they are trust worthy and legitimate. Of course, only the interview process can really tell you if you can or cannot trust a given developer.

So you get the individual to sign an NDA. But should you still be worried that they may steal your billion dollar idea, despite the fact that they signed an NDA? You may reason that the developer would be hard to bring to court, especially if they are based overseas. Furthermore, even if you could bring them to court in the case that they stole your idea, you may not have the funds to pay your legal fees. Last, it is very hard to prove that the person stole your idea even if an NDA is signed. So based upon all of these worries, shouldn’t we give up? No!

Here is why: specifically, an idea is nothing without the massive amount of work that goes into the development process of the app. My app, for example, is scheduled to take four months to develop. It will take hours upon hours to perfect the front end design and to code the back end of the app. And this does not even take into account the cost and work of marketing. In addition, most apps will fail, regardless of how great the idea is. Last, these developers, many times, already have their own projects in the works. Their steady source of income comes from people like you. So, stealing your idea is equivalent to committing Odesk suicide. This is because Odesk also has a built in layer of protection, such as an NDA and an implied contract that states all of the deliverables (i.e. code) is yours.  In other words, this evil developer would have a very hard time ever getting hired again if they screwed you over. Taking all of these factors into consideration leads any reasonable person to conclude that even the best idea is not worth stealing.

(6) Interview applicants
Once you have scheduled an interview time, you must prepare for the interview. Create a list of questions that you want to ask. These questions can range from getting to know the person to the technical aspects of the app. These questions should be thought out and should be based upon your research of the app development industry.

In my first interview, although I was the one doing the interviewing, I was not prepared for the technical jargon that would be required to interact intelligently with an app developer. For example, if you do not yet know the distinction between front end development and back end development, then do some more research to gain a general knowledge of how app development works before you begin your first interview.

 I have extensively used https://generalassemb.ly to gain a better understanding of the app industry. I also highly recommend hiring developers on Odesk for informational interviews. I hired three different developers at around thirty dollars per hour for three hours respectively. As a result, I gained a wealth of information that would not have been so easily accessed through other research methods such as mere Google searches, tech forums, or blogs.

Once you are ready for the interviews, it is important to note, that the interviews do not have to be completed in one sitting. In fact, it took many conversations with my current developer, both via Skype and via Gchat, over a two week period for me to make my decision. If a developer rushes your decision or is not willing to take the time to make you feel comfortable, then move on and invest your energy, time, and money into someone else.

Ultimately, the interview process is a personal one. In many cases, you do not have the technical knowledge to ask questions that will get at a developers true knowledge and ability. Consequently, you will rely on the next step—getting a tech savvy individual, in a subsequent interview round, to ask the hard questions. 

For now, in your first round interviews, you are looking at how the person communicates and interacts with you. You must ask are they competent, patient, and well spoken. I look for whether or not the person can, in laymen’s terms, explain his approach to app development. Furthermore, ask if this individual understands what you are trying to accomplish, and do they convey their ability to complete the project in a compelling way. Ultimately, you have to ask yourself are you comfortable with this person.

(7) Have a tech-savvy person interview applicants     
Perhaps number seven is self-explanatory. Simply put, unless you have a software engineering degree or five years of app development experience, then you don’t know what the hell you are talking about. Find a friend with these credentials who can ask the tough questions. Or, if you are feeling up to the challenge, find a developer on Odesk who you connect with, but that may not be your perfect hire. Perhaps you can pick one of the developers you hired for an informational interview. Use this person to interview your prime candidates.




These tech-savvy individuals will be able to tell you whether or not your prime candidates are in fact up to the challenge. Ask your tech-savy interviewer to come up with a list of questions that will uncover the applicant’s true coding knowledge.

 Although it may seem like an added step, the extra effort can save you a lot of time, money, and energy at the end of the day. Last, be upfront with your applicants by letting them know that you want them to talk to your friend who has more technical knowledge than you. As with the NDA, do not proceed with the applicant if they are not willing to have this extra conversation.

(8) Negotiate price and time-line that includes milestones
Do your homework. Ask a number of applicants for a quote for building your app. Also, search the web to see what others have paid for apps similar to yours. In addition, there are many different types of apps, ranging from games, to social media, to ecommerce, fitness, and many more. All of these different types of apps require different amounts of work to develop. So, prices will vary widely.

As with any purchase, the cheapest price is not always the best price. For example, one developer quoted me at eleven thousand for only the iOS platform and this development cost did not include the UI design. My current developer quoted me at fourteen thousand, but this price included iOS and Android platforms, a parallax website, pre-launch beta testing, the full UI design, and several other goodies. As a result, although the price was more than the first developer, I got a lot more bang for my buck with the developer I ultimately hired.

Last, make sure that the you NEVER pay the developer in full upfront. Rather, you should set up milestones based upon the different phases of the development. For example, unless you are developing a minimal viable product (MVP), you should have the UI developed first. Perhaps, then you would have the first beta test of the iOS platform, and then a next step could be the beta test of the Android platform. Regardless of how you break down the entire project, setting such goals allows you to mitigate risk because you will see step by step how your developer performs. Ultimately, this will also give your developer incentive to produce top notch work because each mile stone is an interview for the next milestone. In other words, he will not get paid until you approve the given milestone he is currently working on. If worse comes to worse, because you realize your developer is not able to deliver on his work, then you can always jump ship with your money still intact. 

(9) Negotiate deliverables
You must ask exactly what you are getting for the proposed price. But this goes beyond just asking what platforms the developer will develop your app for. Be very specific about what you want in your app. This goes all the way back to number two and three of this blog entry. For example you should be able to negotiate: How many pages will your app have; whether or not your app has push notifications, alerts, or sounds; if your app includes a complex algorithm; if the price includes the UI design; etc. The list can go on quite a while longer. Ultimately, brainstorm a list of functions and characteristics that your app will require and be sure to explain this to the developer before a price agreement is reached.

(10) Sign a contract
Finally! You have made it to step ten. Once all of the previous steps are complete, it is time to finalize your hire. Now, you must sign a contract. This contract is the keystone of the large amount of work you have completed thus far. It should outline every detail of the agreement that you and the developer have reached, including all of the deliverables and the price. Furthermore, make sure that the contract has clear language that gives you entire rights to the code and full ownership of the product.

Many of the better developers or development firms will have their own contract template.  If they do not have this option, proceed with caution. Ultimately, if need be, you can always hire a lawyer to draft a contract, but this can become pricey. There are various contract templates online through sites like Legalzoom.com and Rocketlawyer.com

Conclusion:
And so you have it. These ten steps allowed me—a once tech-illiterate app virgin— to start my app business. In my next blog entry, I will discuss how to legally start your business, and the next steps to getting your app noticed and funded. If you have any questions about this blog entry please leave a comment or email me at bendptv@gmail.com . As always, thanks for listening.

Best,

Benjamin Reed
Bendptv@gmail.com



Monday, August 4, 2014

Failing is Succeeding




R
ead the beginning of this story by visiting part 1: "Have an App Idea? Start a business: How I did it under a month." In my last post I explained, to a limited extent, why taking action today with whatever you are pursuing is a critical first step to success. Furthermore, do not be afraid to invest in something you believe in. 


I had a startling realization about a year ago. Although many of the superstars in our world--Michael Jordan, Michael Phelps, and Tom Brady to name a few--are naturally gifted, many of the success stories that you hear of, or perhaps don't, have resulted from applied diligence over time. Because of examples like the aforementioned superstars, many of us feel inadequate and unable to pursue greatness as a result. Rather, we continue to work a job that we are not happy with, date a person we are not satisfied with, and live in a town that we cannot escape. Hopefully I can help dispel some of these unfortunate beliefs.

In order to make my point, two of my new favorite words are sedulous and assiduous. Yes, I am a geek at heart. All of these words--diligence, sedulous, and assiduous--generally speaking, mean the same thing. They describe an effort that is taken with care, persistence, thoughtfulness, and endurance. Anyone can run a mile. But how many can run ten miles a day for a year, or two, or three? You get the point. 

So, mastery takes time. But this lesson did not come easy for me. For example, I am a lover of the martial arts. Specifically, I am in the process of learning Jiu Jitsu. To date, I have four years of experience under my belt (no pun intended). Also, I wrestled for four years in middle school and high school. Yet, I nearly abandoned both sports early on in my learning process.

For those of you who are not familiar with Jiu Jitsu, it is very similar to wrestling. That is, wrestling and Jiu Jitsu are grappling arts, or, in other words, they are ground fighting styles. In wrestling, the aim is to pin your opponents back to the ground, while in Jiu Jitsu the aim is to get your opponent to "tap" or give up as a result of a joint lock or choke hold. For both sports, needless to say, I am not a beginner. Or am I? 

The reality is that the "beginner mindset" is critical to success in life. Regardless of my successes, I am always questioning, analyzing, and contemplating ways in which I can improve. Whether it's a particular joint lock in Jiu Jitsu or my cadence and tone of speech while giving a presentation at work, I am constantly watching, adjusting, and improving upon my abilities. Time and time again, I here Jiu Jitsu black belts explain that once you reach the rank of black belt, which takes an average of ten years to attain, the journey of learning has just begun. And, having trained for several years now, I completely agree. For those of you who are reading this and cannot relate to the martial arts angle, think of anything in life that you have mastered. Whether it is guitar, singing, painting, or swimming, all of the beginning stages, and, perhaps, much of the middle stages, of learning were painful. Only after the ground work was complete, could the nuanced learning begin.

But, for the sake of completing my point, I will return to the martial arts example. When I was a white belt, I almost quit out of frustration of "not being good enough" or not "getting it." I remember after a particularly difficult training session in which we live sparred, and I was beaten again and again by higher belts. I questioned whether or not I belonged in the gym and whether or not I would ever be good. For those of you who do not know the belt ranking system, in Jiu Jitsu, the ranks are ordered as such: white, blue, purple, brown, black. While I was in the locker room changing out of my gi, or uniform, a purple belt approached me. His message was simple, almost cliché. He said there would be a time that I too would reach the rank of purple belt or higher if I worked hard. But, I was not ready to hear this. I did not believe in myself. I thought there was something that I was intrinsically missing, that "it" factor. 

And I was not alone in my thinking. Despite the fact that we have all heard the classic 10,000 hour maxim that describes the amount of time it takes to master a given subject, many of us continue to be impatient, me included. In fact, it is quite easy to slip into the habituated mood of wanting more and to finish the race quicker than the person next to you. Yet, this mindset is short sited. The quote, "Never compare your beginning to someone else's middle," applies here. The reality is that we are all at different places in our lives, with different abilities, hopes, aspirations, so forth and so on. The end result: once again, be patient with the process and be patient with yourself. Ultimately, for almost every success story, there was a long process of hardships and failed attempts that you cannot see. But, more importantly, the failures, the hardships, and the mishaps themselves are important contributing factors to why success was possible.

So what the heck does this have to do with my app development? Well, my first attempt at hiring a developer failed! Despite this failure, I am happy that it occurred. In fact, if I had not failed, many of my subsequent successes would not have been possible.

And this was no small mistake. It was a nine hundred dollar lesson. I fired the developer because he did not possess the full "tool chest" that was necessary to complete the job. For the sake of clarity, when discussing app development, there are two parts of the app: (1) the front end, also known as the UI (user interface) and UX (user experience); (2) the back end of the app or web api (application programming interface). In simple terms, the front end is the glitz and glamor. It is the pretty effects, cool designs, and fun buttons that make apps so enjoyable to use. On the other hand, the back end is where the data that the app collects is stored and where the basic skeleton or logic of the app exists.

So, again, the reason I fired my first developer was because he was unable to complete the front end design of the app. I needed a developer or several developers who had the collective capacity to design both front end and back end aspects of the app. I now understand that a great front end app design is necessary not only for user adoption when the app is launched, but also, with a clear front end, your developer will have a far easier time creating the back end logic connecting all the pieces of the front end puzzle together. Consequently, you should have this design in place before delving too deep into the back end development.  Furthermore, a clear front end design, that you have agreed is beautiful and logical, allows your developer to continue his work without worrying that he is developing something that you did not intend for him to develop. 

Perhaps this realization that I have outlined above is elementary to many a computer scientist--the black belts of the computer world. Yet, I am not one of them. I am a beginner. The costly lesson was a critical step in my journey of understanding how the world of app creation functions. But more importantly it set me on the path of further learning, a journey that will be fully outlined in my next post. The way I look at it now: I paid nine hundred dollars for an education, but more importantly, the kick in the ass to get it right the next time through.