Click here to Skip to main content
13,145,068 members (68,335 online)
Click here to Skip to main content
Add your own
alternative version

Stats

8.6K views
14 bookmarked
Posted 11 Nov 2014

12 Skills You Need to Build a Damn Good Web App

, 11 Nov 2014
Rate this:
Please Sign up or sign in to vote.
Here is a list of 12 skills that 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 into 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

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 very sure they make a good first impression. Luckily, there is a wealth of information available online 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 the end 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 afterthought.

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.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Stephen C Young
Architect Allan Gray
South Africa South Africa
Since I was young I always preferred teaching myself to learning from a structured syllabus.

This didn’t always make me popular with my teachers. I guess sleeping through the whole of Romeo and Juliet in an English class doesn’t make a great impression. On the other hand I formed an obsession with always researching something.

Over the years these obsessions would jump from topic to topic ranging from physics to lean manufacturing. Photography to functional programming. Cognition to physiology and strength training. Kitesurfing to fire poi. My obsessions may be random but are always led by my curiosity.

Over time I noticed that I was forming connections and finding patterns in unrelated fields and using knowledge I gained from studying the rudiments of things like cognitive psychology when trying to figure out why I was seeing certain behaviours in the teams I was working in.

I'm interested in communicating those underlying principles and connections in a way that is useful to others.

I have been working as a programmer, architect and manager for the last 12 years so there is a strong bias to helping junior programmers and software development teams improve.

I focus on underlying principles and not technologies.

You may also be interested in...

Pro
Pro

Comments and Discussions

 
-- There are no messages in this forum --
Permalink | Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.170915.1 | Last Updated 11 Nov 2014
Article Copyright 2014 by Stephen C Young
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid