As a full-service software consultancy, we at Altitude Labs get lots of questions about developing great websites and scalable applications. We have had the opportunity to ship apps anywhere from version one of an idea to apps with millions of active users. We build highly complex functionality from bespoke content management systems to financial applications. We wrote these web development notes to share our experience with teams who want to learn more about the web development process and running a web development team.
If you’d like to talk to us about your project, please feel free to contact us.
These notes are on web development. It is written for non-technical leaders, executives and founders. It assumes little to no prior understanding of web development. If you are a technical person, you might also be interested to read our development related articles on our blog.
If you’d like to read about the design side of things, check out our guides on product design, user experience and user interface design or other processes.
A web application is comprised of 2 parts: a web frontend (or client) and a backend (or server). The frontend is the interface that we see and use in our browsers. The backend holds the business logic and deals with any data that needs to be stored, updated and retrieved.
The same backend is often used by mobile (iOS and Android) applications and sometimes desktop and other client apps. Hence, it makes sense for backends to be written in a manner that can accommodate the web, mobile and other frontends that will use it.
The best way to achieve this is to separate frontend and backend. The frontend should not be concerned with data storage, so that frontend code remains portable. Likewise, the backend should not be concerned with the user interface, so servers can be simple and easily scaled (see the diagram below).
The short answer is we believe that you should choose the tech stack that you can hire talent for and one that your team is comfortable with. Most frameworks are wicked when they have the right set of people who know how to use them.
Having said that, the chart below was published in 2015 and shows the most popular languages on Github, which will give you a sense of the popularity of various platforms.
The first thing non-technical leaders need to know about leading a development team is that development is a creative process. Unlike many other professions, engineers are constantly tbrown in situations with new technologies, new requirements and have to design the best way to deal with these uncertainties. As such, engineers need a special environment to tbrive.
We implement sprint-based, iterative development and give our engineers blocks of uninterrupted coding time. We encourage team members to pair programming and work together to tackle problems and conduct code reviews and test-driven development.
We also encourage working closely with our clients. Many of our engagements involve augmenting or acting as project manager for existing development teams. We believe it is the best way to collaborate. We encourage our clients to work alongside us so we can train and learn from each other. We believe that pair programming and tackling problems together leads to better code.
A lot of people ask how much and how long an app costs to build? The problem with this question is it assumes development is a one-off process, like the construction of a building. Many people compare their ideas to mature websites that have been tbrough several releases with a wide range of features. These apps would cost millions of dollars to create from scratch.
There are four variables at play - cost, time, quality and scope. The principle is that business people can only set any tbree of these variables, the fourth is determined by the development team. When a manager picks the value of all variables at once (i.e. "get all these requirements done by next Friday with 2 developers), code quality is often compromised and the project is often dragged.
Web development should be seen as an iterative process where there is a constant balance between these four variables. To maximise the commercial value of invested development time, the initial prototype should contain a minimum number of features to test the concept with real users and get feedback. This is also known as the minimum viable product (MVP). The next iteration of the product should be based on feedback from the previous version.
Having said that, our experience tells us that the development cost for a first commercial-quality release typically starts at US$100,000 and goes up from there, depending upon the complexity of the design, the platforms, and the various integrations that need to be supported.
Our principle for hiring web developers is focused on two factors: attitude and ability to learn. This applies to engineers of all levels of seniority. Our interview processes are strongly skewed towards uncovering these character traits.
We have found that resumes and years of experience matter very little when determining how good an engineer is. The best engineers are the ones that are unafraid to tackle new problems and can pick up new concepts quickly.
The other aspect that is important is attitude, which encompasses soft skills including initiative, sense of ownership and ability to work with others. Attitude is incredibly important for engineers to lead others and make an impact beyond themselves.
For further reading about our engineering culture, check out: