Looks like no one added any tags here yet for you.
Prototyping
Intereested in the reactions of users and management to the prototype
Reactions are gathered through observation, interviews, and feedback sheets designed to elicit each person’s opinion about the prototype
1) Set priorities
2) Redirect plans
Kinds of Prototypes
Patched-up
Non-operational
First-of-a-series
Selected features
Patched-Up Prototype
Constructing a system that works but is patched up or patched together
Uses all necessary features but it is inefficient
Users can interact with the system and get accustomed to the interface and the types of output available
Nonoperational Prototype
Nonworking scale model tht is set up to test certain aspects of the design
Not operational
Only features essential are tested
Doesn’t build actual code (coding more expensive)
Example: Full-scale model of an automobile that is used in wind tunnel tests
First-of-a-Series Prototype
Creating a first full-scale model of a system, often called a first-of-a-series prototype or pilot
Ex: First airplane of a series and then seeing whether it flies before building a second
Operational
Minimizes cost of overcoming any problems it presents before implemented
First 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, called a selected-features prototype.
Ex: A new brick-and-mortar retail shopping mall that opens before the construction of all shops is complete
Some but not all features are included
Best fit for AGILE method
Prototyping as Alternative to SDLC
Issues with SDLC
Extends time required to go through dev cycle
User req change
Alternative
Use prototyping as a part of SDLC
Advantages of Prototyping
1) Potential for changing the system early in its dev.
2) Opportunity to stop dev on a system that is not working
3) Develop a system more closelya ddress users needs
Disadvantages of Prototyping
Difficult to manage prototyping
Users and analyst may adopt a prototype as a completed system
Prototyping Using COTS Software
Sometimes the quickest way to protype is through the modular installation of Commercial Over the Shelf (COTS) software
Some COTS software is elaborate and expensive, but highly useful
The Users’ Role in Prototyping
Honest involvement
Communicate purpose to users, along with the idea that prototyping is valuable only when users are meaningfully involved
User reactions
User suggestions
innovations
Revision plans
Analyst job to weigh the feedback and translate it into workable changes where necessary
Agile Modeling
Collection of innovative, user-centered approaches to system dev.
Env. in which both dev. and bus, can be served
Process
Listen for user stories from the customer
Draw a logical workflow model to gain an appreciation for the business decisions represented in the user story
Create new user stories based on the logical model
Develop some display prototypes. In doing so, show the customers what sort of interface they will have
Use feedback from prototypes and the logical workflow diagrams to develop the system until you have created a physical data model
Values and Principles of Agile Modeling
Communication
Solves problems, closes holes, and strenghtened thinking
Simplicity
Beginning w/ the simplest possible thing we can do
Courage
Stay in touch w/ one’s instincts (and test results) concerning what is working and what is not
High risk, high reward value
Feedback
Customers create functional tests for all the stories that coders have subsequently implemented
Important to have humility
The Basic Principles of Agile Modeling
Providing rapid feedback
Assuming simplicity
Changing incrementally
Embracing change
Encouraging quality work
RAD (Rapid Application Developement)
Somewhere between O-O and Agile
An objected oriented approach to systems development that includes a method of development as well as software tools
Based on prototyping and quick feedback with less emphasis on specific planning
RAD Phases
Requirements planning
RAD design workshop
Implementation
THE RAD Design
Heart of the interactive development process
Design and refine phase
Use group decision support systems room if available
Users respond to actual working prototypes
Analysts refine designed modules based on user response
Time
Quality expectations
Resource availability
Scope
Requirement Plan
Users and analysts meet to identify objectives of the application or system
Orientation is toward solving business problems
Implementation Phase
As the systems are built and refined, the new systems or part of systems are tested and then introduced to the organization
When creating new systems, there is no need to run old systems in parallel
Martin’s Pioneering Approaches to RAD
Req palnning
User design
Construction
Cutover
Martin’s phases of RAD
Software Tools for RAD
Microsoft Access, Microsoft Visual Basic, Visual C++, and microsoft .NET
Differ from one another. in their:
Capabilities to support client/server applications
Ease of use and the amount of programming skill that is required
Comparing RAD to the SDLC
RAD software tools are used to generate screens and exhibit the overall flow. of the running of the application
RAD users are signing off. on a visual model representation
RAD implementation is less stressful because users have helped to design the business aspects of the system
Activities, Resources, and Practices of Agile Modeling
Coding
Designated as the one activity that is not possible to do without
Testing
Check coding, functionality, performance and conformance
Short term testing (confidence)
Long term testing (keeps a system alive and allows you to make changes longer than would be possible)
Listening
Use active listening to hear their programming partner
Less reliance on formal, written communication, so listening becomes a paramount skill
Designing
Create structure to organze all the logic in the system
Four Core Agile Practics
Short releases
40-hour work week
Onsite cusomter
Pair programming
Work w/ othr programmer
The Agile Development Process
Exploration
Planning
Iterations to the first release
Productionizing
Maintenance
Scrum (An-Agile Method)
Product backlog
Sprint backlog
List of issues
Collective decision
Sprint
Daily Scrum
Demo
Agile principles
Agile principles are the reflections and specifications of agile values
Sets them apart from SDLC
Satisfy the customer through delivery of working software
Embrace change, even if introduce 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 team
Provide rapid feedback
Encourage quality
Review and adjust behavior occasionally
Simplicity
Four Resource Control Variables
Time
Allow enough time to complete a project
Split time
Cost
Hire people, graphical packages, CASE tools, hardware
Quality
Internal Quality - Testing software for functionality and conformance
External quality - Customer is interested in performance
Scope
Determined by listening to customers and getting them to write down their stories
User Stories
A casual explanation of a software feature written from the perspective of a customer or end user
Jira software provides extensive support for agile development including capturing and analyzing user stories, as does Planbox, ScrumDesk, Agilio for trac, and digital.ai
Example:
Welcome the customr
If the customer has been at this site before using this same computer, welcome the customer back to the online store.
Choose a few stories, complete the coding, and release the product
Once done more stories are selected
Scrum
An agile method that is suitable for more complex projects in which action needs to be cotninuous
Sprint
Limited number of features or tasks are selected for completion
Roles Played in Scrum
product owner
scrum master
Team’s coach, a knowledgeable adviser, experienced developer and faciliator
team member
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
The Product Backlong
Composed of featurs and other deliverables designers intend for the produced based on user stories
The Sprint Cycle
A print backlog is created to select the user stories that need to be completed soon
Two weeks in length
After two weeks decide if product needs to be released
Scrum Planning Meetings
1) Product owner presents the list of features on the wish list of user stories
Estimating the resources needed for features
Scrum Planning Poker
Helps the team determine estimates for completing the features that arise from user stories
Common deck based on Fibonacci numbers
0,1,2,3,5,8,13,21,34,55,89
Adds two previous numbers
Infinity symbol = number too big to surpass
question mark & coffee cup = when members need a break from estimating
low numbered card means that a project can be completed faster
Numbers may represent the number of ddays it may take to finish a feature
Daily Scrum Meetings
Lasts a few min and tell each other what tasks they’ve been working on and what is expcted to be done
Using Burndown Charts
A way to keep track of performance
Y: Time
X: tasks remaining
Spring Review
Review the work and note any tasks that were not completed
Kanban
A concept developed by Toyota to achieve a more effective and efficient way of delivering products
“Signboard”
Visualize the workflow
Keep with in progress (WIP) as small as possible
Reevaluate the workflow, reassigning priorities if need be.
Strive for continual improvement
www.patboard.com
Cycle time
Time it takes for a task to enter the system as a “backlog” item until it reaches the “done” column
Shorter the better
Throughput
avg # of items that move from the “backlong” column to “done column” in period of time
TP = WIP/CT
WIP = Work in progress
CT = Cycle time
Scrum Advantages
Quick product development
User-oriented approach
Encouraging teamwork
Less ocnfusing than more formal approaches
Flexibility
Satisfying to team members
Rewarding smaller but meaningful accomplishments
Providing feedback
Adaptability
Scrum disasvantages
Documenting features improperly
Releasing products w/ errors
Releasing products too soon for the user
Completing the sprint backlog under pressure
Working as a geographically dispersed team may be difficult
Working as a team when special skills are required may be challenging
Replacing team members who leave the team is diffciult
Devops: A cultural Shift For App Development
Decreases the deployment time for newly developed applications and maximize profit by addressing market opportunities and getting customer feedback in a timely manner
Parallel
Culture
Mindset to analyzing problems
Dev:
Supports developing rapid innovative apps
Op:
Maintenance and operation of those processes
No-Code Software Development
Tools to help non-programmers design and build websites or mobile apps
Cost effective
Easier
Quicker
One person job
Work Management Systems for Agile Software Development
Jira
Collaborative and addresses three typs. of work management situatios through the use of templates
Templates for kanban and Scrum
Four columns representing the to-do lsit, tasks in progress, tasks in review, and tasks that are done
epic
describe big picture in agile development
Epics
Report responsibilities
Revealing user stories
Sizing the epic
Deciding on the time period
Advantages of Jira
Structure keeps work on track
Work management software can be set up to automate the process
Summarize and report progress
Automated work maangement systems can communicate well.
Lessons Learned from Agile Modeling
Addresses complaints of SDLC
Time coonsuming
Focusing on data rather than on humans
Coslty
Adigle
Rapid
Iterative
Flexible
Participative to changing human info requirements, business conditions, and environments
Lessons Learned:
Short releases allow systems to evolve
Pari programming enhances overall quality
On-site customers are mutually beneficial
40 hour work-week improves effectiveness
Balancees resources and activities support project goals
Agile values are crucial to success
Improving Efficiency in Knowledge Work: SDLC Vs. Agile
Strategies for Improving Efficiency in Knowledge Work | Implementation Using Structured Methodologies | Implementation Using Agile Methodologies |
---|---|---|
Reduce interface time and errors | Adopting organizational standards for coding, naming, etc.; using forms | Adopting pair programming |
Reduce process learning time and dual processing losses | Managing when updates are released so the user does not have to learn and use software at the same time | Ad hoc prototyping and rapid development |
Reduce time and effort to structure tasks and format outputs | Using CASE tools and diagrams; using code written by other programmers | Encouraging short releases |
Reduce nonproductive expansion of work | Project management; establishing deadlines | Limiting scope in each release |
Reduce data and knowledge search and storage time and costs | Using structured data gathering techniques, such as interviews, observation, sampling | Allowing for an onsite customer |
Reduce communication and coordination time and costs | Separating projects into smaller tasks; establishing barriers | Timeboxing |
Reduce losses from human information overload | Applying filtering techniques to shield analysts and programmers | Sticking to a 40-hour workweek |
Risks Inherent in Organizational Innovation
Organizational culture
Timing
Cost
Clients’ Reactions
Measuring impact
Individual Rights of Programmers/Analysts