12 Skills you need to build a damn good web app.

 

IMG_4515

So you know how to build a web app?

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 it 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

Programming

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!

Copywriting

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.

Business

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.

Innovation

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

Analysis

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

Design

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

Testing

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?

Update – The secret weapon

For the 1 skill that acts as a multiplier to all the skills mentioned above have a look at my article on hacking flow states.

Stand out from the crowd

Focus on the things that really matter.

There's a ton of information on the internet that teaches you the technologies you need to know to be a web developer. There aren't many places that focus on the underlying principles that make you a great web developer regardless of the technology you use.
Here's what I've got for you.
High impact eBooks on the principles you must know to be a great web developer.
Access to my mailing list with exclusive content and regular updates.

Free registration

Comments

  1. Mark says

    Great article! Particularly like the bits about accepting and reducing the cost of failure.

    Want to see more of these!

    • says

      Hey Mark!

      There are more coming, I’m busy talking to somebody whith a lot of experience in the innovation space. Hopefully she will write a couple of articles on the topic.

      We should catch up soon!

    • says

      Hi Andrew,

      I think it’s vital that managers not only know the 12 skills but also to know what each member in their team is good at and how well the team as a whole covers all of these areas.

    • says

      I agree, everybody should have a grounding in each of those skills. Having said that, I think there is still value in being an expert in one or two of those fields.

Leave a Reply

Your email address will not be published. Required fields are marked *