Software Development 101

What even is a software?

Software Development

"Software development refers to a set of computer science activities dedicated to the process of creating, designing, deploying and supporting software"

IBM

"Using technology to solve cool and complex problems!"

Everett

The Tech Stack

What technology does it take to create software?

Frontend

"Frontend development, also known as client-side development is the practice of producing HTML, CSS and JavaScript for a website or Web Application so that a user can see and interact with them directly." Wikipedia

Backend

"Backend development refers to the server side of an application. The backend usually consists of three parts: a server, an application, and a database. User's can't see the backend work, but this code is what communications the database information to the browser." CourseReport

DevOps

DevOps is a set of practices that combines software development (Dev) and IT operations (Ops). It aims to shorten the systems development life cycle and provide continuous delivery with high software quality. Wikipedia

The MakeShift Tech

What tech goes into our product?

Admin Web

JavaScript logo

JavaScript

Frontend
Ruby on Rails logo

Ruby on Rails

Frontend
Backend
PostgreSQL logo

PostgreSQL

Backend
Circle CI logo

Circle CI

DevOps
Heroku logo

Heroku

DevOps

MakeShift and MakeShift Live

Java logo

Java

"Frontend" (Android)
Objective C logo

Objective-C

"Frontend" (iOS)
MakeShift logo

MakeShift

Backend (via API)
Circle CI logo

Circle CI

DevOps (Android)
Fastlane logo

Fastlane

DevOps (iOS)

Connect

Java logo

Java

"Frontend" (Android)
Swift logo

Swift

"Frontend" (iOS)
Phoenix logo

Phoenix

Backend
PostgreSQL logo

PostgreSQL

Backend
Heroku logo

Heroku

DevOps

Employee Web

React logo

ReactJS

Frontend
MakeShift logo

MakeShift

Backend (via API)
Heroku logo

Heroku

DevOps

So wait, what the heck is an API?!

Application
Programming
Interface
Application
Programming
Interface
Application
Programming
Interface
Application
Programming
Interface
Basically how software applications communicate with each other

Simple Example

GET https://makeshift.ca/api/v3/shifts
📈
{ data: { scheduled_shifts: [...] } }
  1. User opens app
  2. App requests data from API
  3. API authenticates request and returns data
  4. App processes and displays data

Integrations

Apps within apps within apps

A simple example

😎
cool app
EMAIL
PASSWORD
LOGIN
LOGIN WITH FACEBOOK

MakeShift's Integrations

White Labels

Putting your brands spin on a piece of software

White Label Software

"White -label software is software that is purchased by a company from a service provider and rebranded as its own. Most white label software comes from software-as-a-service (SaaS) businesses that lease out the rights to their software or over an agreed-upon subscription term."

ProfitWell

White Labelling with MakeShift

MakeShift MakeShift Live
ADP My Shifts ADP Schedules
Jonas Shift Manager Jonas Shift Manager+

Software Development Process

How do we make MakeShift?

Step 1: Planning

MakeShift Backlog

Step 1: Planning

MakeShift Backlog

Step 1: Planning

MakeShift Backlog

Step 1: Planning

MakeShift Backlog

Step 1: Planning

MakeShift Backlog

Step 2: Analysis

Step 2: Analysis

Step 3: Estimation

Step 3: Estimation

Impossible
Trivial
Easy!

Step 3: Estimation

EASY

Step 4: Development

EASY

Step 5: Testing

EASY

Step 5: Testing

EASY
Do better
Looks Great!

Step 5: Deployment

DONE

Step 5: Deployment

DONE

Step 5: Deployment

DONE
Plz deploy

Step 5: Deployment

DONE

Step 5: Deployment

DEPLOYED

Step 6: Maintenance

Step 6: Maintenance

Its broken

Step 6: Maintenance

Plz no

Step 1: Planning

Thanks for coming!

software-development-101.vercel.app Check out the code for this on GitHub!