Tips for working with developers

Working with software developers can be a really fun experience, or incredibly frustrating.  It’s important that you have a good relationship with your developer, and if they’re really good they’ll help you out and point you in the right direction if they think there is a better way to do it.  After all, they do this every day – and chances are this is your first project.

Some developers will give you exactly what you asked for (or at least their understanding of it).  To be absolutely sure you should:

  1. Spend your time defining your requirements.
  2. Do a small piece of work as a test exercise to check they are up to the job, and also to make sure you work well together – build it iteratively, not all in one go.
  3. If possible meet face-to-face, or share screens while you’re talking so you can point at things you want to do.

There are a number of ways in which you can improve your chances of getting exactly what you want.  The same approach applies whether you are building a website or a mobile app.

  • Overview – what is the idea supposed to achieve
  • Point to similar examples
  • Create a sitemap
  • Flowchart
  • Wireframes / Mockups
  • User stories
  • Meet face-to-face.

Creating a sitemap

If you only do one thing, create an overview of all the pages or screens that will form the basis of your website or app.  This helps you visualise the structure, but also helps your developer understand the scale of the work, and how things relate together at a hierarchical level.  For example, in the sitemap diagram below, you can see that the most important page is the Home Page, followed by four pages which are of the same importance (About us, Products, Blog and Contact us).  Then the next level down are the indivdual products.

sitemap

Creating a flowchart

Flowcharts are very useful to explain to the developer how users will flow logically through your website or app.  Take this common example of Registration and Login.  The blue boxes illustrate what most people think is involved.  However the red boxes show that there is usually a more detailed level of complexity, and interdependence between seemingly unrelated functions.  If you’re only building a website to display information, this is probably overkill.  But if you’re building an app, or an eCommerce servce then flowcharts are vital.

flowchart

Creating Wireframes

As the saying goes, ‘a picture paints a thousand words’.  I’ve recently seen an email where an entrepreneur has explained everything they want to appear on the screen of their app in considerable detail, only for the developer to misunderstand what was required.  The level of detail in the email was commedable, but it was the wrong approach.

By creating a wireframe (which may be as simple as a hand-drawing which you take a photo of) you are helping the developer visualise what you are aiming for.  You will already have an idea in your mind of how you expect it to appear, but undertaking this exercise will also help you think of other things that you might want to do in the future, or blatent gaps in your original plans.

The following is an example of a wireframe.

User stories

We’re now getting into more detailed requirements here, and user stories are becoming an increasingly popular way to list every key function that you’d like your service to do.  Think of it as a list of things that your user will do, but also things that you’ll need to do behind the scenes to support the customer.

  • As a user I would like to add a photo to my profile
  • As a user I would like to change my password
  • As an administrator I would like to create a voucher
  • As an administrator I would like to block a user

Staying on track

It is very easy to get carried away when designing or building a product.  When you’re starting out, you should only try to do the absolute minimum required to test an idea or get your first users.  The Lean Startup, a book by Eric Ries is a good read, and covers this concept known as creating the Minimum Viable Product (MVP).  However tempted you are, try to build your product iteratively – one bit at a time, rather than everything all at once.  After all, you want to leave yourself something interesting to tell people in your next blog post!

Checking the work as you go along is also vital.  You should do this every day or two at a minimum (unless otherwise advised by your developer) because you can spot problems early on and save a lot of re-work.

When you do find issues, the way in which you report them is extremely important, and can save you time and frustration.  Keeping a list in a spreadsheet helps you keep track of every issue, and make sure that they are all fixed.  You need to be 100% clear what you are talking about when reporting an issue or a change you want to make.  Here’s an example from my other business, MovieGlu, where I’m describing a problem and what I was actually expecting.

issue_report

The link in the example above points to the screenshot below.

screenshot

Examples of poor descriptions:

  • “Doesn’t work”
  • “Wrong colour”

Examples of good descriptions:

  • “The button is unresponsive when clicked”
  • “Text is red, but should be blue”.

Need more help and advice?

If you’d like to arrange some coaching on these subjects or even hand over the management of your development to someone with experience, contact me for an informal chat and we’ll see what we can do.

How to find a software developer

I’ve been working with a number of entrepreneurs in recent months, and the same scenario keeps coming up.  Entrepreneurs are looking for a tech co-founder but can’t find one.  So the next logical step is to pay a developer to get you started.

This quickly leads to a long list of questions including:

  • Where do I find a developer?
  • What type of developer will I need?
  • Will I need to buy servers?
  • How much will it cost?
  • How long will it take?
  • What is the best way to describe what I want my website / app to do?

Before I get started, you should know that I’m not a developer myself, but I have been working closely with software developers for over 15 years including a long period at Skype. So I’ve learned some valuable lessons along the way.

I’ve broken this article into a number of key subjects that guide you through my own approach.

Do I really need a developer?

The short answer is that it depends.  In the past few years it has become increasingly easy to build your own basic website without writing a single line of code.  There are numerous services that allow you to drag, drop and configure templates that create some stunning looking websites with a minimum of effort.  I strongly believe that almost anyone (even if you don’t think you’re tech-savvy) can do this with some time and patience.

The following is a list of tools that will allow you to get started with some stunning templates, add your own images and text, and even create your own e-commerce store:

If you know that you are going to want to do something a little more complicated, and may need to get a developer to customise the ready made templates, then this is the point at which you should consider something a bit more powerful:

WordPress is probably the most established of the drag-and-drop style website builders and is used by a number of big-name websites.  This means that thousands of developers have contributed free widgets to do such things helping you with Search Engine Optimisation (SEO), create slide shows, cut down on spam, add Google Analytics and more.

Finding a developer

Of course, you may decide that you’re better off spending your time focussing on aspects of your business that use your own strengths and experience – while getting others more suited to building your service from a technical perspective.

It is often the case that entrepreneurs think that their idea is so great that they’ll easily find a developer who would happily spend their free time working on your product, for no money and the promise of a share of the company when it hits the big time.  The unfortunate reality is that unless you’re already best friends with the one person who already has the requsite skills, and shares your passion for what you’re building, then you may be disappointed.

Having said that, there are a number of ways to get a head start:

  • Networking – some people are natural networkers, but most people find it hard to walk up to complete strangers and build a relationship that will hopefully turn into something mutually beneficial.  Check out this great book: Business Networking: A Survival Guide.
  • Meetup Groups – In towns cities all over the world, there are plenty of general and specialised meetup groups where developers and entrepreneurs mingle on a regular basis.
  • Startup Weekend – Found in a number of large cities worldwide, the premise of Startup Weekend is that people with ideas pitch to people who want to work in a startup (developers, marketeers, sales people, etc) and launch a business in 54 hours. Great fun, but lots of coffee needed!
  • Co-working spaces – Join up, get to know the regulars, and monitor the noticeboards.  There are co-working offices in most large towns and cities.

If you’re lucky, you may meet someone who will join your project in one of the places above.

The easiest way above all others is to hire someone and pay them.  For this there are a number of online services to help:

Things to consider if you go down this route:

  • Make sure that you read the reviews
  • Get advice from someone you trust and who knows what you’re trying to build
  • Get two or more quotations for the work
  • Try to use “out of the box” solutions rather than creating something from scratch
  • Websites must be “responsive” (ie they work on desktop computers, tablets and mobile phones).

In my next post, I’ll be discussing how to explain your idea to a developer, get an accurate quotation, and keep control of the costs.

Need more help and advice?

If you’d like to arrange some coaching on these subjects or even hand over the management of your development to someone with experience, contact me for an informal chat and we’ll see what we can do.