12 Skills you need to build a damn good product

So you know how to build a digital product?

Agile methodologies all talk about “cross functional teams” yet if you look at the vast majority of agile teams they probably have the following “roles”:

  • Developer
  • Tester
  • Analyst

Every once in a while a graphic designer is thrown in to the mix. While cross functional skills are the right idea we tend to leave some critical skills out of the mix.

Skills like:

Infrastructure Automation

If you build a web app you should run it.

Infrastructure automation and administration should live inside the team. This allows you to feel how easy or hard your app is to live with.

Key responsibilities

  • Automated app deployment (yes even for mobile)
  • Self healing infrastructure
  • Test driven infrastructure
  • 12 Factor apps

Community Building

If you don’t know who your clients are, or even worse if you don’t have any yet, how do you know you are building the right app?

You should start building a dialog with your community before you start writing a single line of code.

Key responsibilities

  • Knowing where your users are
  • Understanding your users
  • Understanding why you do what you do
  • Articulating why you do what you do to your users.
  • Giving users something of value first
  • Developing and executing a launch strategy for your app


This is an obvious one. I will say that developers need to focus more on principles and not technologies. You should also constantly be working on gaining perspective.

Key responsibilities

  • Build the simplest responsible solution.
  • Pick technologies that serve the users needs.
  • Have a strategic outlook on the architecture.
  • Understand that you will probably build the wrong app initially.
  • Write great code!


Text is still one of the most important mediums for communication when building mobile and web apps. You should craft the sentences in your product with as much care as you craft the code.

Key responsibilities

  • Speak your customers language
  • Tell your story
  • Why is more important than what
  • Be concise
  • Be clear

Data visualisation

The visual system is by far the highest bandwidth information channel available to humans. Good data visualisation optimises this channel. Using 3D pie charts clogs it with junk data.

Which would you rather do?

Key responsibilities

  • Understanding the data in your web application.
  • Understanding the insights your users need to have.
  • Applying data visualisation theory to turn data into insight.

User Experience

Just because you like the way it looks doesn’t mean it’s the best way for a web app to work. Designs are only good if they are useful, usable and delightful. If you would like to know more I wrote a resource guide on ways to learn user experience design

The only way to know how something works in the real world is to watch people using it.

Key responsibilities

  • Paper prototyping.
  • Usability testing.
  • A/B test to improve existing features. (this is harder on mobile apps)
  • Use metrics to make informed decisions.


In order to optimise impact and revenue you need to understand where the money comes from and where it goes. How much does it cost to get a new user, how long do they need to keep using your app to earn that money back?

Where is your major cost, are you optimising the right part of your app to limit costs and maximise revenue. Each web app is different and you need to understand how yours is unique.

Key responsibilities

  • Knowing how your business makes money
  • Prioritisation of features
  • Knowing where costs come from
  • Understand what competitors are doing
  • Finding innovative ways to maximise revenue and minimise costs.


Innovate or die!

That is the silicon valley mantra. If you want your web app to compete on the global scene you need to live by it.

Key responsibilities

  • Reduce cost of failure
  • Challenge traditional thinking
  • Broaden the scope of possible solutions


Another of the more traditional roles. You need to get into the nitty gritty of how things work. Understand the users needs back to front and think about all those edge cases.

Key responsibilities

  • Understand and optimise business processes
  • Understand and optimise customer workflows
  • Legal requirements


Are you putting your best foot forward?

People make snap judgements on the quality of your web app. You need to be damn sure they make a good first impression. Luckily there is a wealth of information available on line that can help you learn web design.

Design every interaction, think about the whole experience.

Key responsibilities

  • Make the app pretty
  • Design for target devices and user needs
  • Design is how the app works not just how it looks
  • Design the whole system
  • Make the small things matter


Is your product a smooth ride or do the wheels come off on a regular basis?

You need to make sure you have a solid testing framework. This includes unit, acceptance, infrastructure, performance and load testing. All automated, all repeatable.

Key responsibilities

  • Automate!
  • Find errors as soon as possible
  • Identify root causes
  • Test the infrastructure

Domain Knowledge

I left this one for last since it is the one that varies the most from project to project. If you are building medical software you best know about medicine. Make sure you know what you are talking about!

Key responsibilities

  • Challenge existing industry thinking.
  • Understand the latest research in your field.
  • Become an expert.

While having all these skills is by no means a recipe for success it definitely gives you a massive advantage over people who don’t.

Even if you think you aren’t doing all these things you are, you might just be doing them badly. None of them should be an after thought.

Does your team have what it takes?

More information

For more information on what it takes to become a world class software developer check out some of the posts below:

How to become a web developer. Part 1 : The fundamentals

How to become a web developer. Part 2 : Larger projects

How to become a web developer. Part 3 Object Oriented Design

How to become a web developer. Part 4 : Functional Programming

Originally published at aestheticio.com on April 2, 2014.

Author: stephenyo

I am a token engineer, developer and designer in the blockchain industry. I’m passionate about the potential that public, open, decentralised blockchains have to improve our society. My current focus is on token engineering, solidity and DApp development but I am also passionate about design.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: