CST 438 - Week 2
This was our second week in CST 438 - Software Engineering.
Relfection
This week we covered the basics of React, which is a Javascript library (using Node.js) that is used to control the information displayed by webpages. It is made up of functions that return HTML elements to the browser, and it is known for having fast performance because it only updates the DOM object with the delta changes, instead of updating the entire thing.
In the lab for this week, we built a basic React service that serves as a frontend application for the backend controller that we built during last week's labs.
My first impressions of React are that it is a powerful tool to create web services that only take a small amount of code to create. If I were to implement the same service in Express (also using Node.js), which I am more familiar with, I am certain that it would have taken more code to create. That being said, the syntax for React was a little hard to wrap my head around. It requried the use of several specific variables and components, which felt overwhelming at first. Although it used JavaScript, which I am familiar with, the overall structure of React felt strange. However, I mostly attribute that to being inexperienced with React outside of this lab. I am sure that if I kept using it, this strangeness would go away.
User Stories Explained
This week we watched User Stories Explained: What They Are, How to Write Them, and Why They Work. The video starts off by stating that software requirements are a question of communication, and that several challenges are involved in this communication:
- Balance is required between the business side and the developer side on software projects.
- Resource allocation should be a shared problem between developers and businesses.
- Imperfect Schedules: We cannot perfectly predict a software schedule, which means that we can't perfectly predict what will be delivered.
The video states that to solve these problems, instead of making one, all-encompasing set of decisions (such as a large document), we spread decision-making across the project by making decisions based on the information that we have with frequency.
What are User Stories? Stores are described using the Three Cs:
- Card: Stories are traditionally written on note cards.
- Cards follow the format: As a <user role>, I <want/need/can> <goal>, [optionally] so that <reason>.
- Notes, further specifications, or estimates can be written on the back of cards, or on connected cards as substories. Both of these approaches are used (substories written for larger stories, requirements written on back of cards for smaller stories).
- Conversation: Details behind the story come out during conversations with product owner.
- Confirmation: Acceptance tests confirm a story was coded correctly.
The video also describes the backlog iceberg. Projects or requirements that have a higher priority, such as those that are due sooner, should be described in finer detail and stories, while those with lower priority should be described in broader detail. Once the high priority stories are complete,we need to describe the next stories in more detail to prepare them for being worked on. This is often called "grooming the backlog".
The video gives two terms for types of stories:
- Epic: A large user story.
- Theme: A collection of related user stories.
Comments
Post a Comment