10/23/2018

Agile vs. Waterfall

React Intro

Project Methodology

Waterfall Vs Agile

Waterfall Methodology

Waterfall has a pretty strict, but simple process.

  • Requirement Gathering
  • Design
  • Implementation
  • Verification
  • Release
  • Maintenance

Agile Methodology

  • Define MVP
  • SPRINT!
    • Design
    • Develop
    • Verification
    • Deployment
  • MVP Release

Looks similar right?

It kind of is, but we execute multiple sprints.

Initial Planning

At the start of the project, the client will determine all of the "user stories" needed to reach the MVP

  • Story 1: As a User - I want add items to my shopping cart.
  • Story 2: As a user - I want to remove items from my shopping cart.
  • Story 3: As a user - I want to modify my quantity

We are 'done' when all of these are completed.;

Tasks

Each user story gets broken into specific tasks and estimate level of effort on each task.

Story 1 Tasks

  • S1T1 - Add 'Add to Cart' button to product.
  • S1T2 - Add click event to save event to database - Front End
  • S1T3 - Add webservice to save cart addition to database - Back End

Level of Effort

Level of effort is a value associated to a task that is not tied to a specific duration.

Example LOE

  • 1 - Super Low Effort (text change, font adjustment, etc)
  • 10 - Steady task. A day or two worth of work.
  • 50 - 'Epic' or a task that will take a full sprint.

Available values are set in place by the team. (0, 1, 2, 6, 8, 16, 24)

Agile Board

An agile board keeps track of all the stories and tasks. The team can easily reference it to get an idea of what is currently going on.

What's a Sprint?

A sprint is a two to three week work effort. Tasks are broken up into small buckets and completed.

Sprint Planning

Sprint planning occurs at the beginning of every sprint. The team determines what they can get done over the sprint (two to three weeks). (Planning Poker)

The team looks at the backlog and estimates how many points they can do in their sprint. This is called their velocity. Example: 2 people can get 100 points done in one sprint.

Backlog tasks get moved into the development Queue.

Sprint Commitments Cannot be Changed

The success of the sprint is crucial to the original plan. Adding new requirements mid-sprint can de-rail a sprint.

The Daily Standup

The standup is one of the key components of a sprint. Members of the team gather and share the following.

  • What they got done yesterday.
  • What they are going to do today.
  • What is blocking them from getting done.

A standup of 6 people should only take about 5 minutes.

No socializing or off topic discussion in the standup.

Questions or concerns need to be addressed after the team is dismissed.

The Demo

A client demo is traditionally held at the end of the sprint. The client will approve or provide feedback on all tasks.

Feedback items are placed back into the backlog for the next sprint.

The Reflection

The reflection meeting occurs after the client demo and the following topics are discussed.

  • What went well?
  • What went wrong?
  • Do we need to adjust our velocity?

Reflection meetings are frequently missed and are a big part of agile projects failing. These are super important.

Have you reached an MVP or already have one?

Yes? Deploy!

Repeat the Sprint

You repeat the sprint until the end of the project.

or you go bankrupt.

Why is Agile favored over Waterfall?

  • Clients see a product in 3 weeks instead of 3 months.
  • Allows for requirement changing
  • Frequent Updates
  • Active participation for the customer

Why Agile is HARD!

  • Properly understanding Agile is hard.
  • Lack of vision for MVP
  • Requires training
  • Lots of meetings
  • More meetings can add to time overhead
  • Requires a lot of discipline.
  • Requires strict focus.
  • The business/client often doesn't understand agile.
  • The business/client's budgeting process is year based, not sprint based.
  • Business wants to scope

React Intro

React Intro

  • React is a js library for building User Interfaces
  • It can be used within other frameworks
  • With JSX, you write custom HTML elements that have massive functionality
  • React is intended to be easy to learn. It's more of a way of thinking about javascript than a new language to learn.
  • ReactJS.org

Composition in React

Create components (custom HTML elements) that can be added together to enhance functionality. A reusable parent component can have different children injected into it at run time.

Learn more here

JSX in React

JSX looks like a template language (HTML), but it comes with the full power of javascript. It is used with React to describe what the UI should look like.


const name = 'Jon Middaugh';
const element = 

Hello, {name}

; ReactDOM.render( element, document.getElementById('root') );

Read more here

React Tutorial

>