This document discusses key concepts in system analysis and design such as identifying problems, user stories, pain points, and goals. It explains that software is often built to help users solve problems in their work. The clients/users can describe their pain points but not necessarily the solution. Understanding the problem context involves knowing the domain vocabulary, processes, and actor goals. Important considerations in problem solving include constraints, assumptions, and defining the problem and solution domains. Key artifacts like the problem statement and vision statement are discussed to help frame the problem and desired solution. Gaps in knowledge, skills, and technologies also need to be identified and addressed.
This document provides an overview of different career paths in technology, including technical paths, management paths, and considerations for career choices.
For technical paths, it outlines expectations and examples of skills to develop at different levels from junior to senior developer and beyond. It emphasizes the importance of gaining both depth and breadth of skills over time.
For management paths, it discusses what makes a good manager and focuses on empowering teams rather than giving orders. Engineering manager responsibilities include managing risks, growing the team, and providing technical guidance. Higher levels such as Director involve ensuring team success, long-term planning, and acting as a business partner.
Executive roles entail making sure the entire organization or company succeeds through strategic investments
The Comprehensive machine learning canvas is A Tool for Scoping Machine Learning Projects and Defining Solutions.
The Comprehensive Machine Learning Canvas (CMLC) is a tool that helps teams scope machine learning projects and define solutions to business problems. It is based on the idea that machine learning is a creative process, and that the best way to approach it is to start with a hypothesis of how machine learning could help solve a particular business problem. The CMLC helps teams map out the problem, machine learning approach, and potential solutions.
The document discusses several topics related to human-computer interaction and user interface design:
1) It describes different models of how users, programmers, and designers conceptualize software and user interfaces. Key models discussed include the user's mental model, programmer's model, and designer's model.
2) It discusses the importance of understanding users, their tasks, experiences, and expectations when designing interfaces. Techniques like metaphors and analogies can help bridge the gap between a user's mental model and an unfamiliar software system.
3) Usability, learnability, and providing a quality user experience are important design goals. Both subjective and objective metrics are needed to evaluate interfaces. The document provides an overview of many factors
Empirical Methods in Software Engineering - an Overviewalessio_ferrari
油
A first introductory lecture on empirical methods in software engineering. It includes:
1) Motivation for empirical software engineering studies
2) How to define research questions
3) Measures and data collection methods
4) Formulating theories in software engineering
5) Software engineering research strategies
Find the videos at: https://www.youtube.com/playlist?list=PLSKM4VZcJjV-P3fFJYMu2OhlTjEr9Bjl0
This document discusses requirement engineering and techniques for requirements elicitation. It defines requirements and describes the different levels of requirements from business to functional to non-functional. The key techniques discussed for eliciting requirements include interviewing stakeholders, holding requirements workshops, brainstorming with users, creating storyboards and use cases, and building prototypes. Prototyping in particular is highlighted as an effective way to address common issues in requirements elicitation like the "yes, but" syndrome and discovering additional undisclosed needs.
This document provides an outline for a course on problem solving techniques. It discusses defining the problem, generating solutions, evaluating solutions, and implementing a solution. Specific techniques covered include 5 whys, root cause analysis, fishbone diagrams, brainstorming, decision trees, Pareto analysis, and project management. The document also lists 10 characteristics of effective problem solvers such as having a positive attitude, considering all perspectives, and seeking permanent solutions.
The document discusses best practices for communicating with users during software development projects. It emphasizes the importance of understanding different types of users, learning their language, involving users throughout the process, documenting requirements and changes, providing training, and establishing support processes. The presentation includes several "experience sessions" where attendees are encouraged to share experiences about communicating with users.
The document discusses software requirements and requirement engineering. It defines what requirements are, including different levels like business, user, and functional requirements. It explains that requirement engineering determines the goals, functions, and constraints of software systems. The document outlines the requirement engineering process and discusses common challenges like the "yes, but" syndrome where users provide additional feedback, and the "undiscovered ruins" syndrome where further requirements are uncovered. It provides examples of techniques to elicit requirements like interviewing stakeholders, workshops, brainstorming, storyboarding, use cases, and prototyping.
What they have in common and what are the differences. We will focus on Agile as a stable process and changes as a natural part of creating the product. As well as how to present this point of view to the Client and stakeholders to help them understand the safety of Agile methods that allow changing requirements and priorities within the product.
Design process interaction design basicsPreeti Mishra
油
This document provides an introduction to interaction design basics and terms. It discusses that interaction design involves creating technology-based interventions to achieve goals within constraints. The design process has several stages and is iterative. Interaction design starts with understanding users through methods like talking to and observing them. Scenarios are rich stories used throughout design to illustrate user interactions. Basic terms in interaction design include goals, constraints, trade-offs, and the design process. Usability and user-centered design are also discussed.
Working together: Agile teams, developers, and product managersDanielle Martin
油
I spoke to students at Ada Developer Academy in Seattle, WA about how product managers and software engineers work together. In the presentation I cover: what's an agile team and how do they work; case studies of real work by my agile product development team; advice about behaviors that create successful product manager and developer working relationships; and other career/life advice for students starting their careers as software engineers.
The document discusses principles and practices of software engineering. It begins by outlining the essence of problem solving and software engineering practice as understanding the problem, planning a solution, carrying out the plan, and examining the results. It then discusses core principles like ensuring value for users, keeping designs simple, maintaining a clear vision, and thinking before taking action. The document also covers communication practices for requirements gathering and planning practices for defining the project scope and managing risks.
The document provides an introduction to an Agile and Lean User Experience workshop. It discusses how traditional UX practices emphasize deliverables and individual hero designers, while Lean UX focuses on collaborative sense-making and ensuring the customer experience is owned by everyone. The workshop covers Lean UX principles and processes, integrating design into agile development, and the importance of customer research methods like interviewing and empathy mapping to understand user needs and validate hypotheses.
Software development is best understood as a cooperative game of invention and communication, rather than an engineering process or model building exercise. The primary goal of the game is to deliver useful working software, while the secondary goal is to set up for future projects. Successful software development relies more on the ideas and discussions between team members than on formal work products and models. Programmers function more as communication specialists than non-communicative coders. Building a theory of the problem and solution through communication is more important than documentation.
How to Effectively Lead a Focus Group by nexTier Product ManagerProduct School
油
Talking to users can be challenging or intimidating, and running a focus group is one of those tasks which most Product Managers would say is essential in getting real user insights. Traditionally, UX designers and Product Managers have relied on a combination of quantitative data and qualitative insights from focus groups and interviews.
Whether you want to test your user group's response to a new product or changes to modules or features within an existing product, as a product person you need to have a creative set of analytical skills and strategies for how to steer the group toward productive discussions.
Tremis Skeete talked about how focus groups can truly work well for you, and how you can organize, coordinate, and effectively lead focus group sessions.
Tom van Ees - Academic and Commercial software DevelopmentDavinci software
油
The document provides an overview of similarities and differences between academic and commercial software development. It discusses types of software like bespoke vs product-based and their complexities. Key factors in commercial software sales like convincing decision-makers during demos and end-users during daily use are outlined. Important aspects of making software sellable like always considering the customer, focusing on aesthetics, and frequent releases are highlighted. The role of the developer in maintaining quality, using mainstream technologies, and not becoming too specialized is also discussed.
Usability in Virtual Worlds (Metaverse08)Markus Breuer
油
This document discusses usability in virtual worlds and provides recommendations for improving usability based on user-centered design principles. It summarizes challenges with current usability in virtual worlds and provides examples of poor usability. The document recommends using user interviews, personas, scenarios and iterative user testing to understand users and improve designs. Conducting user research and testing designs with target users early and often is emphasized as key to achieving better usability.
This document discusses different perspectives on software development:
- Software development is best viewed as a cooperative game of invention and communication, where the goal is to deliver working software while preparing for future projects.
- Considering it as engineering or model building does not capture the creative, communicative nature of the work.
- Programming involves building a theory of the problem and solution domain through discussion and design, not just producing documentation and code.
Future of software development - Danger of OversimplificationJon Ruby
油
This document discusses perspectives on the future of software development. It acknowledges that while tools like Agile practices, minimum viable products, and APIs can be useful, an overreliance on simple solutions can be problematic. Software development involves balancing many factors, and focusing only on speed or other narrow metrics ignores important considerations like user experience. True success requires a culture that challenges assumptions and focuses on the human factors.
The document discusses the idea of a "360属 developer" and the speaker's journey to becoming a well-rounded developer. Some key points:
- The speaker struggled when changing jobs from C# to Ruby, lacking context for agile practices and dealing with personality conflicts.
- They realized they needed to develop knowledge, personal, and functional skills to effectively solve business problems. This led to the idea of a "360属 developer" with a diverse set of skills.
- The talk outlines developing skills in SOLID principles, design patterns, conflict resolution, mentoring, and cross-domain problem solving to become a well-rounded developer.
How We Used Fast Customer Feedback to Build Product Insights - Michelle Huff...Traction Conf
油
Is it desirable? Is it viable? Is it feasible? These are the criteria every team should consider when building a product.
This was the mantra of UserTesting as we recently developed a product using fast customer feedback to build a product... for fast customer feedback.
When UserTesting builds products, they're constantly refining their understanding of three key questions: who is my customer? what is their problem? what is the best, lightest solution I can build for them? This drives rapid validation & iteration cycles as we build.
In this session, UserTesting CMO Michelle Huff will discuss their product development framework and discuss how they used customer feedback to (in)validate early ideas and build a shared understanding of the customer to avoid the second-guessing, and avoid debating and Monday-morning-quarterbacking that PMs often encounter when building products.
She will also share examples of how they shared their understanding of the three key questions throughout the product development lifecycle to bring stakeholders along.
Everyone always want their own site look nice but how much they know about their user characteristics. This presentation will guide you about "key success factor to design a web site", "how to reach your target", "leading to win-win situation" and "testing your site and analyze results"
You aren't your target market. - UX Research BasicsAngela Obias
油
Originally presented in an IT Entrepreneurship Ideation class in the Ateneo de Manila University, February 2015.
Bare-bones advice on how to get minimum, but necessary, validation about the class's digital product ideas.
As designers, we use empathy to solve critical leadership problems in our teams, and as servant leaders, our purpose is to serve others in a meaningful and productive manner.
My goal with this talk was to provide developers and tech folks with an understanding of requirements gathering. Key concepts and resources that they can use to make their own coding practice better. Part of being a professional coder
June Labs User Experience (UX) OverviewJef Lippiatt
油
This presentation was created to give teachers and educators an overview of what user experience (UX) is, and how it applies in the world of education technology (EdTech). It also incorporates design thinking and the idea of flow.
The document discusses agile product development and user experience design, describing agile methodology as an iterative approach performed by cross-functional teams to deliver high-quality, cost-effective software. It also outlines different user types, techniques for simplifying complex interfaces, principles of behavior-driven development, and how to use analytics and A/B testing to continuously improve products based on validated user feedback.
The document discusses software requirements and requirement engineering. It defines what requirements are, including different levels like business, user, and functional requirements. It explains that requirement engineering determines the goals, functions, and constraints of software systems. The document outlines the requirement engineering process and discusses common challenges like the "yes, but" syndrome where users provide additional feedback, and the "undiscovered ruins" syndrome where further requirements are uncovered. It provides examples of techniques to elicit requirements like interviewing stakeholders, workshops, brainstorming, storyboarding, use cases, and prototyping.
What they have in common and what are the differences. We will focus on Agile as a stable process and changes as a natural part of creating the product. As well as how to present this point of view to the Client and stakeholders to help them understand the safety of Agile methods that allow changing requirements and priorities within the product.
Design process interaction design basicsPreeti Mishra
油
This document provides an introduction to interaction design basics and terms. It discusses that interaction design involves creating technology-based interventions to achieve goals within constraints. The design process has several stages and is iterative. Interaction design starts with understanding users through methods like talking to and observing them. Scenarios are rich stories used throughout design to illustrate user interactions. Basic terms in interaction design include goals, constraints, trade-offs, and the design process. Usability and user-centered design are also discussed.
Working together: Agile teams, developers, and product managersDanielle Martin
油
I spoke to students at Ada Developer Academy in Seattle, WA about how product managers and software engineers work together. In the presentation I cover: what's an agile team and how do they work; case studies of real work by my agile product development team; advice about behaviors that create successful product manager and developer working relationships; and other career/life advice for students starting their careers as software engineers.
The document discusses principles and practices of software engineering. It begins by outlining the essence of problem solving and software engineering practice as understanding the problem, planning a solution, carrying out the plan, and examining the results. It then discusses core principles like ensuring value for users, keeping designs simple, maintaining a clear vision, and thinking before taking action. The document also covers communication practices for requirements gathering and planning practices for defining the project scope and managing risks.
The document provides an introduction to an Agile and Lean User Experience workshop. It discusses how traditional UX practices emphasize deliverables and individual hero designers, while Lean UX focuses on collaborative sense-making and ensuring the customer experience is owned by everyone. The workshop covers Lean UX principles and processes, integrating design into agile development, and the importance of customer research methods like interviewing and empathy mapping to understand user needs and validate hypotheses.
Software development is best understood as a cooperative game of invention and communication, rather than an engineering process or model building exercise. The primary goal of the game is to deliver useful working software, while the secondary goal is to set up for future projects. Successful software development relies more on the ideas and discussions between team members than on formal work products and models. Programmers function more as communication specialists than non-communicative coders. Building a theory of the problem and solution through communication is more important than documentation.
How to Effectively Lead a Focus Group by nexTier Product ManagerProduct School
油
Talking to users can be challenging or intimidating, and running a focus group is one of those tasks which most Product Managers would say is essential in getting real user insights. Traditionally, UX designers and Product Managers have relied on a combination of quantitative data and qualitative insights from focus groups and interviews.
Whether you want to test your user group's response to a new product or changes to modules or features within an existing product, as a product person you need to have a creative set of analytical skills and strategies for how to steer the group toward productive discussions.
Tremis Skeete talked about how focus groups can truly work well for you, and how you can organize, coordinate, and effectively lead focus group sessions.
Tom van Ees - Academic and Commercial software DevelopmentDavinci software
油
The document provides an overview of similarities and differences between academic and commercial software development. It discusses types of software like bespoke vs product-based and their complexities. Key factors in commercial software sales like convincing decision-makers during demos and end-users during daily use are outlined. Important aspects of making software sellable like always considering the customer, focusing on aesthetics, and frequent releases are highlighted. The role of the developer in maintaining quality, using mainstream technologies, and not becoming too specialized is also discussed.
Usability in Virtual Worlds (Metaverse08)Markus Breuer
油
This document discusses usability in virtual worlds and provides recommendations for improving usability based on user-centered design principles. It summarizes challenges with current usability in virtual worlds and provides examples of poor usability. The document recommends using user interviews, personas, scenarios and iterative user testing to understand users and improve designs. Conducting user research and testing designs with target users early and often is emphasized as key to achieving better usability.
This document discusses different perspectives on software development:
- Software development is best viewed as a cooperative game of invention and communication, where the goal is to deliver working software while preparing for future projects.
- Considering it as engineering or model building does not capture the creative, communicative nature of the work.
- Programming involves building a theory of the problem and solution domain through discussion and design, not just producing documentation and code.
Future of software development - Danger of OversimplificationJon Ruby
油
This document discusses perspectives on the future of software development. It acknowledges that while tools like Agile practices, minimum viable products, and APIs can be useful, an overreliance on simple solutions can be problematic. Software development involves balancing many factors, and focusing only on speed or other narrow metrics ignores important considerations like user experience. True success requires a culture that challenges assumptions and focuses on the human factors.
The document discusses the idea of a "360属 developer" and the speaker's journey to becoming a well-rounded developer. Some key points:
- The speaker struggled when changing jobs from C# to Ruby, lacking context for agile practices and dealing with personality conflicts.
- They realized they needed to develop knowledge, personal, and functional skills to effectively solve business problems. This led to the idea of a "360属 developer" with a diverse set of skills.
- The talk outlines developing skills in SOLID principles, design patterns, conflict resolution, mentoring, and cross-domain problem solving to become a well-rounded developer.
How We Used Fast Customer Feedback to Build Product Insights - Michelle Huff...Traction Conf
油
Is it desirable? Is it viable? Is it feasible? These are the criteria every team should consider when building a product.
This was the mantra of UserTesting as we recently developed a product using fast customer feedback to build a product... for fast customer feedback.
When UserTesting builds products, they're constantly refining their understanding of three key questions: who is my customer? what is their problem? what is the best, lightest solution I can build for them? This drives rapid validation & iteration cycles as we build.
In this session, UserTesting CMO Michelle Huff will discuss their product development framework and discuss how they used customer feedback to (in)validate early ideas and build a shared understanding of the customer to avoid the second-guessing, and avoid debating and Monday-morning-quarterbacking that PMs often encounter when building products.
She will also share examples of how they shared their understanding of the three key questions throughout the product development lifecycle to bring stakeholders along.
Everyone always want their own site look nice but how much they know about their user characteristics. This presentation will guide you about "key success factor to design a web site", "how to reach your target", "leading to win-win situation" and "testing your site and analyze results"
You aren't your target market. - UX Research BasicsAngela Obias
油
Originally presented in an IT Entrepreneurship Ideation class in the Ateneo de Manila University, February 2015.
Bare-bones advice on how to get minimum, but necessary, validation about the class's digital product ideas.
As designers, we use empathy to solve critical leadership problems in our teams, and as servant leaders, our purpose is to serve others in a meaningful and productive manner.
My goal with this talk was to provide developers and tech folks with an understanding of requirements gathering. Key concepts and resources that they can use to make their own coding practice better. Part of being a professional coder
June Labs User Experience (UX) OverviewJef Lippiatt
油
This presentation was created to give teachers and educators an overview of what user experience (UX) is, and how it applies in the world of education technology (EdTech). It also incorporates design thinking and the idea of flow.
The document discusses agile product development and user experience design, describing agile methodology as an iterative approach performed by cross-functional teams to deliver high-quality, cost-effective software. It also outlines different user types, techniques for simplifying complex interfaces, principles of behavior-driven development, and how to use analytics and A/B testing to continuously improve products based on validated user feedback.
Integration of Additive Manufacturing (AM) with IoT : A Smart Manufacturing A...ASHISHDESAI85
油
Combining 3D printing with Internet of Things (IoT) enables the creation of smart, connected, and customizable objects that can monitor, control, and optimize their performance, potentially revolutionizing various industries. oT-enabled 3D printers can use sensors to monitor the quality of prints during the printing process. If any defects or deviations from the desired specifications are detected, the printer can adjust its parameters in real time to ensure that the final product meets the required standards.
Preface: The ReGenX Generator innovation operates with a US Patented Frequency Dependent Load Current Delay which delays the creation and storage of created Electromagnetic Field Energy around the exterior of the generator coil. The result is the created and Time Delayed Electromagnetic Field Energy performs any magnitude of Positive Electro-Mechanical Work at infinite efficiency on the generator's Rotating Magnetic Field, increasing its Kinetic Energy and increasing the Kinetic Energy of an EV or ICE Vehicle to any magnitude without requiring any Externally Supplied Input Energy. In Electricity Generation applications the ReGenX Generator innovation now allows all electricity to be generated at infinite efficiency requiring zero Input Energy, zero Input Energy Cost, while producing zero Greenhouse Gas Emissions, zero Air Pollution and zero Nuclear Waste during the Electricity Generation Phase. In Electric Motor operation the ReGen-X Quantum Motor now allows any magnitude of Work to be performed with zero Electric Input Energy.
Demonstration Protocol: The demonstration protocol involves three prototypes;
1. Protytpe #1, demonstrates the ReGenX Generator's Load Current Time Delay when compared to the instantaneous Load Current Sine Wave for a Conventional Generator Coil.
2. In the Conventional Faraday Generator operation the created Electromagnetic Field Energy performs Negative Work at infinite efficiency and it reduces the Kinetic Energy of the system.
3. The Magnitude of the Negative Work / System Kinetic Energy Reduction (in Joules) is equal to the Magnitude of the created Electromagnetic Field Energy (also in Joules).
4. When the Conventional Faraday Generator is placed On-Load, Negative Work is performed and the speed of the system decreases according to Lenz's Law of Induction.
5. In order to maintain the System Speed and the Electric Power magnitude to the Loads, additional Input Power must be supplied to the Prime Mover and additional Mechanical Input Power must be supplied to the Generator's Drive Shaft.
6. For example, if 100 Watts of Electric Power is delivered to the Load by the Faraday Generator, an additional >100 Watts of Mechanical Input Power must be supplied to the Generator's Drive Shaft by the Prime Mover.
7. If 1 MW of Electric Power is delivered to the Load by the Faraday Generator, an additional >1 MW Watts of Mechanical Input Power must be supplied to the Generator's Drive Shaft by the Prime Mover.
8. Generally speaking the ratio is 2 Watts of Mechanical Input Power to every 1 Watt of Electric Output Power generated.
9. The increase in Drive Shaft Mechanical Input Power is provided by the Prime Mover and the Input Energy Source which powers the Prime Mover.
10. In the Heins ReGenX Generator operation the created and Time Delayed Electromagnetic Field Energy performs Positive Work at infinite efficiency and it increases the Kinetic Energy of the system.
This PPT covers the index and engineering properties of soil. It includes details on index properties, along with their methods of determination. Various important terms related to soil behavior are explained in detail. The presentation also outlines the experimental procedures for determining soil properties such as water content, specific gravity, plastic limit, and liquid limit, along with the necessary calculations and graph plotting. Additionally, it provides insights to understand the importance of these properties in geotechnical engineering applications.
Air pollution is contamination of the indoor or outdoor environment by any ch...dhanashree78
油
Air pollution is contamination of the indoor or outdoor environment by any chemical, physical or biological agent that modifies the natural characteristics of the atmosphere.
Household combustion devices, motor vehicles, industrial facilities and forest fires are common sources of air pollution. Pollutants of major public health concern include particulate matter, carbon monoxide, ozone, nitrogen dioxide and sulfur dioxide. Outdoor and indoor air pollution cause respiratory and other diseases and are important sources of morbidity and mortality.
WHO data show that almost all of the global population (99%) breathe air that exceeds WHO guideline limits and contains high levels of pollutants, with low- and middle-income countries suffering from the highest exposures.
Air quality is closely linked to the earths climate and ecosystems globally. Many of the drivers of air pollution (i.e. combustion of fossil fuels) are also sources of greenhouse gas emissions. Policies to reduce air pollution, therefore, offer a win-win strategy for both climate and health, lowering the burden of disease attributable to air pollution, as well as contributing to the near- and long-term mitigation of climate change.
This presentation provides an in-depth analysis of structural quality control in the KRP 401600 section of the Copper Processing Plant-3 (MOF-3) in Uzbekistan. As a Structural QA/QC Inspector, I have identified critical welding defects, alignment issues, bolting problems, and joint fit-up concerns.
Key topics covered:
Common Structural Defects Welding porosity, misalignment, bolting errors, and more.
Root Cause Analysis Understanding why these defects occur.
Corrective & Preventive Actions Effective solutions to improve quality.
Team Responsibilities Roles of supervisors, welders, fitters, and QC inspectors.
Inspection & Quality Control Enhancements Advanced techniques for defect detection.
Applicable Standards: GOST, KMK, SNK Ensuring compliance with international quality benchmarks.
This presentation is a must-watch for:
QA/QC Inspectors, Structural Engineers, Welding Inspectors, and Project Managers in the construction & oil & gas industries.
Professionals looking to improve quality control processes in large-scale industrial projects.
Download & share your thoughts! Let's discuss best practices for enhancing structural integrity in industrial projects.
Categories:
Engineering
Construction
Quality Control
Welding Inspection
Project Management
Tags:
#QAQC #StructuralInspection #WeldingDefects #BoltingIssues #ConstructionQuality #Engineering #GOSTStandards #WeldingInspection #QualityControl #ProjectManagement #MOF3 #CopperProcessing #StructuralEngineering #NDT #OilAndGas
Best KNow Hydrogen Fuel Production in the World The cost in USD kwh for H2Daniel Donatelli
油
The cost in USD/kwh for H2
Daniel Donatelli
Secure Supplies Group
Index
Introduction - Page 3
The Need for Hydrogen Fueling - Page 5
Pure H2 Fueling Technology - Page 7
Blend Gas Fueling: A Transition Strategy - Page 10
Performance Metrics: H2 vs. Fossil Fuels - Page 12
Cost Analysis and Economic Viability - Page 15
Innovations Driving Leadership - Page 18
Laminar Flame Speed Adjustment
Heat Management Systems
The Donatelli Cycle
Non-Carnot Cycle Applications
Case Studies and Real-World Applications - Page 22
Conclusion: Secure Supplies Leadership in Hydrogen Fueling - Page 27
The Golden Gate Bridge a structural marvel inspired by mother nature.pptxAkankshaRawat75
油
The Golden Gate Bridge is a 6 lane suspension bridge spans the Golden Gate Strait, connecting the city of San Francisco to Marin County, California.
It provides a vital transportation link between the Pacific Ocean and the San Francisco Bay.
2. Why is software built?
Software is often built to help the business clients or
users solve their problems (called pain points)
o What is not working properly?
o What is hurting them?
o How serious is the pain?
Example
o Unable to respond to changing market conditions quickly
The clients/users can often express their pain points,
but not the solution
3. Humans have pain points like - I am
bored, I need inspiration
Many systems are built for these pain
points
4. What is the Problem?
Software is built to address pain/pleasure points
The better the problem can be stated/framed, the
more likely it can be solved
To ensure success, we need to pay proper attention
to what is not working properly, what is hurting us
pain/pleasure points
Once we identify the key high-level pain/pleasure
points, further analysis will result in a detailed view
of the problem
Problem exists in a context
We need to understand the context to understand the
Pain Points
5. How much do you understand the problem?
To better understand the problem context, we
should be familiar with the
Domain vocabulary (terminologies meaningful to
the problem)
Activities, processes and tasks that require
software solutions
Examples of domain vocabulary:
Credit, Debit, Account and Statement all
have a particular meaning in the banking domain
Example of the process:
Enrolment
6. Actors
What/who are people/things interacting with
the software that we plan to develop?
In Software Engineering we call these
people/things Actors
Actors can have an impact on how the new
software should operate
Important to analyze these impacts when
designing software solutions
Pain points of the clients/users must be addressed
7. Actors
Actors play a role in the software system
A single real human can take on multiple roles
An external system is considered an actor (iPod is an actor
in the iTunes system)
If it interfaces with the system, then it can be considered
an actor
Every actor has different pain points
This means, the iPod (a non sentient entity) has pain
points - - in its case it will be the interface to the iTunes
software
iPod itself does not have the issue, but the developers of
the iPod software will want a simple interface to iTunes
8. Actor Goals
Every actor has a set of pain/pleasure points -- we
build software to address these points
Actors also have a GOAL state in mind
Actors use systems to reach their GOAL state
Example GOALS:
Get the list of latest books on OOAD
Purchase a book from the online book store
View the latest video lectures on OOAD
Software must allow the actor to achieve their GOALS
9. What constraints are you dealing with?
Constraints restrict your choices on how problems
can be solved
Example:
You must solve the problem in 2 months with $X
You are asked to improve performance of the current
system, which was written in the Cobol language
The developed system must work in the clients operating
environment, which is Linux
Some other constraints could be
Laws/regulations
Users current training/education level
10. Problem domain
Identify actors
Understand the need/impact of each actor
Write down the goals of each actor
What are the constraints that we have to work
with?
What is the domain vocabulary?
Analysing the problem to figure out a direction
of solving this problem (solution direction)
11. Assumptions
When we develop solutions, we often make
assumptions on the problem domain
Example: The users understand English, so the
instructions given to the users are written in
English
Should we verify the validity of our
assumptions?
Better do so, otherwise, we may waste our time in
developing useless solutions for the clients/users
12. Solution development
Choose the best solution out of potential solutions
(requires decision making)
Decision making is influenced by
Constraints (including some environmental factors)
Habits and Personality
Questions to ask
Are these reasonable choices?
Can we defend the decisions/choices that we have made?
What is the impact of each choice?
Constraints of our next steps
13. Solution domain
Initially, we may just have a solution
direction
Throughout the software development
process, we keep refining the solutions
based on
Our understanding of the problem domain
Previous decisions made for the solution
Note: Some of the decisions we made in the
past will restrict what we do next
15. Some useful statements
In an early stage of software development,
it is useful to have/make the following two
statements
Problem statement
Vision statement
16. Problem statement
Describes what needs to be done without
describing how
Agreed by all members in the project
A description of a problem that helps the non-
technical and technical personnel
communicate
Technical terms should be explained if used
17. Problem statement
The problem of
people not being able to communicate
properly as they get older
affects
the elderly and people with speech,
hearing, and memory disabilities
the impact of which is
difficulty in communicating with other
people and difficulty in seeking help in
emergency situations
a successful solution
would be
a simple, mobile application that will
provide users with means of expressing
themselves, and more easily
understanding others. The product would
also support efficient means of reaching
emergency contacts.
18. Vision statement
It aims to
Cover the essence of the new system
Market the software
Keep the developers focused on the core essence of the
system
It should be brief
Example -> JU vision:
At JU, we are passionate about excellence in higher
education, vocational training and research. As an institution we
are flexible in our teaching and learning, focused in our research
and engaged with both industry and the community. We are
committed to a sustainable JU.
19. Vision statement template
The various parts of a general vision
statement are:
For (target user, audience)
Who (statement of the need or opportunity)
The (product name) is a (product category)
That (key benefit, compelling reason to build/buy)
Unlike (primary competitive alternative)
Our product (statement of primary differentiation)
20. For
elderly or disabled persons with speech, hearing, and
memory disabilities
Who have difficulty communicating with others
The HOPE Cellular
Phone
Application (HCPA)
is a software application
That
provides the ability to communicate more effectively
with others, and swiftly contact emergency responders
through a simple, intuitive interface
Unlike
currently available systems that have poor interface to
communicate with others and do not provide a
detailed system for emergency services.
Our product
provides users with means of expressing themselves,
and more easily understanding others. This is
accomplished by text-to-speech and speech-to-text
functionality and other features. The product also
supports efficient means of reaching emergency
contacts and emergency responders.
21. Vision statement template (cont.)
Example one: Vision statement for the CSE_Dynamics game
For: CSE, JUstudents
Who: Are bored in between the lectures
The: CSE_Dynamics is a real-time strategy game
That: allows hours of interactive game play
Unlike: Warcraft
Our: CSE_Dynamics is custom designed to ensure that you can play
with other CSE, JU students
Once the key information is stated as above, it needs to be
written up into a single paragraph like:
CSE_Dynamics is a {THE} real-time strategy game for (CSE, JU)
students who are bored in between classes. Unlike Warcraft,
CSE_Dynamics is {OUR} custom designed to {THAT} ensure hours of
interactive game play between CSE, JUstudents.
22. Vision statement template (cont.)
Example Two: Vision statement for the MJB online job-board:
For: Candidates
Who: Are seeking jobs
The: MJB is an online job board
That: Allows recruiters to post vacancies
Unlike: The classified section of the newspaper
Our: Job board allows for fast search and real-time access to
positions
The final vision statement for the MJB online job-board becomes
The MJB is {THE} an online job board for candidates who are
seeking jobs. Unlike the classified section of the newspaper, MJB
allows {THAT} recruiters to post vacancies and allows {OUR} job
hunters to fast search and real-time access to positions.
23. Gaps
All projects work with gaps -- these gaps cause
risks of project failures
Three possible gaps
Knowledge gap - Do we know what to do?
Skill gap - Do we have the skills to do this?
Technology gap Do existing technologies help us
solve our problem? Can we afford it?
24. Knowledge gap
This gap exists when your knowledge of an
issue or aspect is not complete
Cause for inability to identify knowledge gaps
Over self-confident
The ego tends to hide some issues
25. Skill gap
You know it, you have seen it done by others
However, your skill for doing this is not good --
insufficient practice
Example: I do not know how long it will take
to do X
Skills are difficult to develop without a certain
level of practice
Again, ego tends to amplify your ability
Should/Can all tasks be performed by experts?
26. Technology gap
You know what to do, but do you know which
technique and technology to use?
The techniques and technologies, that have
ever been used to solve similar problems as
yours, are more likely to work for your project
Research and careful analysis are required to
close the technology gaps in your project
27. Impact of gaps
If you have any of these gaps (Knowledge, Skill and
Technology) and do not know how to deal with
them, you are not really ready to start the project
Gap analysis and spiking
How critical are these gaps to project success?
Can you close these gaps? How to close them? A plan is
required to spike each gap out
Without an early spiking, the project is more likely to fail
28. Capturing gaps
Along the development, more and more gaps will
start to appear
For example, the following new questions will come
up:
Do we have a library that will do X for us?
Is there a framework that will solve Y for me?
Can we deliver the quality goals with our current
technology?
You need to ask yourself which gap is motivating you
towards these questions
This will help you define the spiking plan
30. Problem, actor, pain point and goal
Case study problem:
Jerry lives in Melbourne and finds the weather patterns
are odd. He is frustrated everyday since he either wears
too many or too few clothes. He often gets wet as he is
walking to work. This upsets him.
Actor: Jerry
Pain points of Jerry
Frustration due to weather patterns
Sometimes Jerry gets wet because he didnt dress for
expected showers
GOAL:
"Jerry is unable to dress adequately for the weather conditions in
Melbourne. He needs the latest reliable weather forecast
information before getting dressed & leaving home
31. Problems to be solved
Presenting the weather information in a way that
Jerry can understand and act on it
Select a reliable weather information provider,
i.e. 95% accurate for next day forecast
Define a mechanism to get the weather
information from the provider (Cost?)
Identify the frequency at which we retrieve the
weather information. (Hourly? Daily? Weekly?)
This frequency may change the reliability of
information.
32. Some knowledge gaps
Unclear about the following issues
What constitutes latest weather?
What is the metric for reliability/accuracy of weather
forecast?
What will happen if we provide the wrong information?
Will this be expensive?
How much information does Jerry need to dress properly?
Do we need to train Jerry in weather vocabulary and
interpretation?
How do we deliver the information? (SMS/E-mail/Internet
etc.)
How critical are these gaps to project success?
Plan to close the gaps
33. Potential solutions
1. Change the weather patterns in Melbourne
2. Climate control the path Jerry takes to work
3. Brain wash Jerry to live with odd weather
patterns
4. Provide Jerry with the latest weather forecast
before he leaves home allowing him to dress
appropriately
5. Teach Jerry to wear layers
34. Assumptions
Some obvious assumptions
Jerry can read English and understand basic weather
terminology
There is a source for weather forecast (i.e. we need not
invent the technology and build the infrastructure)
In order for the (chosen) solution to work, the
following assumption is required even though we
have no control of it
Jerry will make wise choices (regarding to what to wear)
when provided with an accurate weather forecast
Check the validity of the above assumptions
35. Solution attributes
Ways of delivering weather information
SMS/E-mail
Internet
Secure
Characteristics of the provided information
Accurate and reliable
Current
Simple and Clear
All of these attributes reflect decisions made either
by Jerry (i.e. user) or by the solution developer
37. More assumptions
Jerry has a device capable of receiving an SMS
or E-mail
Jerry can register via the Internet
A reliable weather forecast provider exists at a
reasonable price
Bold words are still not clear and need to be
refined, for example,
Internet Web application
Reasonable price less than 5c a day
38. Decisions made during solution refinement
Weather forecast will be taken from the Bureau
of Meteorology (BOM). Only freely available data
from their web site shall be used
http://www.bom.gov.au/vic/forecasts/melbourne
.shtml
Forecast information shall be sent via an SMS
message at 6:00am in the morning. This will be
based on the forecast issued at 5:00am by the
BOM.
40. Data analysis
What type of information (output) can allow the user to
reach their goals?
Which scale of measurement does Jerry understand? (Celsius or
Fahrenheit)
What is the input that we need to produce this output,
and can we get this input data?
Example: we need to provide the following information in the output:
Temperature range
Current temperature
Wind speed
Probability of rain/shower/precipitation, and when it is likely to occur
Sample output - Rain in the morning. Fine after. 12oC 24oC. Current
temp: 12oC, Wind: 5 miles/hr north
How do we fit the data from BOM into an SMS message? What data
can we remove? What is the risk?
41. Data analysis (cont.)
Can we provide this output within the overall
scope and constraints identified so far?
What happens if Jerry moves to Sydney (or overseas)?
What happens if BOM stops providing free weather
forecast services?
What inputs are required from the users?
Information required to register Jerry
Need to identify key inputs and outputs of the
software
Need to design test cases
42. Types of Requirements
Functional requirements: Describe the interactions between
the system and its environment independent from
implementation
The watch system must display the time based on its location
Nonfunctional requirements: User visible aspects of the
system not directly related to functional behavior.
The response time must be less than 1 second
The accuracy must be within a second
The watch must be available 24 hours a day except from 2:00am -
2:01am and 3:00am - 3:01am
Constraints (Pseudo requirements): Imposed by the client
or the environment in which the system will operate
The implementation language must be COBOL
44. Collecting data in the problem domain
To understand the problem that we are dealing
with, we can adopt the following techniques
Interview
Questionnaire
Experimentation by building a prototype
Observation
Document inspection
User story
45. User Story
User Story
Users tell the stories, and developers listen, ask questions
to understand context
A short description of the behaviour of the system
Generally implementation issues are not discussed
The entire system is specified through stories
Each story is short, goal oriented testable
Can be used for usability testing
Story is descriptive, but often a diagram or a sample
output page helps to explain the concept much
better
As in user interface snippets, forms or reports
46. Data to be collected and analyzed
Actors - role and responsibility
Scenarios/User Stories
Source of the data that we have to deal with
(reliability and accuracy, etc)
Information that actors want (output)
Software interfaces to existing actors
What cause events to happen, and what cause work
to be created
Workflows and activities
Knowing what type of problem it is (solvable?)
47. What is a User Story?
A User Story is a requirement expressed from the perspective
of an end-user goal.
Its usually written out as a couple of sentences. Most user
stories are written in the language of the users, so any user
should be able to read a user story and immediately
understand what it means.
A User Story is really just a well-expressed requirement.
User Story is only meant to describe a feature, but not
describe how to implement it, meaning leaving out the
technical aspect, it should describe the behavior or flow from
users perspective.
48. What is a User Story?
The User Story format has become the most popular
way of expressing requirements in Agile for a number
of reasons:
It focuses on the viewpoint of a role who will use or be
impacted by the solution
It defines the requirement in language that has meaning
for that role
It helps to clarify the true reason for the requirement
It helps to define high level requirements without
necessarily going into low level detail too early
49. User Story
User Stories are often deemed to comprise
three elements - the 3Cs
Card
Conversation
Confirmation
56. User Story format
The format of the User Story is as follows:
As a < role>
I need <requirement or feature>
So that <goal / value>
57. User Story (Logging in)
Confirmation
1. Success valid user logged in and refer to home page
a. Remember me ticked store cookie/automatic login
next time.
b. Remember me not ticked force login next time.
2. Failure display message:
a. Email address in wrong format
b. Incorrect user name, please try again
c. Incorrect password, please try again
d. Service unavailable please try again later
e. Account has expired refer to account renewal page
#51: Conversation is the most important.
Card acts as reminder.
Confirmation Acceptance criteria to judge when a story is done
#52: Different type of users: normal user, vacation traveler (not as business traveler), frequent flyer who wants to book trip including air flight, hotel, transportation etc.
#54: conditions of satisfaction are high level test cases
#56: New user logging in as a new user, I can register to the system so that I can logging/access the system