Queensland app developers, show how to code an app James Bowling, Sarah Smith, Cameron Owen and John Passfield. Picture: Annette Dew Courier Mail Oct 2014.
How do you build an app? Part 2 (Code)
What is involved in building an app? Who do you need to talk to you when you’re building it? Can I build my own app? Can I outsource building my app to developers overseas? Do I need to know how to code an app?
You’re reading the second part of my two-part post on “How to Build an App”. If you haven’t read part 1, start there to get the background for what I’ll cover in this post. I’ll be launching straight into discussion of how app building teams work, and that foundation will be critical to understanding this post.
This post 1 & 2 builds on my previous one “What kind of apps are there?”. If you haven’t read that now is a good time to check back there, just in case some of the concepts from there that I refer to in this post don’t make sense.
With this two-parter, I’ve got halfway through my series for folks who looking for how to code or build an app. I talk about the series in a special introduction post, which is definitely good for perspective. Check that introduction for context to the whole series, and links to the other articles.
Don’t Bury the Lead
In part 1 I looked at the critical process & team setup for app building success. The last specialist I will look in that team is the engineering manager. Also this person could be the team lead, project manager or scrum master. Their job is to resolve problems that may stand in the way of the success of their developers, UX designer and product owner.
This person is an expert in developer team dynamics, and technical focus. The team lead will check on the progress of features, and review code submitted. The team lead or project manager also works to make sure packages get regularly uploaded. A package is typically uploaded on a regular cadence, each time a new set of features is ready.
Where a team has been put together specifically for one project this role is typically held by a project manager. If the team already exists, especially an outsourced or overseas one, then we manage to project to project by an engineering manager.
Team Leads versus Project or Engineering Manager
For a small project, a team lead may write code as well as managing the team. For teams of more than three, the team leader no longer has time to write code becomes a project manager or engineering manager.
Larger efforts may require more than one team, in which case the engineering manager would coordinate those teams, each headed by a project manager or team lead.
The engineer manager or project manager is a technical partner to the product owner. Where the product owner manages the progress of the business side, the engineering manager watches over the technical progress of app development.
A list of business functionality items called the project backlog is the simplest and best tool in the project managers toolbox. This tool has become best practice for communication of feature planning between team members. It’s especially important between the product owner and the project manager. Here’s how it works.
Backlog, Doing and Done
Each item on the backlog is a very small piece of work for the app. Each of these small pieces must be demonstrable. The product owner works to define each item in the project backlog.
The project manager ensures developers work on project backlog items. To achieve this PM’s will actively measure the progress of the project. The easiest metric for this is a simple count of items that are completed.
Project managers often run teams in an agile cycle, slicing off work for a one-week or two-week period called a “sprint”. At the end of the cycle they check on work done via a sprint review. At the sprint review leads ensure that discussion is offline. A good lead will note it for bring-up at a retrospective. The retrospective is simply a discussion. But team leads will often use fun retro formats to keep it productive.
Hiring and Firing
The team will change, with new developers added and existing developers who leave. Because of this engineers will need to handover their work, and its an important job for the project manager who makes sure that this hiring & handover happens smoothly.
Developers will set up and maintain automation tools to help speed releases. The team will also need code management tools and cloud productivity tools. The project manager or team lead is in charge of making sure these all work, and assigning engineers time to maintain them.
Let’s look at these 4 roles again:
- UX designer
- Product owner
- Project manager
All of these four roles are indispensable to development of an app but only one of them is completely technical. Only one – the developer – involves writing the actual code for the app.
Understanding the Business is Key
In the introduction post for this series I said that the most important thing for success with your app is understanding your business.
The role of product owner is one that you can fulfil yourself, because this is precisely what the product owner does: understand your business. In fact the product owner is really a proxy or stand-in for the main stakeholder or business who is paying for the app to be developed.
If that’s true, why is a product owner professional even needed in the first place? Why do folks needing apps built not just always be their own product owner?
The reason is being a Product Owner is a lot of work. I mentioned above that app building is a cycle. Every single day the team and the product owner is in constant communication as the app evolves. Every week or two weeks the app development cycle results in new test releases which have to be compared against the product vision. All of this work involves the product owner ensuring that the app continues to approach optimal product market fit.
Many App Projects will need Professional Product Owners
For well resourced folks and larger corporations looking to get an app developed for their business I recommend approaching larger App development companies and firms employing professionals in all 4 of these roles. These app development companies, if reputable, will have an entire team that builds apps consistently, and who work well together.
If you’re a small business owner, entrepreneur or keen to get into app development you can get your hands dirty and take on the role of product owner yourself.
In order to succeed with this hands-on approach here are the steps you’ll need to take as Product Owner:
- Retain a UX designer to define the wireframes for your app
- Recruit a team of developers to to work on the app
- Define app functions in a project backlog
- Iterate with the team to produce weekly releases
- Test and verify the early releases
- Feedback to the UX designer any changes you wish made
- Capture bugs and issues into the backlog
- Repeat these steps through app release
- Continue these steps into the life cycle of your app
There have been a few startup entrepreneurs that have been hugely successful in taking on all this work. Mel Perkins of Canva is a great example.
If you go this route you’ll wind up being intimately knowledgeable about the technical implementation of the app which is a good thing, since the tech is a large part of the business. You’ll need to commit to learn fast however if tech is not currently a strong suit for you.
Rinse and Repeat
Wait, surely steps one and two don’t need to be repeated and continued through App release and the life cycle of the app? Once we have our designer and Team will just keep going until the app is finished?
There is that classic mistake. Did you spot it? The app being “finished” …?
An old experienced developer once said “an app is only finished once it’s dead and buried”.
If you’ve invested into building an app, it’s a waste of that investment if you leave it to stagnate, and don’t keep maintaining it because it will rapidly fall out of date. Customers know when they are using an old, out of date, unmaintained app.
And because of this ongoing life cycle almost always the team that is working on it will change during the lifetime of the app.
So to cycle back to the four roles that are involved with building an app, I’ve just covered the product owner role. I’ve talked about how much hard work this role is and how the product owner cares about the app as it progresses gets released and continues on being updated while it’s in production.
Self Build for App Development
What about the developers – is that something I can do myself if I want to build an app? Should I learn how to code an app?
In fact most of the Google searches I tried doing before I started this series of posts; when I searched for the term how to build an app came back with tutorials about developers writing code.
If you believe the folks who are creating those tutorials, anyone can start writing code and build their own app. It’s true that the tools are accessible and the skills are not exclusive.
But succeeding in building the app you want is very difficult, and it’s much more effective to work as the product owner if you are the person who cares deeply about getting the app to a success.
Developers are not Forever
Developers will often come and go, during the lifetime of an app. This is natural, and to be expected. Your team has to be set up to survive this.
In fact I have often done work for product owners where the original developers have walked away leaving the product owner to try and find new folks to keep the app up-to-date after Apple or android has changed the iPhone what updated to a new iOS or android version.
As long as you’re using source control, you’re good. Software engineers can come and go, and as long as their work is in source control it’s not a big problem.
What’s source control, I hear you ask? Or at least some of you?
In a nutshell it’s an online, collaborative tool used by developers to manage code. All professional developers I know use source control routinely. Its best practice.
I will link below to some good beginners tutorials if you want to try writing code for your own apps in programming languages like Swift or Objective-C for iOS; or in Java and Kotlin for android.
You too Can Code! But do you Have to, If you Just Want an App?
Coding is wonderfully creative and building your own project is an inspiring challenge to take on. Succeeding with shipping your own app it’s a great achievement to have under your belt.
But I will leave teaching actually writing code up to the many other tutorials that you can find on the web.
Many folks I took to use the term building an app in the same way we talk about building a house.
When I say I am building a house I don’t usually mean that I’m hammering in the nails and soaring the wood myself.
Aren’t most folks usually getting a professional builder for that? For the rest of these articles I’ll be assuming that you are getting a professional development team to build your app as well.
I’ll give you everything you need in these articles to understand how you can contribute as part of that team, by taking on the product owner role.
How Much do you want to Get your Hands Dirty?
There are many folks who want to step back a bit. Folks who are time poor because they are working hard on their business.
Often the challenge of being a fully engaged product owner is too great and they would rather work with a professional product owner and a development team.
For these folks I’ll cover in this article series what you need to watch out for to make sure that your product owner is doing their job and how you can communicate with them to ensure your app continues to match the business needs that you have.
To close out this article then I’ll cover go over what we’ve covered.
First app development takes place in cycles. Developers write code it gets deployed a new app releases happen frequently so the product owners can check on progress.
Second apps I never finished. If they are successful. Instead after launch they continue to be maintained, updated and improved to take into account iOS and android upgrades.
Third, a team of professionals works on building an app. They are: the developer, the UX designer, the product owner, And the project manager.
The UX designer is crucial, and needs to be engaged right from the very beginning of the app development process.
The project manager ensures that the team is kept on track technically, and manages automation and a collaboration tooling. They are is also responsible for retaining new developers and handing them off from the project When they leave.
The product owner tracks the feature completeness of the app to ensure it meets the business needs. The product owner understands the business & works with all the other team members to ensure product market fit.
And the developer writes code to actually implement features and UX design.
Of these four roles the product owner role is the one that you can most successfully assume if you want to build your own app. Actually writing code, being a developer on an app, makes it very difficult to also be a good product owner.
Tutorial references & credits
Want to learn to code?
- Get started with Android development
- Learning iOS development
- FreeCodeCamp Lessons on Web App development
The good news is there’s lot of free resources, and having the skills will make you a better app-preneur.