Here are two short videos and the text of the introductory course we recently taught on Agile Development.
The Why of Agile Development
Four ingredients to a great startup
Idea – A mission oriented idea aimed at a significant market
Product – A great product that customers will love
Team – A smart team that gets along and gets things done
Execution – Relentless execution on the sales and marketing side.
At the center is the search for product-market fit
Design – You need to talk to potential customers in order to design a software product that they will love.
Develop – Then you need to develop the software to produce the gains and solve the pains of your market.
Deploy – Finally, you need to deploy the software to determine if your customers love it, use it, and highly recommend it.
Waterfall model consists of five discrete steps:
Analyzing the requirements
Designing the software
Coding the software
Testing the software
Deploying the software to the customers
The problem with the waterfall model
Customers often didn’t realize that the software didn’t do the job until they started using it,
This occurs a long time after it was initially spec’d out.
This resulted in a lot of lost time and money.
Response to the weaknesses of the waterfall model
In 2001, a group of super-programmers met at the Snowbird Ski Resort in Utah and formalized the Agile Manifesto.
Agile is an iterative model,
With the goal of increasing customer satisfaction
By continually delivering useful working software in weeks, rather than months
This is achieved by working closely with the users of the software early in the development cycle
The Agile Model is now the standard in the startup world
It focuses on quickly delivering software that customers love
It is in alignment with the startup’s early phase mantra of searching for product-market fit.
The How of Agile Development
Agile Development consists of three steps: design, develop and deploy.
Design is focused on creating a great user experience.
Development is where we translate the design into working software.
That includes coding the software for the user interface, creating the database which stores information, and programming the logic which is often the secret sauce of the app.
Deployment consists of rolling out the application to the customer in a safe way so that it can be rolled back if problems are found. In the Design and Deploy steps, frequent feedback from customers is solicited and incorporated into the software.
We’re going to create an App called ImBored
When teenagers are bored they can use the app to connect with other teenagers.
The app will suggest free and paid-for activities.
Free activities include a game of basketball, a walk around the lake, or perhaps just chilling at a friend’s house.
Let’s design the app
When a teen is bored he checks the app to see if there are any interesting activities currently scheduled nearby.
If he sees one, he clicks to join and is shown the time and place.
After the activity finishes, he rates the activity.
If there are no activities, a teen can suggest an activity, including the place, start time, end time, people needed and maximum participant capacity.
If enough people sign up, the activity is scheduled.
The vendor must have an agreement in place with ImBored, Inc.
A bowling alley might agree to provide a discount if 10 teens participate.
The activity would be posted and the bowling alley would approve the time.
Let’s develop the App
The mobile interface has to be as simple as possible.
There should be notifications when there are pending activities that a teen might be interested in.
Signing up for an activity should take just one tap.
Suggesting a new activity should take just a few taps.
We need a database
That tracks each customer
The activities which they suggest and have participated in and their enjoyment ratings
Activities need to be tracked to determine their details and current subscription status
Vendors, like the bowling alley, need to be tracked, notified of activity requests, and monitored for their approvals.
The programming logic has to determine which activities are appropriate for each teenager
The goal is to increase participation while minimizing bad suggestions.
In the Develop phase the App is coded and tested.
To deploy the app
Database and Application space is rented from a cloud based provider
We will need to get the App approved by the Apple App Store and the Android Play Store.
Once the system is live, automated monitoring insures that everything is running smoothly.
When problems are detected in a new software release, the application will be rolled back to the previous version.
New deployments of the front end app must be considered carefully
Since that requires new App Store/Play Store approvals and requires that current users update their App.
Deployments of components, like the activity suggestion logic, can be made more frequently since they are less disruptive.
We have given you a taste of what it takes to design, develop and deploy an App using Agile development methods.