chapter 5 (agile modeling, prototyping, and scrum) Flashcards
Prototyping
Prototyping is an information-gathering technique useful
in seeking
– User reactions
– Suggestions
– Innovations
– Revision plans
Prototyping
- Patched-up
- Nonoperational
- First-of-a-series
- Selected features
Patched-Up Prototype
- A system that works but is patched up or patched
together - A working model that has all the features but is inefficient
- Users can interact with the system
- Retrieval and storage of information may be inefficient
Nonoperational Scale Model prototype
- A nonworking scale mode that is set up to test certain
aspects of the design - A nonworking scale model of an information system
might be produced when the coding required by the
application is too expensive to prototype but when a
useful idea of the system can be gained through
prototyping of the input and output only
First-Of-A-Series Prototype
- Creating a pilot
- Prototype is completely operational
- Useful when many installations of the same information
system are planned - A full-scale prototype is installed in one or two locations
first, and if successful, duplicates are installed at all
locations based on customer usage patterns and other
key factors
Selected Features Prototype
- Building an operational model that includes some, but not
all, of the features that the final system will have - Some, but not all, essential features are included
- Built in modules
- Part of the actual system
Users’ Role in Prototyping
- Honest involvement
- Communicate the purpose of the prototype clearly
- Get suggestions for changing, expanding the prototype
and innovation
Agile Modeling
Agile methods are a collection of innovative, user-centered approaches to systems development
Values and Principles of Agile Modeling
- Communication
- Simplicity
- Feedback
- Courage
The Basic Principles of Agile Modeling
- Satisfy the customer through delivery of working software
- Embrace change, even if introduced late in development
- Continue to deliver functioning software incrementally
and frequently - Encourage customers and analysts to work together daily
- Trust motivated individuals to get the job done
- Promote face-to-face conversation
- Concentrate on getting software to work
- Encourage continuous, regular, and sustainable
development - Adopt agility with attention to mindful design
- Support self-organizing teams
- Provide rapid feedback
- Encourage quality
- Review and adjust behavior occasionally
- Adopt simplicity
Four Basic Activities of Agile Modeling
- Coding
- Testing
- Listening
- Designing
Coding
- Coding is the one activity that it is not possible to do
without - The most valuable thing that we receive from code is
“learning” - Code can also be used to communicate ideas that would
otherwise remain fuzzy or unshaped
testing
- Automated testing is critical
- Write tests to check coding, functionality, performance,
and conformance - Use automated tests
- Large libraries of tests exist for most programming
languages - These are updated as necessary during the project
- Testing in the short term gives extreme confidence in
what you are building - Testing in the long term keeps a system alive and allows
for changes longer than would be possible if no tests
were written or run
listening
- Listening is done in the extreme
- Developers use active listening to hear their
programming partner - Because there is less reliance on formal, written
communication, listening becomes a paramount skill - A developer also uses active listening with the customer
- Developers assume that they know nothing about the
business so they must listen carefully to businesspeople
designing
- Designing is a way of creating a structure to organize all
the logic in the system - Designing is evolutionary, and so systems are
conceptualized as evolving, always being designed - Good design is often simple
- Design should allow flexibility
- Effective design locates logic near the data on which it
will be operating - Design should be useful to all those who will need it as
the development effort proceeds
Four Resource Control Variables of Agile Modeling
- Time
- Cost
- Quality
- Scope
Four Core Agile Practices
- Short releases
- 40-hour work week
- Onsite customer
- Pair programming
The Agile Development Process
- Listen for user stories
- Draw a logical workflow model
- Create new user stories based on the logical model
- Develop some display prototypes
- Create a physical data model using feedback from the
prototypes and logical workflow diagrams
Writing User Stories
- Spoken interaction between developers and users
- Seeking first and foremost to identify valuable business
user requirements - The goal is prevention of misunderstandings or
misinterpretations of user requirements
scrum
- Begin the project with a high-level plan that can be
changed on the fly - Success of the project is most important
- Individual success is secondary
- Project leader has some (not much) influence on the
detail - Systems team works within a strict time frame (two to
four weeks for development) - Product backlog
- Sprint backlog
- Sprint
- Daily scrum
- Demo
There are three roles in Scrum:
– Product owner
– Scrum Master
– Team member
Team members:
– Work to create and improve user stories
– Generate estimates
– Self-organize to complete the work
– Exhibit willingness to participate in any activity to help
the project
Product Backlog
- Features and other deliverables designers intend for the
product based on user stories - The list of user stories is reorganized so that the most
important user stories appear on the top
Sprint Cycle
- Stories are deliverables the team accomplishes
- Tasks are parts of the story or units of work that each
team members does - The sprint cycle can vary in length, but the usual is two
weeks - At the end of the cycle, determine whether the product
should be released