Showing posts with label outsourcing. Show all posts
Showing posts with label outsourcing. Show all posts

Friday, March 7, 2014

What You (Non-Tech Founder) Need To Know About Outsourcing - Part 1: Selecting Your Outsourcing Partner


Not so long ago, being a startup founder meant being a tech guy. Alternatively, you're the business guy who had to recruit the tech co-founder to get your product built. These days, building a mobile app is no longer impossible without a tech co-founder. And even for the tech co-founder, you can easily widen your technical muscle (say you're a backend guy and need an iOS developer) without having to give away equity. But anyone who's ever outsourced will tell you it's not that easy. 

We built Melltoo, social classifieds marketplace, a mobile app for iOS and Android, by outsourcing. We hired a freelance UI/UX designer from Ukraine and had the coding done in India. We built a great product (download it to believe it!), but it was neither easy nor quick. Here are some tips based on our experience to help you select your outsourcing partner successfully. 

1. Know what you want
First and foremost, you must know your product. What is the product you are building? What are the features that need to be built? How much time do you have? How much money can you spend? Who is your target audience (affects the UI/UX)? What is the brand identity (again, UI/UX)? 

Next, you must know your own work ethic and the expectations you have of your outsourcing team. For instance, entrepreneurs like us tend to work around the clock. We send messages to our UI/UX guy and our coders at all times of the day, night, and weekend. Our Ukrainian designer does not reply outside of work hours, but our Indian coders quite often do. If you are someone who needs immediate answers, then you should look hire people that don't mind providing them immediately. 

2. Understand the development process
You are not a tech guy, but you should still do your best to understand how tech products are built. For instance, read up on agile development or the difference between PHP SQL v ASP.net. The aim is not to learn how to do what your tech team is doing; rather, it is to familiarize yourself with the processes. In this way, you will not frustrate yourself or your tech team with unrealistic expectations. These days, agile development is the preferred approach to development. What this means is that your team will be focusing on general functionality before details; so if you keep nitpicking the details because you don't understand agile, then you will end up driving yourself and them nuts. 

3. Do your research on outsourcing
If you google mobile app development, you will get about 800 million hits. Not very helpful. First, narrow it down by country. Which country you develop in depends on a number of things: your budget, your language proficiency, your work ethic, distance, time difference, the type of app you are building. We started by looking at Romania first. Romanians produce excellent work and are known to be professionals; as a result, they are a popular outsourcing destination, which means higher prices and lower availability. We then moved to Ukraine. Again, Ukrainians are known to be professionals and design-oriented. Their prices are moderately lower than Romanians but availability remains an issue and we were told our app would take 6-8 months to build, at least. Next, we looked at India. Costs are low and availability is high but a couple of bad eggs have made it such that outsourcing in India has a bad name on the Internet. However, in talking to a number of Indian friends (thanks Suhel Khan!) in the tech industry, we were reassured that outsourcing with Indian companies was the way to go.

4. Take your time in selecting your outsourcing team
Selecting your outsourcing team is second in importance only to selecting a tech co-founder. Your outsourcing team can make or break you. They can help you launch your app in 3 months or they can cause you to give up on your business after 6 months of bad development. The only thing that differentiates them from a tech co-founder is that you don't have to buy them out if things don't work out. 

Once we decided on India, the next step was to narrow it down. Through sourcingline.com, we identified five companies in India that we wanted to work with. We read everything we could about them, both good and bad reviews. We spoke to their sales people, got a ballpark quote, asked for references of previous clients and called those clients. We pored over their portfolios and looked at every app they built that was remotely similar to ours. We identified the technical strengths and weaknesses of each company and took detailed notes of everything.  

Then, we narrowed it down to two companies. At this point, we signed a non-disclosure agreement and provided them with a detailed description of the app and its features. We also did a mock-up of the app that highlighted some of the main features and went over it with each company using teamviewer.com. At this point, we requested a final quote and a sample logo design in order to help us make the final decision. This process took a month and a half. All throughout, we were communicating with the companies and asking them every question that popped into our heads. Not only was this process useful in helping us select who we wanted to work with, it was beneficial in getting technical input for product development purposes. It also led us to select a freelancer for our UI/UX design, but that's a different blog post. 

And by the way, do not be shy to negotiate. It never hurts to ask, the worst they can do is say no. Sometimes, a company is willing to accept a lower bid if they believe in the project and/or if they don't have any other projects going on at the time and need something to keep their people busy. 

5. Communicate well right from the beginning
Even before you engage with an outsourcing partner, be sure that you are communicating well. Make sure they understand your project and its scope. This is the foundation for a successful outsourcing relationship. In our case, because of some paranoid fear (my co-founder!) that they would steal our idea, we failed to properly communicate the scope of our project to our outsourcing partner. Naturally, they underestimated the scope of our project and quoted us a figure that was too low. Once we finalized everything and begun going into details with the actual team of developers, we were told that the sales person made a mistake on the quote. Fortunately, we had made sure that they incorporated our app features documentation and wireframes into the work contract. So the company had no option but to renegotiate the deal with highly favorable terms. 

If you would like to hear my recommendations for outsourcing partners in India, please tweet me @melltoo_mom.

To see what is possible with outsourcing, download Melltoo for iOS or Android:



Saturday, February 22, 2014

Why You Should Invest in a UI/UX Designer

Find Melltoo in the App Store and Google Play Store

If you are outsourcing your mobile app development, or even if you are doing it yourself, you should hire a UI/UX designer or make sure your development company has a very good one on board. Mind you, an experienced freelance UI/UX designer doesn't come cheap. Expect to pay between $35 - $50 per hour. 

When we built the first version of Melltoo (mobile app--social classifieds market), about 25% of our development costs went to the UI/UX designer. At first, we had no plans to hire a UI/UX designer given that 'app design' was built into the cost of development. So why hire a UI/UX designer when the developers were already volunteering to do it for no extra cost? 

What is UI/UX?
First, let me say that  UI/UX is much more than just design. UI refers to user interface and UX refers to user experience. To this day, I still can't confidently tell you the difference between the two; but in plain English, UI/UX refers to the look and feel of the app and how it works. UI/UX is what users see and interact with.

Web 3.0
The web 2.0 ethos of collaboration, open source, and technology as a platform has now progressed to web 3.0.  Technology itself is no longer enough; technology wrapped in a beautiful UI, that offers a wonderful UX, is what users of today want and expect (thanks Nima of pitme.com for opening my eyes to this!). To me, that just means that web 3.0 is all about the mobile experience. Given the lack of screen real estate and the preference for native apps, a focus on UI/UX is absolutely critical to the success of a mobile app. Unlike the 13-15 inch web page, there is simply no room on a 4-5 inch smartphone screen for redundancy (e.g. two buttons that do the same thing).

Let me give you an example. For those of you who are unfamiliar with Melltoo (Go download it! Links are below), it is a mobile app platform for a consumer-to-consumer marketplace. It is mobile classified ads with robust social features and built-in instant messaging. We are currently working on an important new feature that alerts users of new ad listings that match search criteria specified by the user. This is quite straightforward and most web-based classifieds sites have this. But things are not so simple on mobile. Our first headache is how/where/on which screen to introduce a button/link/icon that indicates this new feature. Since we don't have the room for a text explanation of the feature, we need a strategically placed button that is either one-word or an icon that instantly conveys what the feature does. Can you think of one? I can't. That's where the UI/UX designer comes in. 

By the way, if a user cannot figure out what your app is about or how to use it within the first 30 seconds, say hello to the trash can. 

In some cases, the app developer is a UI/UX designer as well. But that is rare. You know what they say: Jack of all trades, master of none. More than likely, your developer is a hacker who can write the code that your app runs on. But knowing how to build and what to build is a different thing. Developers don't always have the user in mind when they code; and even when they do, their knowledge of code often blindsides them. They know how to navigate things that the everyday non-techie doesn't. 

That's where the UI/UX designer comes in. He/she will design a UI that is not only beautiful but also user-friendly and 'dummy-proof'. With this blueprint, the developer has a much easier time coding since he/she can focus on optimizing code as opposed to design and screen-flow. That's why app development is a team effort. As a matter of fact, it took a UI/UX designer, an iOS developer, an Android developer, a backend developer, and a quality assurance guy to build Melltoo. 

Finding a freelance UI/UX designer
Finding a good UI/UX designer isn't all that difficult, which is not to say it's easy either. Unlike code, UI/UX is visual and can be seen and experienced. If you are looking for a freelancer, try behance.net or dribbble.com. You can browse some portfolios to get a feel of the style that works for your app and your audience (not just a style that you like!). This is obvious. What is not so obvious is that the designer you pick needs to have an understanding of your business, as much as a tech co-founder. Not only should the designer understand the functionality of the app, he/she must also understand the problem the app is trying to solve and how you plan on monetizing (or not) the app. This is crucial in laying down a framework for future iterations of the app. For example, if you intend to monetize with banner ads (eewww!), then important app elements should be located away from where banner ads are placed to avoid the "fat finger" problem, where users accidentally tap on the banner ad while aiming for something else. Previous work by the designer on a similar app is highly desirable. So be sure to communicate what your business is about and check the designer's understanding by asking him/her questions about your business. (More tips on working with freelancers in a post I have yet to write.) 

If you are now convinced and are looking for a UI/UX designer, I can recommend a couple that I have worked with and know to be reliable (they are not all reliable!). But you have to 'pay' me by following me on twitter @melltoo_me (and I will follow you back so you can DM me). Alternatively, like our Facebook page (https://www.facebook.com/Melltoo.me) and write us a message there.



Sunday, February 16, 2014

Agile Development for Dummies (aka Non-Tech Founders)

What it means for you as a non-tech startup founder...

Cartoon by: adamprescott.net

We built Melltoo (mobile classifieds with built-in instant messaging, launching 1st March 2014 for iOS and Android) by outsourcing app development to India. Every developer we contacted spoke of "agile development". We googled it of course and semi-understood but plunged in anyway, ignorance is bliss in this case... 

The tech writers say that agile software development is all about iteration and re-iteration. They contrast this with the traditional "waterfall model" of software development. In my limited understanding, waterfall development is a systematic process where each component of software is built and perfected before development proceeds. In contrast, agile development is adaptive and flexible and multiple components of software may be developed simultaneously and put together, then taken apart, then redeveloped according to the needs of the user. Development teams work out a rough prototype then improve on it, then improve on it, then improve on it some more. 

This is all good and fine but what does it mean for you as a non-tech startup founder? Let me share some insights...

1. In the past, software was sold and distributed as a CD. Remember those large cardboard boxes that were basically empty except for that one CD? These days, software is typically distributed to end users through downloads. This makes agile development possible. If you have to burn a million CDs to be sold, you better have a software product that is as near to perfect as possible. Otherwise, your entire inventory could be rendered worthless if a bug were discovered. With downloads, if the first version was flawed, it is easy to replace it with a debugged version; best part, users won't even notice. 

2. Agile development is the preferred approach today due to widespread internet connectivity. Because our devices are always online, software companies are able to build automatic update capabilities into their products.  So if the product is not 100% perfect, or if a bug is discovered, or if new features are added, the software company can update  the product without having to do a massive recall. 

3. Agile development is also popular because it means that you can get your product to market in a fraction of the time it takes with waterfall development. Since you are not looking for perfection at each stage before moving on, delays tend to be fewer and development can continue even if problems are discovered. 

4. Agile development makes it possible for you to adapt and adjust your product based on user feedback. New features can be pushed out as an update. This allows a company to be highly responsive to users and to pivot quickly if necessary. 

5. Product development is ongoing and will never stop. So don't get rid of your overseas tech team just yet. In addition to working out the bugs, you will probably end up adding and subtracting features; and in some cases overhauling your product entirely based on user feedback. And let me repeat: product development will never stop; and should never stop because you need to continuously innovate and improve on your product to remain viable and competitive. 

6. Do not strive for or expect perfection when you launch your product. Agile development leaves plenty of room for fixes, adjustments and improvements post launch. The important thing is to get your minimum viable product to market as soon as you can. Once you are out there, user feedback will be your guide to product development. What you were obsessing about perfecting might be something you end up throwing out because users don't like it. 

7. Your tech team is not lazy, sloppy, or whatever; and they are not trying to "get you". They are "not fixing that problem" not because they don't want to, but because it will slow them down and you might end up chucking that feature out later anyway. 

Agile development is not only the preferred approach these days, it is the only feasible option. If you do not want to be in a situation where you are stuck in development forever and go to market 2 months after your competitor, then get comfortable with agile development. For us, who are part of the "old school", agile development was difficult to swallow. We kept trying to perfect everything and fix all the bugs before moving on. This led to friction with our developers (who are all much younger than us) and to unnecessary delays. Understanding the approach has brought us new clarity about where our efforts are best spent and how best to allocate our limited resources.

Download Melltoo today to see what agile development produced!