The Non-Technical Founder’s Survival Guide to the Tech Galaxy

What is common between Pandora Internet Radio, Airbnb, Tinder, NextDoor.com, Coffee Meets Bagel?  All of them were founded by Non-Technical people. While popular opinion is that you need to be a software guru to start a tech-company, it’s not always true. Yet it is noteworthy that a non-technical founder can launch a very successfull tech-business.

Contents

A few months ago I was having lunch with a good friend of mine. A very creative person, full of new and interesting ideas. It was a month before Election Day and he came up with the Idea to launch a new website for detailed, independent comparison of politicians participating in the elections. He knows a lot about politics and social sciences, but almost nothing about software, applications and computers.

He had no Idea where to start with a tech project.

I am working with both non-technical people and software developers more than 15 years. I’ve been a developer, a project manager, and a tech co-founder. And I keep seeing similar problems all the time.

Common problems

So what are common misunderstandings between tech and non-tech worlds and possible ways to solve it? Let’s take a look.

I need a simple application

I received the email asking for a help this morning. My potential customer writes:

“The idea is to develop a simple PMS/ERP”.

The Keyword is “simple”. And I keep hearing “simple application”, “simple website”, “simple functionality”. The problem is – there are no simple applications.  What looks like a simple application on my iPhone is anything but. It’s complicated to make simplicity. And it may include entire hidden system and many work hours under the hood.

I need a coder

Recently I saw a question on Quora:

“I have a great idea for an app, but need a coder. I am willing to pay in money, equity, or both. How can I find a coder?”

Seems like a desperate question. Does he really need a coder? Probably he need a  programmer? Or maybe a developer? These words are very often used as synonyms, but in fact they are not.

  • Coder writes a program code and that’s it. He will create an app for you but don’t expect to receive an elegant solution. So be ready to explain in details what you need and how it shall work.
  • Programmer writes a good code and understand how it works. He understands algorithms and can design a system for you. As a result good programmer can work alone with minimum or no guidance at all.
  • Developers usually understand different technologies, systems and languages. They know how to integrate those different systems to get a new high quality solution. Because good developers know how to work with people and communicate well, they can be the bridge between non tech developer and programmers. But they usually have lots of propositions and possibly their own business too.

I usually have all of them in my team. Because it allows me to have a good mix of skills and not to blow a budget.

Going back to the question, I almost sure he needs a technical co-founder, not a coder.

Where can I find a tech co-founder?

I strongly believe finding a tech co-founder is the best option for non-technical founder to proceed. The one you can count on, the one who can get most of the technical work done. The insider able to dig into the details and generate required high quality deliverables. He will also help you to hire additional developers in the future if needed.

By contrast, outside developer is usually a short term profit oriented. Get job done and get paid. Your future success is not so important.

I’d like to say “you must find a tech co-founder”, but finding a tech co-founder may be a tough task. They already have well paid jobs, they are co-founders or they have their own companies. So unless you have a candidate in your circle, I recommend looking for other alternatives.

Do initial preparations, create some wireframes, prototypes and then you will return to the question about tech co-founder. It will be easier to talk.

So what’s the alternatives? Most often considered options are:

  • Freelance developer
  • Full-time developer
  • A company (aka software agency)

All of them have their pros and cons.

Hiring a freelancer – not so cheap way

I was googling for the information on my research the other day. One of the search results took my attention: “These 5 Sites Make Hiring a Talented Freelance Developer Easy”

I love these articles. “Easy”, “Cheap” and “Fast” are like a magic spell. Yes, you can “easy” hire a “cheap” developer and then you fail “Fast”. But only if you have enough luck, or you will be failing “slowly” and die in pains.

It’s not so cheap and not so easy as it is taught in “make money fast” websites.

I’ve been working with freelancers and I’ve been a freelancer too. And I would definitely go this way while starting a new business, but first time non-technical founder need to remember:

Although hiring freelancer has many benefits, it involves also multiple risks.

Pros:

  • Almost no initial investment required
  • No training required
  • Pay for work done only (o.k. with some exceptions).
  • You don’t need to pay him anymore as soon as work is done.
  • Freelancers are usually quite good at their specialization

Cons:

  • You will need to sign a contract with every freelancer for every project.
  • In  case of a fee based contract freelancers may try to bill as much hours as possible.
  • If your contract is delivery based, freelancers may try to increase the price to protect themselves from unforeseen requirements.
  • Freelancers usually work remotely, often in other countries, so be ready to have communication and cultural issues.
  • Possible cross cultural misunderstandings
  • Hard to follow schedule.
  • Good freelancer may cost more than a full time employee
  • They usually specialize in one or few areas and you may need to hire more than one freelancer to get the job done
  • Some “freelancers” in freelancer.com or Upwork or other websites, are acctually intermediaries.

What about employee?

There are cases when hiring a full time employee may be beneficial. It is usually more expensive, but may be less troublesome.

Pros:

  • Simple communication. You may have a meeting or discussion wherever you need.
  • Your team works in the same time zone
  • No cross cultural misunderstanding
  • Employees may learn additional roles and tasks and give your company additional benefits.
  • Being inside of your company employees are much better immersed in your business and daily routines.

Cons:

  • You will need to invest into tools, workplace, licenses, etc.
  • Need to pay a salary, give vacation and benefits even if there is no work.
  • You may (and will) need to train your employees.
  • They can (and will) leave no Mather how much you have invested into their training and career development.
  • You need to pay your employee even if you have no work for him.

I’m not ready to have employees, can I hire a company?

If it looks like a lot of trouble with freelance developers, and you are not ready yet to have employees in your company, you may order services from the software agency. In my opinion, it is the most expensive choice to hire a software agency. But the easiest one.

Pros:

  • Software agency usually has experts in multiple required specializations
  • They can provide also a project management services
  • Some software agencies can provide CTO services
  • Software agency can also provide QA services

Cons:

  • More expensive than freelance developer.
  • Some companies are hiring only freelancers, so you just get the management level and real job is done by the same freelancers that you can hire yourself.
  • If your project is not very big, there is a risk that they will assign a part time developer to your project.
  • There is a risk that your code may get copied, especially if you work with remote company. So I would look for a local software agency first.

How to work with a developer?

No matter if you choose to work with freelance developer or software agency, you will need to work and communicate with developers.

There are many stereotypes about developers. While some of them are quite close to the reality, yet most are not. I think you just work with a developer since they are normal humans too. 😉

But it helps to know some small things about them.

Examples of applications made

In my career I have made applications that I am proud of. It’s good to know that some of my applications are running in real-time 24/7 at huge power plants.  And I have made failures too. It’s not so nice to remember that some apps never reach the end user at all. But they have helped me, to improve myself, to make my expertise better.

While looking for a developer you need to ask for examples of applications he or she had made. You may ask for a success story and for a failure too, and see the reaction of the developer 🙂

Past and current customers

Ask for the references. If past projects were successful, developers usually want to talk about them, and are willing to give you a contact person. I personally can talk about my successful projects for ages. I can talk about failures too. But when talking about failures, sometimes I can be subjective.

Never post your budget.

It is a good idea not to disclosure your budget to a freelancer or development agency. If you have 100K to spend, there is a high risk they give you proposal for 100K. And at the very end you will get very limited software or you will get nothing at all. It’s a common mistake. And not only non technical founders make it. I’ve seen a customer having 2M budget and 5 companies trying to get the contract for amount close to 2M. Guess the real market price? It was about 900K.

Scope

There are two scopes actually: Product Scope and Project Scope. You need to define a scope before contacting developers.

Product Scope says WHAT needs to be done, and Project Scope says HOW it needs to be done.

  • In Product Scope definition, you describe main features that will be included into your application and what will not be included. You cannot list everything that will not be included, so you just list the exclusions of capabilities that may be expected.
  • In Project Scope you describe a work that need to be done to create your application.

Be precise and not forget that you probably will need to update your scope.

The scope definition will help your team to get focused on task.  It also will simplify communication with your developers and other stakeholders.

Specs

Agile software development principles describe a documentation as a waste. I still recommend to write a basic documentation. You don’t need to write extensive huge specifications, but wireframes for your front end application, main use cases, and description of the architecture will help you a lot.

If you are building a better version of already existing application or website. Collect all the possible information about your competitors’ products. what you like and what you don’t. and make it all available to the developer.

If you have any documentation, applications, source code, notes related to your new application make it also available to the developer

Describe who will use the system. If possible, categorize users into types and what features they need to have.

Describe the features you need. Where they will be accessed, how they will be used?

Docs will help you to communicate with your developers, it will help you to track the development process and to change the developer if necessary.

Process

You can often hear developers talking about agile, scrum, Kanban, arguing which method is better and so. For you as a non-technical founder these names may say nothing. But you need to choose the process that fits your project best. Historically there were two development models.

Both of them are good, but solves different purposes.

Waterfall is well structured, sequential process. You develop all required documentation, specifications and only then move to the programming. Actually you produce lots of docs and many of them are not really needed (remember Agile manifesto?). Requirements gathering and design takes up to 40% of project time, coding another 40%.

The problem with this model is that it’s relatively easy to change documentation, but it’s very difficult to modify software when you started coding, and customers may not know what they want before they see working system. And It may be your case, you may need to see it working to understand if its working good.

I don’t recommend to use this methodology for your startup. I have used it a lot, but most often for government projects and never for new products in startup.

In contrast Agile is more flexible, consists of multiple small projects and highly involves customer. The development process is iterative, and highly collaborative. Every iteration produces a working piece of the software that can be check and validated by the customer and requirements may be changed if needed.

So if you are developing your first system and expect requirements change and evolve, this is the way to go.

Communication (Remote vs Office work)

Effective communication within your team is a critical component of successful project.

If you are working with your developer in the same location, it’s best to discuss something face-to-face. Use a whiteboard or sheet of paper instead of prepared documents. I’ve seen many times in huge corporations, people making power points and later discussing it in team of 3. Don’t do this. It simply doesn’t work, it’s just waste of your time.

If your developer is at remote location, I suggest to setup regular video conference calls with them. Use a shared information repository. And instead of sending multiple e-mails, use team communication tools. for example, Slack or Evernote. I am using Evernote for almost all my projects now. it’s really amazing tool, good repository and good teamwork features; and it integrates with Google G Suite well.

Contract

Legal contract is one of the most important things while working with a software development company or freelancer. You need to have I contract, other vise you are risking to lose your money and your idea to get stolen.

I strongly recommend to consult your lawyer before signing any legal document.

From technical perspective the most important things you shall agree in the contract are:

  • services that shall be delivered by the developer. It may be development, delivery, installation, support, maintenance, etc.
  • specifications explaining how these services shall be done.
  • How and when you will accept the services provided.
  • Who will own the rights of a software and source code.
  • Fees, expenses and payment terms
  • How the contract may be changed
  • Warranties provided by the developer
  • non disclosure of the confidentiality agreement
  • Schedule including development and delivery deadline dates.
  • Communication channels.

Who will own the rights?

It may look obvious. You have ordered the software development services, so delivered software belongs to you. But It may be not so simple and you need to agree on this in contract.

Many experienced software developers have developed their own modules and solutions. They may use some of them in your project, in order to speedup process and increase quality. But these modules are their own intellectual property, so they won’t transfer exclusive rights to you. You may get the right to use it in your particular software or system, but conditions may apply if you want to reuse or redistribute it.

So make it clear for both sides and put it into the contract.

Get the source code

You need to get the source code from the developer otherwise you won’t be able to modify the software. That’s sounds obvious again, but I keep meeting people who have bought the software development services without exclusive rights to the developed product and of course without a source code. They can’t modify the received software, and developer can sell the product to your competitors.

NDA

Usually you sign NDA before providing any valuable information to your developer. I personally sign the NDA only if I really know that I have some intellectual property that need to be protected. If I am creating ‘just another better something’ I don’t bother signing NDA.

Fees and payment terms

How much it will cost? For the early startup, it may be the critical question. Your budget is very limited and you wish to get the best product for the money. And you still need to have money for other tasks.

Every situation is unique. You need to find what works best for you.

Payment model usually depends from the process you have chosen for your project. If you are using traditional old fashion model it is relatively simple. You agree on the fixed price, acceptance criteria and that’s it. Of course you still may agree on some additional incentives, that motivates your developer working faster and/or provide the better quality product.

If you have chosen Agile way. And in today’s world this is most likely the way to go on. So you need to think a little bit more. Usually you will pay per hour and you will need to control the hours spent.

Control of the execution

No matter what software development process you are using, you need to manage your project. There are many tools for this purpose. And if you just starting with only one developer, free Google spreadsheet will do the job. You don’t need advanced and expensive tools for it. Focus on your product, later when in need, you will opt the project management software.

I am using Jira, it works well for waterfall, agile, and Kanban and it’s quite cheap for small teams. I am planning to use Pivotal Tracker for the next small project (free for up to 3 users) and VersionOne is also worth a try.

5 Things a Non-technical founder shall keep in mind

Be exact

‘Can you add a button, so when I press it the money is charged?’

How programmer will understand this question? Good question.

If I where a developer, I would think like this:

  • The Customer wants to add a new button? In which screen? Where? Will this button call the existing functionality or new?
  • Cash, Credit Card or Both??
  • Where the amount to be charged is indicated? Shall I add a new field for it?
  • Where in the database shall I store it?
  • Shall we print a receipt? Which form? What we shall include here?
  • Shall we send receipt by email? (like apple store?)
  • your question…

Programmers are very technical people, they like strict definitions and hate uncertainties. For a programmer to proceed all above questions need to be answered. What may look as simple task ‘add a button’ requires quite a lot of functionality to implement.

Before giving orders to programmers you need to try to describe the required functionality as clear as possible, with all possible use cases that may exists.

Therefore the good programmer will ask you for clarifications. While not so good one, can implement just as he or she understands it. As a result what you get is not necessary what you need hence you will need to rework it.

They don’t care about money too much

Money of course is important for programmers, but there are many more important things. Partially because of the nature of the programmer, partially because of a big shortage of skilled software developers, they take attention to other factors that may be not so important for other people.

Programmers want to be recognized for what they do and they want to do interesting things.

If I can choose where to work and what to do, I will choose the place where the work is most interesting and exciting. If the work is challenging is even better. Money? is important, but not the number one priority.

I hate building crap and I want to build a software that I can take pride in. I want to have realistic deadlines. If it’s not enough time, you get crap or compromises, and I don’t want it. 

It’s great to use high quality tools and latest technologies. These new tools allows us to achieve better quality and in less time.

I would like to learn a new things. Having a possibility to learn new technologies and tools, to do things that you never did before is exiting.

A good manager that understand the project and our needs is the must.  Also I want to have skilled colleagues, so I can learn from them and share our knowledge.

It would be great to have a good techie informal atmosphere in the team.

They hate frequent meetings and status reporting

Programming requires high concentration. Good programmer spends most of the time thinking about what and how he needs to do, investigating problem and possible solutions, available alternatives. Only then he starts coding. this allows to produce a high quality application. It means that if you ask what is the status of the task, ask to estimate the percentage done, it is very difficult for them to respond. He needs to switch the focus to status reporting or meeting. And he probably has nothing to show for you, because he is still investigating and thinking how he will implement it.

They are not very good at communication

Not all programmers are good in communication. Sometimes they are just silently waiting for problems to go away. Most of the developers are better at this, but still not all. So you need to understand this, and be patient.

I was really bad in communication in the past. It was a nightmare for me to talk with other especially non-technical people. I hated calling. It was much easier for me to communicate using e-mail or skype messages. Now I am talking a lot, and in some cases I am talking too much. Sometimes I need to shut-up and let other people talk. but I still feel easier to write an email than to call.

They miss the deadlines

I missed the deadlines in the past. Not too often but it happened. And to be honest I am still missing deadlines sometimes.

  • Changing requirements
  • Insufficient resources (cash, time and people)
  • Not enough training
  • Unexperienced developers
  • Bad planning
  • Design decisions
  • No motivation
  • Miscommunication

Are most common reasons for delays.

Therefore you need to focus on communication first. And to remember that bad communication can screw up all the planning and execurion effort.

Shall a Non-technical founder learn coding?

If you are still reading this long post. You may be thinking, it may be easier to create the first version of your product by yourself.

Maybe you need to learn programming?

Yes, and No. It is not a job of non tech-founder to learn coding, there are much more important ways to express yourself in what you are doing. BUT learning at least the principles of the technology, will help you to better communicate with developers, to estimate required time and money, to do small thinks when yourself when you are in trouble, and finally to make better decisions.

Question: Are you a non-technical founder? What is your story?

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row admin_label=”Row”][et_pb_column type=”4_4″][et_pb_text admin_label=”Opt-in form” background_layout=”light” text_orientation=”left” use_border_color=”off” border_color=”#ffffff” border_style=”solid” module_class=”optin-form3″ saved_tabs=”all” background_color=”#ededed”]

[box type=”shadow”]

  • Starting online business?
  • Need a help creating your first application?
  • Want to learn coding?

Subscribe to get the latest updates!


[/box]

[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section]

Leave a Comment

Be The First to Know

Be The First to Know

Join our mailing list to receive the latest news and updates from Full Life Labs

You have Successfully Subscribed!