UNIT-1: 1. Discuss The Advantages & Disadvantages of Agile Method?
UNIT-1: 1. Discuss The Advantages & Disadvantages of Agile Method?
The Product Owner is a very powerful role in Scrum, and part of its power is due to its ability to
determine how and when to adapt to change.
The Product Owner is responsible for deciding the priority and order of the backlog—and what is in it.
This responsibility means that as the Development Team creates a product increment, the Product Owner
can focus on performing market research, engaging with customers, and seeking additional feedback from
stakeholders.
All of this information allows the Product Owner to seek a competitive advantage for the customer. The
Product Owner may learn of new market demands, discover new customer needs, or develop a new
understanding of business direction and strategy that lead to new, emergent requirements. The Product
Owner has the power and authority to prioritize new requirements over existing ones, for example, or
change existing requirements to better reflect what has been learned.The Product Owner is the front line
in harnessing change for competitive advantage .
2. Allows Organizations to Establish a Sprint Cadence that Balances Risk and Change
Each organization can establish a cadence that provides the Development Team the stability it needs to
create a product increment without distraction or interruption, but also mitigates against the volatility of
the marketplace. For environments in which change is not as frequent, a four-week Sprint may work;
however, if planning with a one-month horizon isn’t feasible or is too risky, the organization can opt for a
shorter time frame.
One of the fundamental realities of product development is that people often don’t really know what they
want until they start to use the product. The Sprint Review provides regular opportunities for customers
and stakeholders to evaluate what has been built so far and collaborate with the Scrum Team to determine
the most valuable thing to do next. That collaboration often leads to new or changed requirements that the
Product Owner can incorporate into the Product Backlog.
Scrum doesn’t merely allow for changing requirements, it generates them. This is how Scrum “harnesses
change for the customer’s competitive advantage”—by encouraging the customer to collaborate with the
Scrum Team on changing direction.
It’s always possible that an earth-shaking change in circumstance could arise and make the current Sprint
Goal and everything in it obsolete: A competitor releases a product that makes what you’re working on
useless. A new regulation demands immediate attention. A security threat requires an immediate patch
and drastic architectural modifications.
For dramatic situations like these, Scrum has an escape valve: canceling a sprint. If the Sprint Goal is no
longer valid, a Product Owner may decide to cancel the Sprint and start a new one.
3. Incremental development is done in steps from Iterative development is less concerned with
design, implementation, testing/verification, tracking the progress of individual features.
maintenance. These can be broken down Instead, focus is put on creating a working
further into sub-steps but most incremental prototype first and adding features in
models follow that same pattern. development cycles where the Increment
Development steps are done for every cycle.
4. Good design choices are often 'discovered' Instead of investing a lot of time chasing the
during the development process. 'perfect design', the iterative approach is all about
creating something that fit the user's needs.
5. The Waterfall Model is a traditional Agile modelling is a typical iterative approach.
incremental development approach.
6. Incremental means breaking up a project into Iterative means progressively refining some
smaller chunks of functionality and completing given functionality to optimize it based on user
each chunk individually without waiting for the feedback and other inputs.
rest of the functionality to be complete.
• The agile process is broken into individual • The design process is not broken into
models that designers work on an individual models
• The customer has early and frequent • The customer can only see the product
opportunities to look at the product and make at the end of the project
decision and changes to the project
• Small projects can be implemented very • All sorts of project can be estimated
quickly. For large projects, it is difficult to and completed.
estimate the development time.
• Error can be fixed in the middle of the • Only at the end, the whole product is
project. tested. If the requirement error is
found or any changes have to be made,
the project has to start from the
beginning
• Every iteration has its own testing phase. It • Only after the development phase, the
allows implementing regression testing every testing phase is executed because
time new functions or logic are released. separate parts are not fully functional.
• In agile testing when an iteration end, • All features developed are delivered at
shippable features of the product is delivered once after the long implementation
to the customer. New features are usable right phase.
after shipment. It is useful when you have
good contact with customers.
• At the end of every sprint, user acceptance is • User acceptance is performed at the
performed end of the project.
1. Agile methods took over the traditional methods, to overcome the rigidity of the traditional model.
2. Agile follows a dynamic approach to software development.
3. It is an interactive and team based method that aims to deliver an application in a short span of
time.
4. In agile methodology, tasks are categorised into phases and are 'time-boxed', that is, time frames
are allotted to each task. Each time-boxed phrase is called a sprint. Each sprint has a defined
duration of time, say, a week, few days or month.
A detailed description of how the agile model helps to overcome the shortcomings of the traditional
model.
• Agile is based on empirical process, which provides a control mechanism based on a defined set
of methods. Empirical method is meant for those processes that are not very well defined,
unpredictable or unrepeatable. Agile technique implements control through frequent inspection
and adaptation.
• It is a dynamic approach to software development. That is, this technique is quick in adapting to
changes as requested by the user.
• It has brief iterative life cycles, which reflects periodic changes, and thus integrating small change
cycle to the overall system development process.
• Involves communication with customers consistently, taking their feedback as input, during the
different iterative cycles.
1. Only the relevant information: Agile suggests that only the most necessary information should be
documented.Write only the customer documents your customers require. Document your decisions only if
there are alternatives and you need a reminder of what was behind those decisions.There is no need in
extra documents, your time can be spent on something much more useful. Prefer executable specifications
over the theoretical ideas, not grounded in reality. Try to minimize the overlapping. Do not repeat the
same information in a few different papers.
2. Get a tech writer : If you can afford it, get a special person to take care of your documentation. First,
you’ll know that there will always be someone in charge. Second, it will be done properly. Developers are
good in technical part, but they are way too often helpless when it comes to describing it. If you hire
someone with an engineering background, you’ll kill two birds with one stone.
3. Be specific : Keep in mind, that every project has its own requirements and specifics. You cannot
apply the document templates for one project while working with another one. Some fields might not
even exist in a project whilst some important ones are missing.In addition, the customers are different and
what works with one is simply not enough for the other. Let the customers decide on the content and
amount of your documentation. It will save you some extra work and nerves.
4. Keep it all in one place : Technical design documents have to be accessible and transparent. You need
to have them available for anyone who might be in need for them. So as not to have a mess, keep all your
papers in order and in one place.
UNIT-2
1. Discuss the different roles in Scrum?
1. Scrum Master
• A Scrum Master is a facilitator and Servant Leader who encourages and demands self-
organization from the development team.
• A Scrum Master enables close cooperation across all roles and functions, addresses resource
issue and disobedience of scrum practices.
• A Scrum Master protects the team from external and internal distractions.
• A Scrum Master removes impediments so the team can focus on the work at hand and follow
scrum practices.
• A Scrum Master is not typically a manager or lead, but he is an influential leader and coach who
does not do direct command and control.
2. Product Owner
• A Product Owner owns the Product backlog and writes user stories and acceptance criteria.
• A Product Owner is responsible for prioritizing the Product Backlog is prioritized and
decides the release date and the content.
• A Product Owner accepts or rejects product backlog item.
• A Product Owner has the power to cancel the Sprint, if he thinks the Sprint goal is
redundant.
• A Product Owner is the one who is responsible for the Return on Investment (ROI) of the
product.
3. Development team
• The Development Team builds the product that the Product Owner indicates: the application
or website, for example. The Team in Scrum is “cross-functional”
• The Development Team includes all the expertise necessary to deliver the potentially
shippable product each Sprint
• The Development Team is self-organizing, with a very high degree of autonomy and
accountability.
• The Development Team decides how many items to build in a Sprint, and how best to
accomplish that goal.
• The Development Team is a cross functional, small and self-organizing team which owns the
collective responsibility of developing, testing and releasing the Product increment.
• The Development Team may not appoint any team lead since decisions are taken
collectively by the team.
2. What is the difference between Sprint Planning Meeting and Sprint Retrospective Meeting?
Sprint Review
The sprint review meeting is intentionally kept very informal, typically with rules forbidding the use of
PowerPoint slides and allowing no more than two hours of preparation time for the meeting. A sprint
review meeting should not become a distraction or significant detour for the team; rather, it should be a
natural result of the sprint.
Participants in the sprint review typically include the Product Owner, the Scrum team, the ScrumMaster,
management, customers, and engineers from other projects.
During the sprint review the project is assessed against the sprint goal determined during the Sprint
planning meeting. Ideally the team has completed each product backlog item brought into the sprint, but it
is more important that they achieve the overall goal of the sprint.
Spirit Retrospective
The sprint retrospective meeting is time boxed to 3 hours. It is attended only by the team, the scrum
master and the product owner. The product owner is optional. Start the meeting by having all team
members answer two questions;
1) What went well during the sprint?
2) What could be improved in the next sprint?
a. The scrum master writes down the team’s answers in summary form.
b. The team prioritizes in which order it wants to talk about the potential improvements.
c. The scrum master is not in this meeting to provide answers, but to facilitate the team’s search for better
ways for the scrum process to work for it.
Actionable items that can be added to the next sprint should be devised as high-priority non functional
product backlog. Retrospectives that don’t result in change are sterile and frustrating.
3. How (parameters) to choose the number of resources required to your scrum team?
4. Differentiate between Scrum and Kanban.
Scrum Kanban
• Between each sprint, a scrum board is reset • A Kanban board is persistent. It limits
the number of items in workflow state
• It cannot add items to ongoing iteration • It can add items whenever capacity is
available
Extreme Programming technique is very helpful when there is constantly changing demands or
requirements from the customers or when they are not sure about the functionality of the system. It
advocates frequent "releases" of the product in short development cycles, which inherently improves the
productivity of the system and also introduces a checkpoint where any customer requirements can be
easily implemented. The XP develops software keeping customer in the target.
Business requirements are gathered in terms of stories. All those stories are stored in a place called the
parking lot.
In this type of methodology, releases are based on the shorter cycles called Iterations with span of 14 days
time period. Each iteration includes phases like coding, unit testing and system testing where at each
phase some minor or major functionality will be built in the application.
There are 6 phases available in Agile XP method, and those are explained as follows:
Planning
Analysis
Design
Execution
• Coding
• Unit Testing
• Execution of Manual test scenarios
• Defect Report generation
• Conversion of Manual to Automation regression test cases
• Mid Iteration review
• End of Iteration review
Wrapping
• Small Releases
• Regression Testing
• Demos and reviews
• Develop new stories based on the need
• Process Improvements based on end of iteration review comments
Closure
• Pilot Launch
• Training
• Production Launch
• SLA Guarantee assurance
• Review SOA strategy
• Production Supports
Crystal method is an agile software development approach that focuses primarily on people and their
interactions when working on a project rather than on processes and tools. Alistair believed that the
people’s skills and talents as well as the way they communicate has the biggest impact on the outcome of
the project.
• Teams can streamline their processes as their work and become a more optimised team
• Projects are unique and dynamic and require specific methods
Alistair Cockburn, credited as one of the original popularizers of agile, developed the Crystal method for
IBM in 1991. He decided to focus not on developing specific step-by-step development strategies that
would work across the board for teams involved in any project, but instead to develop guidelines for team
collaboration and communication. The traits of Cockburn’s Crystal method were therefore all based
around the team itself:
• Human-powered (meaning the project should be flexible and tailored to the needs and the
preferred work modalities of people involved)
• Adaptive (meaning the approach uses no fixed tools but can be altered to meet the team’s specific
needs)
• Ultra-light (meaning this methodology does not require much documentation or reporting)
One of the things that Cockburn discovered is that the project properties changed depending on the
number of the people involved in the project and the level of criticality of the project at hand.While the
smaller team can handle and build the product without a lot of status reporting and paperwork, the
number of “communication artifacts” rises with bigger teams who are working on large-scale projects.
In other words, the more people you have on the team, the more critical the project is and the more
complex the approach needs to be.To make this categorization easy to understand, Cockburn named the
methodology Crystal and categorized it along two dimensions size and criticality that matching those of
minerals - color and hardness.Essentially, Cockburn developed these families to point out that each
project may require a particular set of policies, practices, and processes in order to meet project’s unique
characteristics. Cockburn tried to explain this by calling Crystal “a set of samples that you adjust to your
circumstances”.
Which approach will be most suitable for your projects depends on three dimensions:
• Team size
• Criticality
• What the priority of the project is
Generally, they are characterized by colors, according to the number of people involved in the project:
• Clear - for teams of 8 or fewer people
• Yellow - for teams of 10-20 people
• Orange - for teams of 20-50 people
• Red - for teams of 50-100 people
1. Human-powered
This means that people involved in the project are vital and that the processes should be adapted to meet
people’s needs. It also emphasizes that people are capable of organizing themselves and that they can
become more organized and competent as the processes develop.
2. Adaptive
Crystal is a stretch to fit methodology meaning that processes and tools are not fixed, but have to be
adjusted to meet the requirements of the team and the project at hand.
3. Ultra-light
Crystal doesn’t involve too much documentation, management and reporting. It keeps things light by
focusing on transparent workflow between the team and the client and by practicing open communication
between team members.
• Frequent delivery - it allows you to frequently deliver working, tested code to real users. In this way,
you don’t have to face the fact that you have invested your energy and time into the product that nobody
wants to buy.
• Reflective improvement - no matter how bad or good the product is, there are always areas where the
product can be improved. Also, there are always new techniques and methods your team can implement
to improve their future practices
• Osmotic communication - with the team who works co-located, information flows around the team. That
allows them to pick up valuable information without even being directly involved in the discussion of the
certain matter.This gradual absorption of ideas is called osmotic communication. Cockburn believes that
this kind of work atmosphere can operate with very little structure.
• Personal Safety - the only way to build a healthy working atmosphere and a true team culture is by
practicing an open and honest communication. Team members should be able to speak without the fear,
no matter whether they are presenting a new idea or talking about a potential problem.
• Focus - each team member knows exactly what to work on which enables them to focus their attention
and avoid switching from one task to another. Also, this boosts team communication and helps the team
prioritize and work towards the same goals.
• Easy access to expert users - Crystal enables your team to maintain communication and get regular
feedback from real users.
• A technical environment with automated tests, configuration management, and frequent
integration - very specific tools for software teams where the emphasis is on continuous integration so
that the errors could be caught within minutes.
The fact that Crystal uses a focus on people and communication as its organizing principle I what
distinguishes it from other software development methods.
Unlike other agile methodologies, Crystal focuses on adjusting the techniques used in a project with the
aim to strengthen the process of team communication. Besides that, Crystal allows:
• Continuous integration
• Flexible and configurable processes
• Active user involvement
Keep in mind that Crystal is primarily created to remind you how to stay centered and focused on your
work during the project development.
DSDM was invented in 1994, when project managers using another agile framework, Rapid Application
Development (RAD), determined that the new iterative approach to software development needed more
governance and stricter guidelines.
DSDM Lifecycle
1. Feasibility Study:
It establishes the essential business necessities and constraints related to the applying to be designed then
assesses whether or not the application could be a viable candidate for the DSDM method.
2. Business Study:
It establishes the use and knowledge necessities that may permit the applying to supply business value;
additionally, it is the essential application design and identifies the maintainability necessities for the
applying.
5. Implementation:
It places the newest code increment (an “operationalized” prototype) into the operational surroundings. It
ought to be noted that:
LSD actually borrows its philosophy from the manufacturing industry, which originated the lean
development process as a way to optimize production and assembly lines to minimize waste and
maximize customer value. In fact, it was originally called the Toyota Production System, because
automaker Toyota invented this approach in the middle of the twentieth century as a way to streamline its
production of cars and eliminate wasted time and resources. (Any action that did not impact the
functionality of car being built and delivered was considered a waste under this system, and therefore
removed from the process.)
Eventually, other manufacturing organizations across many industries began using this system, and the
name later changed to Lean. The methodology was first applied to the creation of software in 2003 with
the publication of the now-famous book Lean Software Development.
1. Eliminate Waste
Waste is anything that does not contribute value to the final product and interferes with the aim of
delivering value to customers. This includes, but is not limited to, inefficient processes or project churn,
crossing boundaries/departments, and features that won’t be used. Eliminating waste is the guiding
principle in lean software development.
2. Build Quality In
Building quality into a product means preventing defects by seeking them out within your verification
process rather than using post-implementation integration and testing to detect them after the fact. Not
building legacy code that lacks automated unit and acceptance tests is crucial to continuous integration
and nested synchronization.
3. Create Knowledge
While planning is useful, it is learning that is essential. Encourage developers to build and record the
knowledge necessary to develop a project. This should comprehensively include all requirements,
architecture, and technologies, which are seldom known or understood completely at project startup.
Creating knowledge and recording it over the course of the project ensures that the final product is in line
with customer expectations.
4. Defer Commitment
Reject the idea that projects should begin with a set plan for the specification. Planning is not the same as
committing. Deferring commitment is positive procrastination as more information is available at the
latest possible moment before an irreversible decision needs to be made.
5. Deliver Fast
Delivering fast puts the product in front of the customer quickly so they can provide feedback, allowing
companies to take a more experimental approach to product/feature development. Fast delivery is
accomplished using short iterations that produce software in small increments by focusing on a limited
number of the highest priority requirements.
6. Respect People
Respecting people means giving the development team’s most important resource — its members —
freedom to find the best way to accomplish a task, recognizing their efforts, and standing by them when
those efforts are unsuccessful. Engaged team members are a company’s most sustainable competitive
advantage.
• Heavily depends on the team involved, making it not as scalable as other frameworks
• Depends on strong documentation, and failure to do so can result in development mistakes
Should You Use Lean Software Development ?
Many organizations have found the LSD methodology to be an excellent approach to software
development because of its streamlining of the process and forcing the team to ruthlessly cut away any
activity that doesn’t directly affect the final product. But an organization must have an outstanding
development team, and trust that team implicitly, for this approach to be successful.
Sashimi is a Japanese word that means a pierced body. Basically, it is a Japanese dish that consists of
fresh meat or fish, sliced into thin pieces. Each piece is similar in taste when compared with the other
pieces.
Sashimi in scrum methodology means every phase of the software development cycle in a sprint which
includes requirement analysis, planning & design, development, testing, documentation is complete or
not and the product is ready to be displayed etc.
The sashimi software process is quite similar to the waterfall, except that the phases overlap to show that
requirements can't be completed until architecture is at least partially explored, and architecture can't be
completed until module design is at least partially explored, and so on.
The sashimi process is most appropriate for medium-sized projects for which the communication between
phases can be handled in an improvised manner. For larger projects, high-risk projects, or projects in
which few of the developers are experienced, a spiral approach may be better.
Phases in Scrum
1. Initiate
3. Implement
5. Release
UNIT-3
1. What are objectives of knowledge management?
Knowledge management is the process of gathering, developing, sharing, and the efficient handling
of information within an organization. Knowledge management is often associated with information
technology but it is an integral part of many organizations.
In one-way or another, to improve efficiency and increase productivity, many use knowledge
management. The purpose of knowledge management is to ensure that the right information is available
to the right people.
Knowledge management, also referred to as KM, ensures that organizations can learn and retrieve their
knowledge assets when they are needed. Organizations use KM to remain beneficial and maintain a
competitive advantage.
Being able to access information whenever it is needed, keeps employees informed, and can encourage
innovation. Maintaining a knowledge base can give you access to data that may be useful for identifying
new product opportunities.
KM is a learning enabler for most and is often part of an organization’s overall strategy.
Knowledge management is the systematic management of an organization's knowledge assets for the
purpose of creating value and meeting tactical & strategic requirements; it consists of the initiatives,
processes, strategies, and systems that sustain and enhance the storage, assessment, sharing, refinement,
and creation of knowledge.
• Organizational Memory Management: the necessary conditions to identify all the knowledge the
company has accumulated and where it stores it.
• Company organizes data logically so that it can transform it into useful information to use
for knowledge development.
• Make information flow properly and be accessible to all, with the help of technology, allowing
your business to find results.
• Promote the generation of new knowledge from the dissemination of this information, which leads
to the achievement of competitive advantages.
• Increase organizational competitiveness by using this knowledge in a strategic way that unfolds in
tactical objectives and operational actions.
1. Organizational Culture
2. Organizational Structure
3. Communities of Practice
5. Common Knowledge
Organizational Culture
• Organizational culture reflects the norms and beliefs that guide the behavior of the organization’s
members
• Attributes of an enabling organizational culture include understanding of the value of KM
practices, management support for KM at all levels, incentives that reward knowledge sharing,
and encouragement of interaction for the creation and sharing of knowledge
Organizational Structure
• Hierarchical structure of the organization affects the people with whom individuals frequently
interact, and to or from whom they are consequently likely to transfer knowledge
• Organizational structures can facilitate KM through communities of practice
• Organization structures can facilitate KM through specialized structures and roles that specifically
support KM.
• The IT infrastructure includes data processing, storage, and communication technologies and
systems
• One way of systematically viewing the IT infrastructure is to consider the capabilities it provides
in four important aspects:
• Reach
• Depth
• Richness
• Aggregation
Common Knowledge
Physical Environment
• Physical environment includes the design of buildings and the separation between them; the
location, size, and type of offices; the type, number, and nature of meeting rooms
• A 1998 study found that most employees thought they gained most of their knowledge related to
work from informal conversations around water coolers or over meals instead of formal training
or manuals
3. Distinguish between KM foundation and KM solutions.
KM Solutions
The ways in which specific aspects of KM (discovery , capture , sharing and application of
knowledge)can be accomplished . KM solutions include KM systems and KM processes.
1. Knowledge Management Systems
• Knowledge management systems are the integration of technologies and mechanisms that are
developed to support KM processes
• KM systems utilize a variety of KM mechanisms and technologies to support the KM processes
1. Knowledge Management Discovery Systems
2. Knowledge Management Capture Systems
3. Knowledge Management Sharing Systems
4. Knowledge Application Systems
KM Fountations
The broad organizational aspects that support KM in the short and long term. They include KM
Infrastructures , KM mechanisms and KM Technologies.
Knowledge Development
Knowledge is developed through learning, innovation, creativity, and importation from outside.
Knowledge Acquisition
Knowledge Refinement
Knowledge Leveraging
Knowledge is applied or otherwise leveraged. By using (applying) knowledge, it becomes the basis
for further learning and innovation.
5. Briefly explain the four kinds of classification for knowledge management systems based on the
process supported. How each KM system can facilitate knowledge management?
OR
What are the four basic knowledge management processes and their subprocesses? Describe briefly
these processes.
6. Give an example of one knowledge management mechanism that could be used to facilitate each
of the four knowledge management processes.
Knowledge Management Mechanisms are organizational or structural means used to promote
knowledge management. They enable knowledge management systems, and they are themselves
supported by the knowledge management infrastructure. Knowledge Management Mechanisms may (or
may not) utilize technology, but they do involve some kind of organizational arrangement or social or
structural means of facilitating knowledge management.
• learning by doing,
• on-the-job training,
• learning by observation, and
• face-to-face meetings.
More long-term knowledge management mechanisms include the hiring of a Chief Knowledge Officer,
cooperative projects across departments, traditional hierarchical relationships, organisational policies,
standards, initiation process for new employees, and employee rotation across departments.
7. Write notes on (i) Role of Story-Cards (ii) Story-Card Maturity Model (SMM).
(i) Role of Story-Cards
(ii) Story-Card Maturity Model (SMM).
The Story card Maturity Model (SMM), requirements improvement framework offers many advantages.
The SMM includes an assessment method that guides the user to understand current story cards based
requirements engineering process. The rationale for building the SMM is as:
• To define a generic process model for Story cards based requirements engineering process
improvement that is suitable for RE at agile software development environments.
• To design and implement an automated tool that support to apply the proposed model in order to help
facilitate process improvement.
• Contains guidelines for many story cards related requirements engineering activities
• Is designed to be tailored to focus on specific process areas
• Goal focused
Earl after a five year study on strategies of knowledge management categorised knowledge management
into seven types which are called as Earl’s Seven Schools. These schools are inturn put into three groups.
Now we will see each of these groups and the types that come under these groups as categorised by Earl.
Technocratic:
Earl termed this group technocratic as the schools that come under this group rely on Information
Technology to help the knowledge workers. And a total of three schools come under this group:
Systems; Cartographic; and Engineering.
1. Systems: According to the Systems school, we have to store the knowledge of an expert which can in
turn be accessed by other experts or qualified individuals who understand that stored knowledge. This is
because it saves time and resources for everyone. When a problem arises, the staff instead of searching
for the possible solution and wasting huge amount of time and resources can access the stored knowledge
in which the solutions of many problems has been stored by the experts or by individuals through
experience and assist their customers who have faced a similar problem and assist them (customers) very
quickly without wasting much time and this inturn leads to customer satisfaction.
2. Cartographic: The main aim of this school is to be sure that an expert is always available for the staff
when required. When a member of staff is unable to find a possible solution in the database an expert
should be readily available in order to give advice on how that problem can be solved.The main
advantage of this school is that making an expert available is always helpful in case an individual looses
his track in solving an issue.
3. Engineering: This school has two sub categories’ on which the attention has been drawn which are,
“more knowledge is present in management than that exists in business process” and “a way to enhance a
business process is to provide the staff with knowledge that is suitable to their work”.
Economic: This is the second group classified by Earl which consists of only one school, which is the
4. Commercial School: This school states that an organisation must concentrate on increasing the
revenue by protecting an organisation’s knowledge and also exploiting it incase. The main aim as stated
by this school is to increase the revenue of the organisation in what ever way possible and useful for the
organisation in simple terms.
Behavioral : Earl termed this group as Behavioral as according to him technology is not the only force
that drives an organisation but also KM.
5. Organisational School: This school supports the idea of sharing the knowledge when one is unable to
find a straight possible solution to a problem. According to a research done by Xerox, much of the
knowledge exists in the minds of the employees than in the database that is available for access with the
solution to certain problems
6. Spatial School: This school states that space should not be a problem for workers who want to share
knowledge i.e., restricting the staff to meet in only one room or in only one building.
7. Strategic School: According to this school, knowledge should be considered the bigger picture after
achieving success.
UNIT-4
In traditional requirements elicitation methods it is difficult to make any changes in the latter phases and
changing requirements at a later phase have a major impact in terms of budget and customer satisfaction.
It can be expensive to fix the errors at the later stages as more cost and time will be involved resulting in
the delay of the project. In traditional models like the Waterfall model, Spiral model, Incremental Build
Model, V-Model in all of them requirements are applied at the initial stages only because these models
are not much flexible to acquire the changes in requirements at later stages as they are based on the
sequential flow of activities.
To overcome these limitations agile methodology came into existence which is incremental and iterative
approach, flexible in acquiring the changes even late in the development cycle. The agile methods
overcame the limitations of the traditional models like Waterfall model, Spiral model in the way of
accepting the changes in the requirements at later stages of development because they are based on
“incremental” and “iterative “approach (Lucassen et al., 2016). Every phase of the software development
life cycle is divided into iterations and each iteration is revisited again and again to steer the process in
another direction if some changes are to be done. The approach of this “inspectand-adapt” greatly
decreases the development cost and time to the organization (Lesmana et al., 2016). Our literature review
identified few interesting work .
UNIT-5
1. What is Agile Testing and how does it differ from the traditional waterfall or the V-model?
2. What are the main differences between Quality Assurance, Quality Control, and Software
Testing?
3. What are the differences between a Test Plan and a Use Case?
Requirements Functional testing is carried out This kind of testing is carried out
using the functional specification. by performance specifications
Manual testing Functional testing is easy to It's very hard to perform non-
execute by manual testing. functional testing manually.
Parameters Functional Non-functional testing
Triage is a medical word. Triage is the process of quickly examining patients who are taken to a hospital
in order to decide which ones are the most seriously ill and must be treated first. Patients will be
categorized based on the severity of the illness and then the doctors treat the patients who are seriously ill
in the priority basis. Patients who have non-critical diseases are considered as low priority patients and
were treated after the patients who are seriously ill.
In Software Testing, we use the word Triage with the combination of Bug/Defect like Bug Triage or
Defect Triage. Here we apply the same concept to bugs found during testing phase. It is to decide the
priority of the bugs based on their severity, risk and frequency of re occurrence etc.
6. Explain what is Test Metric in software testing and what information does it contains?
The Software testing metrics provide quantitative approach to measure the quality and effectiveness of
the software development and testing process. It provides the visibility into the readiness of the product
and gives clear measurement of its quality and completeness. Moreover, with the assistance of testing
metrics the team of testers can keep a track of the software quality at every stage in the software
development cycle. One can also get information to control and reduce the number of errors through
testing metrics. Some examples of test metrics are:
• Without measurement, it is impossible to tell whether the process implemented in the software
application is improving or not.
• With the help of metrics one can easily take decisions about the activities that will be executed in
the next phase of software development or testing, such as estimating the cost and schedule of the
future projects.
• Metrics helps in understanding the type of improvements required in a project and assist with
decisions regarding process or technology changes.
• Analysis Phase -In this phase the metrics, which have been generated are identified, which are
then defined by the tester.
• Communicate Phase- Here, the need of metrics is explained to the stakeholders. Moreover, the
testing team is educated about the data points required for generating Metrics.
• Evaluation Phase- The data used for generating the Metrics is captured and verified. It is based
on these captured data that the metrics are calculated.
• Reporting Phase- A metrics report is developed with all the required information, which includes
graphs and pie charts and is distributed to stakeholder. After the evaluation of this report, a
feedback is provided by stakeholders for any intended improvements.
7. What are the leading testing techniques for QA? And what is their purpose?
Quality Assurance (QA) is defined as an activity to ensure that an organization is providing the best
possible product or service to customers. QA focuses on improving the processes to deliver Quality
Products to the customer. An organization has to ensure, that processes are efficient and effective as per
the quality standards defined for software products. Quality Assurance is popularly known as QA Testing
Quality assurance has a defined cycle called PDCA cycle or Deming cycle. The phases of this cycle are:
• Plan
• Do
• Check
• Act
These above steps are repeated to ensure that processes followed in the organization are evaluated and
improved on a periodic basis. Let's look into the above steps in detail -
• Plan - Organization should plan and establish the process related objectives and determine the
processes that are required to deliver a high-Quality end product.
• Do - Development and testing of Processes and also "do" changes in the processes
• Check - Monitoring of processes, modify the processes, and check whether it meets the
predetermined objectives
• Act - Implement actions that are necessary to achieve improvements in the processes
An organization must use Quality Assurance to ensure that the product is designed and implemented with
correct procedures. This helps reduce problems and errors, in the final product.
There are many tools and techniques that form the basis of the key quality assurance principles. Some of
these include...
• Cost-Benefit Analysis
• Cost of Quality (COQ)
• Control Charts
• Benchmarking
• Design of Experiments (DOE)
• Statistical Sampling
• Flow Charting
• Quality Management Methodologies (i.e. Six Sigma, CMMI, etc)
• Cause and Effect Diagrams (i.e. Fishbone Diagram)
• Histogram
• Pareto Chart
• Run Chart
• Scatter Diagram
• Inspection
A Software Bug is a failure or flaw in a program that produces undesired or incorrect results. It’s an error
that prevents the application from functioning as it should. There are many reasons for Software Bugs.
The most common reason is human mistakes in software design and coding. Once you know the causes
for Software Defects it will be easier for you to take corrective actions to minimize these defects.
Reasons For Software Bugs
1) Miscommunication or No Communication
The success of any software application depends on communication between stakeholders, development
and testing teams. Unclear requirements and misinterpretation of requirements are two major factors
causing defects in software. Also, defects are introduced in the development stage if exact requirements
are not communicated properly to development teams.
2) Software Complexity
The complexity of current software applications can be difficult for anyone without experience in
modern-day software development.The use of object-oriented techniques can complicate instead of
simplifying a project unless it is well-engineered.
3) Programming Errors
Programmers, like anyone else, can make programming mistakes. Not all developers are domain experts.
Inexperienced programmers or programmers without proper domain knowledge can introduce simple
mistakes while coding.
Lack of simple coding practices, unit testing, debugging are some of the common reasons why these
issues get introduced at the development stage.
4) Changing Requirements
The customer may not understand the effects of changes or may understand and request them anyway –
redesign, rescheduling of engineers, effects on other projects, work already completed that may have to
be redone or thrown out, hardware requirements that may be affected, etc.If there are many minor
changes or any major changes, known and unknown dependencies among parts of the project are likely to
interact and cause problems, and the complexity of keeping track of changes may result in errors.
5) Time Pressures
Scheduling of software projects is difficult at best, often requiring a lot of guesswork. When deadlines
loom and the crunch comes, mistakes will be made.
PERT software testing estimation technique is based on statistical methods in which each testing task is
broken down into sub-tasks and then three types of estimation are done on each sub-tasks.
The formula used by this technique is −
Test Estimate = (O + (4 × M) + E)/6
Where,
O = Optimistic estimate (best case scenario in which nothing goes wrong and all conditions are optimal).
M = Most likely estimate (most likely duration and there may be some problem but most of the things
will go right).
L = Pessimistic estimate (worst case scenario where everything goes wrong).
Standard Deviation for the technique is calculated as −
Standard Deviation (SD) = (E − O)/6
UCP Method is based on the use cases where we calculate the unadjusted actor weights and unadjusted
use case weights to determine the software testing estimation.
Use-case is a document which specifies different users, systems or other stakeholders interacting with
the concerned application. They are named as “Actors”. The interactions accomplish some defined goals
protecting the interest of all stakeholders through different behavior or flow termed as scenarios.
Step 1 − Count the no. of actors. Actors include positive, negative and exceptional.
Step 2 − Calculate unadjusted actor weights as
Unadjusted Actor Weights = Total no. of Actors
Step 3 − Count the number of use-cases.
Step 4 − Calculate unadjusted use-case weights as
Unadjusted Use-Case Weights = Total no. of Use-Cases
Step 5 − Calculate unadjusted use-case points as
Unadjusted Use-Case Points = (Unadjusted Actor Weights + Unadjusted Use-Case Weights)
Step 6 − Determine the technical/environmental factor (TEF). If unavailable, take it as 0.50.
Step 7 − Calculate adjusted use-case point as
Adjusted Use-Case Point = Unadjusted Use-Case Points × [0.65 + (0.01 × TEF]
Step 8 − Calculate total effort as
Total Effort = Adjusted Use-Case Point × 2
Step 1 − Create WBS by breaking down the test project into small pieces.
Step 2 − Divide modules into sub-modules.
Step 3 Divide sub-modules further into functionalities.
Step 4 − Divide functionalities into sub-functionalities.
Step 5 − Review all the testing requirements to make sure they are added in WBS.
Step 6 − Figure out the number of tasks your team needs to complete.
Step 7 − Estimate the effort for each task.
Step 8 − Estimate the duration of each task.
Wideband Delphi Technique
In Wideband Delphi Method, WBS is distributed to a team comprising of 3-7 members for re-estimating
the tasks. The final estimate is the result of the summarized estimates based on the team consensus.
This method speaks more on experience rather than any statistical formula. This method was popularized
by Barry Boehm to emphasize on the group iteration to reach a consensus where the team visualized
different aspects of the problems while estimating the test effort.
FPs indicate the functionality of software application from the user's perspective and is used as a
technique to estimate the size of a software project.
In testing, estimation is based on requirement specification document, or on a previously created
prototype of the application. To calculate FP for a project, some major components are required. They
are −
• Unadjusted Data Function Points − i) Internal Files, ii) External Interfaces
• Unadjusted Transaction Function Points − i) User Inputs, ii) User Outputs & iii) User Inquiries
• Capers Jones basic formula −
Number of Test Cases = (Number of Function Points) × 1.2
• Total Actual Effort (TAE) −
(Number of Test cases) × (Percentage of Development Effort /100)
Percentage Distribution
In this technique, all the phases of Software Development Life Cycle (SDLC) are assigned effort in %.
This can be based on past data from similar projects. For example −
Phase % of Effort
Project Management 7%
Requirements 9%
Design 16%
Coding 26%
Next, % of effort for testing (all test phases) is further distributed for all Testing Phases −
Component Testing 16
Independent Testing 84
Total 100
Integration Testing 24
System Testing 52
Acceptance Testing 24
Total 100
Total 100
This technique is based on analogies and experts. The technique assumes that you already tested similar
applications in previous projects and collected metrics from those projects. You also collected metrics
from previous tests. Take inputs from subject matter experts who know the application (as well as
testing) very well and use the metrics you have collected and arrive at the testing effort.