Ever wonder how major companies like Amazon or Rovio (the
makers of Angry Birds) develop their apps?
The Conceptual Phase
It starts with a simple idea: to solve a problem, to add
convenience or to entertain.
Many times it’s a combination of these 3 things.
In the case of Amazon with their shopping app, they are
adding convenience for their shoppers while Angry Birds entertains.
However, coming to the conclusion of what a company wants to
address with their app can be quite complicated for a large corporation. While
it can be fairly easy for an individual developer to create apps on the fly,
large enterprises must take much more into consideration.
If you were Amazon, would you want your app to do everything
Amazon’s site can do? Think about it for a second; their site does much more
than shopping. It does music and video streaming and rentals, cloud storage and
much more.
So should there be separate apps for all of these things, or
should there only be one app? Too many apps and people might not download them
all and millions of dollars will have been wasted.
But an app with too much going on can be cluttered and not
work well, again costing millions or even billions of dollars in fixing,
testing and unhappy customers.
Amazon thought it was better to have separate apps which is
why they have a shopping app, a music app and video streaming app and you can
bet that hours and hours of thought and deliberation went into that decision.
The bigger the company, the more there is at risk when it
comes to their apps.
In the case of Amazon’s shopping app, they had to take into
consideration how the app interfaces with their backend order processing
system, ensuring customer service issues are routed correctly on the backend,
providing the same look and feel of their website, and incorporating their
powerful search functionality on their site into the app.
The Research Phase
This step is often overlooked which can prove disastrous.
Who is the app intended for? Children, adults, teens? What devices will the app
be installed on? Androids, Apple, both?
Which Android and
Apple devices? iPhone 6s and iPhone 4 are very different machines and yet a
significant portion of the population still uses iPhone 4. What about Samsung
S7 versus the Moto X? They both use Android yet they’re very different
iterations of Android.
It’s absolutely crucial to do the research first because
developers must code and design for hundreds of different devices and dozens of
different software versions. If even one of these gets overlooked, it can upset
a significant portion of the user base which can cost millions for large
companies.
The Development Phase
Once the big decisions are made, it’s time to start
developing.
This will usually start with a process called “wire framing”
which is basically sketching the app out using either the simple pen and paper
or using a mock up software like
Balsamiq
in order to layout the menu structure, levels, backgrounds… All the basic
elements of the app.
Now that a non-functional wireframe is in place, it’s time
to start coding.
The developers will work from the same developer kits that
anyone would use. For Android, they would use an
Android SDK and for
Apple they would use
Xcode.
From here, the dev team will start adding functionality to
the wireframe: linking buttons and menus, animations and transitions and more.
The app will be coded until it resembles the desired final product--artwork,
colors and all--along with tracking by Google Analytics. After that, it’s time
to start testing.
Alpha Testing
Here comes the part that most people, outside of the app dev
world, have no idea about: the testing phase.
Many have heard of beta testing but in order to have beta
testing you have to have alpha testing!
This is when the devops team will engage in automated
testing and manual testing. This can become extremely time consuming though if
one does not have the right tools for the job. There’s an entire industry of
mobile device testing companies that
provide testing services to enterprise-level organizations.
These companies allow enterprises to efficiently automate
and manually test apps via “real device solutions” or emulators.
An automated test will run scripts, that mimic interactions
with the app, hundreds of times in a short time period to gather data on the
performance of the app and make sure it is running smoothly.
Manual app testing is exactly what it sounds like: manually
testing the app with your own two hands.
Both of these are absolutely crucial to make sure the app
performs as expected.
After there is enough data from the testing phase, the app
will go back to the developers to implement the required changes to fix any
bugs found during the testing phase where it will then go back into testing and
back to developing until there are no more bugs to be found.
It’s incredibly tedious, but bugs make unhappy users,
unhappy users uninstall apps and tarnish a brand’s reputation which costs money.
Lots of money.
When there’s millions, or even billions on the line, a high
performing and well-polished app is a necessity in today’s world.
Beta Testing
Some, but not all, enterprises will then move into private
or public beta testing or both.
This is when people outside of the development team get to
test the app.
Private means that only internal employees start testing and
public means the general public can start testing.
This is typically done on a limited
level with only so many beta tester slots available.
An effective bug report system must be in place so that beta
testers can report any problems to the dev team.
Why go through a beta test when the company spent so much
time alpha testing?
As important as automated testing and manual testing is,
these tests are done under controlled situations. Developers know what the
common bugs are and how to test for them but that leaves out a critical
element: the users.
The users might not all be tech savvy so they will interact
with the app in different ways than the Quality Control team would.
Launch Day!
Alright, the app has been tested hundreds of times, the
development team has dark circles under their eyes from countless sleepless
nights… And now it’s finally time to release the app.
This is the big day and yet the actual process is fairly
anticlimactic.
The app is submitted to the Android or Apple store and then
the waiting starts. The app is typically available immediately on the Android
store while Apple, who has a much tighter quality control process) can take
several weeks.
Post Launch
Once the app is in the public's’ hands, it becomes a matter
of monitoring the performance via Google Analytics and continuous testing to
ensure everything is running smoothly and any needed fixes are prioritized and
fixed in a timely fashion.