5 key steps to delivering a successful web app – Step 4Posted by Jason Hawkins / February 22, 2012
Step 4: Teamwork
Creating a Balanced App Development Team
Building a successful app is the result of a combination of creative and technical genius that delivers a product that the intended audience love. For this magic to happen, finding the right team is critical. Too much tech and the app will be functionality solid but will look rough. Too much design focus and the app will look cool but work badly. So what is the right balance? What skills are needed at each stage of the project?
In our experience, the number of people involved in a project will vary according to scope and deadlines but the roles remain the same. On some projects, one person with the right skillset could cover several of these roles but usually they include:
- Project Manager
- Information Architect / Interaction Designer
- Visual Designer
- Frontend Developer
- Backend Developer
- Database Administrator (larger projects)
The Project Manger
Often overlooked, especially on smaller projects, the project manager is the lynchpin in the delivery of a successful app. A good one has a technical understanding, is an excellent motivator, negotiator and communicator and will remain clear and calm under stress.
They are critical to quality control, controlling scope creep and keeping the lines of communication open between the developers and the creator/owner. Developers are creative people and can be notoriously bad at staying focused on scope, so having a good project manager will keep the team trained on the right tasks at the right time to get the job done.
The Information Architect/Interaction Designer
This person is a mix of creativity and technical understanding. They are largely responsible for writing the specification documentation and designing how users will interact with the application through visual ‘wireframes’ of each screen and function.
As a communicator, they should have spent the necessary time with the client/creator to establish a complete understanding of what the app must achieve, and documented this into a blueprint for both the client and the development team. They are often creative problem solvers who also understand how systems and data interact. They also need to think from a ‘users perspective’ considering navigational structure, user types, behaviour and interactive efficiencies that can be achieved using the latest technologies.
The Visual Designer
Visual or graphic designers put the sexiness into an app and often make the difference between the consumer loving or loathing it. They breathe life into an app and add the ‘wow’ factor. Don’t skimp on great interface design!
The more experience the visual designer has as an interactive designer the better. They need a deep understanding of interaction and the elements that make up a smooth, intuitive interface. Elements like sliders, buttons, AJAX, forms and also the limitations of the web. The interface can make or break your app’s success.
It’s important for the visual designer to work closely with the developers in the early stages, so the app functions as intended.
Graphic designers will often have expensive haircuts and skinny jeans and like bands that nobody else has heard of. They would sell their own mother to get the latest Apple products.
The Front-end Developer
They work closely with the visual designer and back-end developers throughout the development stage of the project. Magic happens when a front-end and back-end team understand the strengths and weaknesses of the other and work as one.
In our experience, really good front-end developers have little interest in databases, but know the many different ways to code for variations between Internet Explorer versions, Firefox, Google Chrome and Apple’s Safari.
The Back-end Developer
Back-end developers or programmers are creative problem solvers, complex thinkers who design algorithms in the shower and survive on Redbull and two-minute noodles. They are responsible for writing code that combines the application’s business logic, functional elements and data delivered in the most efficient way and deserve all the glory and Redbull they can get.
However, estimating and committing to deadlines is usually not a strong point. Likewise, their preference for writing brand new code over using existing stable code libraries can be the difference between whether or not the app remains on time and budget. This is where the relationship between the project manager and front-end and back-end dev teams is crucial to getting your app built within scope, budget and on target. In the words of the well known Information Architect, Alan Cooper, letting the developers loose on a project is equivalent to having the ‘inmates running the asylum’.
However misunderstood, software developers are still amazing to watch in action – and if you find a good one, hang on to them and keep that fridge stocked!
The Database Administrators / Server Administrators
These guys are more like the mechanics that keep everything going. They make sure the database and hardware can handle the usage demands.
As an app builds in popularity it is essential that it remains efficient. This means that it needs to run quickly and securely with the maximum amount of uptime possible. The Database Administrator will keep the queries tuned and database tables indexed, whilst the Server Administrator monitors and tunes memory usage on the server, updates security patches and works closely with the app development team to ensure everything is running smoothly.
In high load situations (above 10,000 instantaneous connections) an experienced development team and system administrators are vital and often overlooked. Parts of the code may need to be rewritten to accommodate increased usage, or more hardware and memory may be required. Cloud infrastructure may assist in rapidly expanding demand requirements. Our advice is to find an expert that not only understands servers, but also has application development experience as well.
Again, depending on the scope and size of the app, your testing requirements will vary. Testers are highly detailed people, should be comfortable with routine tasks and have the patience and persistence to provide accurate feedback to the development team.
They will need to test the boundaries of your app with a variety of data and always with a test plan.
Whilst the developer will be responsible for initial testing of their code, it is very important to note that they are not generally good testers. This is usually because they have been involved with the application for a long time and know how it should work, so they don’t use it like an ordinary member of the public.
Cross-checking across an app requires a rigorous approach and skill. ‘Many eyes and hands’ is the best approach to testing, as your users will each use the app differently, which identifies bugs that you’d never even thought possible.
As you can see, an app requires a variety of skillsets as it moves through its development life cycle. It also takes time to build the right team, and having a strong, motivated project manager to make it happen is vital.
Building software is challenging and stressful, but it is extremely important to respect each other’s capabilities and nurture a creative and dynamic environment where the combination of the whole far exceeds the capabilities of the individual. In the words of Thomas Edison, when asked why he had 21 assistants, he replied… “If I could solve all the problems myself, I would.”
Useful Links & Credits
About the author
Jason Hawkins is a senior application strategist, information architect and director at KND. His knowledge is based on years of industry experience in taking online application ideas to reality across a broad range of industries.
KND are web and digital professionals with over 10 years in the business. We specialise in strategy, web, cloud and mobile apps, eMarketing and SEO strategy, servers, hosting and design. We work closely with our clients to achieve successful outcomes. Call us today (+61 7 3832 4077) or email (firstname.lastname@example.org) to discuss your next project.