Agile vs. Waterfall
React Intro
Waterfall has a pretty strict, but simple process.
At the start of the project, the client will determine all of the "user stories" needed to reach the MVP
We are 'done' when all of these are completed.;
Each user story gets broken into specific tasks and estimate level of effort on each task.
Level of effort is a value associated to a task that is not tied to a specific duration.
Available values are set in place by the team. (0, 1, 2, 6, 8, 16, 24)
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.
A sprint is a two to three week work effort. Tasks are broken up into small buckets and completed.
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.
The success of the sprint is crucial to the original plan. Adding new requirements mid-sprint can de-rail a sprint.
The standup is one of the key components of a sprint. Members of the team gather and share the following.
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.
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 meeting occurs after the client demo and the following topics are discussed.
Reflection meetings are frequently missed and are a big part of agile projects failing. These are super important.
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.
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')
);