sansoftech Services
Sunday, 15 July 2018
Sunday, 22 January 2017
Importance and Benefits of Agile Scrum methodology in Software Development
Agile is by no means critical of development
methodologies developed in the 1970s and 1980s in response to the chaotic and
unplanned approaches often used in the early days of software. This fast
delivery approach provided a couple of important benefits. First, it enabled
users to get some of the business benefits of the new software faster. Second,
it enabled the software team to get rapid feedback on the software's scope and
direction.
Agile software
development refers to a group of software development methodologies based on
iterative development, where requirements and solutions evolve through
collaboration between self-organizing cross-functional teams. Agile methods or
Agile processes generally promote a disciplined project management process that
encourages frequent inspection and adaptation, a leadership philosophy that
encourages teamwork, self-organization and accountability, a set of engineering
best practices intended to allow for rapid delivery of high-quality software,
and a business approach that aligns development with customer needs and company
goals. Agile development refers to any development
process that is aligned with the concepts of the Agile Manifesto. The Manifesto
was developed by a group fourteen leading figures in the software industry, and
reflects their experience of what approaches do and do not work for software
development.
A very popular methodology under Agile is Scrum which is a
subset of Agile. It is a lightweight process framework for agile development,
and the most widely-used one. A “process framework” is a particular set of
practices that must be followed in order for a process to be consistent with
the framework. “Lightweight” means that the overhead of the process is kept as
small as possible, to maximize the amount of productive time available for
getting useful work done.
Scrum is a most perplexing and paradoxical process for managing
complex projects. Scrum shows management how to guide a project along its
optimal course , which unfolds as the project proceeds. Under this there is an
iteration of development activities that occur one after the other. The output of
each iteration is the increment of product.
A time box is a maximum duration that has a
specific purpose to achieve, as well as duration, scope, and an agenda to meet
the desired purpose. In any ongoing project we need to know and understand the
goals of the overall project which should be achieved at the end. The project is broken down into sprints. Each
sprint should have one or more objectives which is finished in an iterative
manner one by one.
Scrum process is distinguished
from other agile processes by specific concepts and practices, divided into the
three categories of Roles, Artifacts, and Time Boxes. These and other terms
used in Scrum are defined below. Scrum is most often used to manage complex
software and product development, using iterative and incremental practices.
Scrum significantly increases productivity and reduces time to benefits
relative to classic “waterfall”
processes. Scrum processes enable organizations to adjust smoothly to
rapidly-changing requirements, and produce a product that meets evolving
business goals. An agile Scrum process benefits the organization by helping it
to :
- Increase the quality of the deliverables
- Cope better with change (and expect the changes)
- Provide better estimates while spending less time creating them
- Be more in control of the project schedule and state
· Customer Satisfaction by Rapid, Continuous Delivery of Useful Softwareà All customers and users gets satisfied when developers continuously deliver the value to them with usable software.
· People and Interactions are Emphasized Rather Than Process and Toolsà Agile is focused very heavily around people and the interactions between people, rather than process and tools.
· Continuous Attention to Technical Excellence and Good Designà When working agile the whole work is in shorter iterations and only build what is necessary to satisfy the requirements for that iteration and nothing else. This thing forces to keep designs simple which is very important as simplicity helps developers design testable and therefore more reliable systems. Developers understand, and choose from, many possible technical ways to satisfy business need and these are choices that reflect a craft that balances design, use, and support.
· Regular Adaptation to Changing Circumstances à Customer or business sponsor may change their mind about what is being built. This may be because developers have given them new ideas from the software they delivered in a previous iteration. It may be because the companies priorities have changed or a new regulatory change comes into force. Hence change is a reality of software development, a reality that your software process must reflect.
x
·
Benefits to Customer à Customers find
that the vendor is more responsive to development requests. High-value features
are developed and delivered more quickly with short cycles, than with the
longer cycles favored by classic “waterfall” processes.
·
Benefits to Vendors à Vendors reduce wastage by focusing development effort on
high-value features, and reduce time-to-market relative to waterfall processes
due to decreased overhead and increased efficiency. Improved customer satisfaction
translates to better customer retention and more positive customer references.
·
Benefits to Development Teams à Team members enjoy
development work, and like to see their work used and valued. Scrum benefits
Team members by reducing non-productive work (e.g., writing specifications or
other artifacts that no one uses), and giving them more time to do the work
they enjoy. Team members also know their work is valued, because requirements
are chosen to maximize value to customers.
·
Benefits to Product Managers à Product Managers, who typically fill the Product Owner role,
are responsible for making customers happy by ensuring that development work is
aligned with customer needs. Scrum makes this alignment easier by providing
frequent opportunities to re-prioritize work, to ensure maximum delivery of
value.
·
Benefits to Project Managers à Project Managers (and others) who fill the ScrumMaster role
find that planning and tracking are easier and more concrete, compared to
waterfall processes. The focus on task-level tracking, the use of Burndown
Charts to display daily progress, and the Daily Scrum meetings, all together
give the Project Manager tremendous awareness about the state of the project at
all times. This awareness is key to monitoring the project, and to catching and
addressing issues quickly.
·
Benefits to PMOs and C-Level Executives à Scrum provides
high visibility into the state of a development project, on a daily basis.
External stakeholders, such as C-Level executives and personnel in the Project
Management Office, can use this visibility to plan more affectively, and adjust
their strategies based on more hard information and less speculation.
Apart from the regular benefits Agile has certain
Advantages in the field of Software Development. They are given as below :
Advantages of Agile
Developers like to use the
best techniques for keeping the design under control without excessive work or
rework. Some of these techniques include :
1)
Refactoring : Refactoring is the process of improving the design of
existing code without changing its externally observable behavior. Refactoring
is most often done in the context of Test-Driven Development/Design where
extensive tests and simple design make it easy to refactor safely.
2)
Simple Design : Keeping the design simple and not repeating code helps
developers keep the code maintainable
3) Test Driven
Development
: Test-Driven Development is a way of driving the design of code by writing a
test which expresses what developers intend the code to do, making that test
pass, and continuously refactoring to keep the design as simple as possible.
It is evident from the given points above we can
say that Agile has a very special space and importance in Software Development
environment. There are several reasons behind it that Agile approach is very
rapid and it involves continuous integration at each and every step otherwise
the result/output can be different from expectation. Scrum is a popular project
management framework for agile projects which is being followed in most of the
Software Industries. Scrum methodology uses different measures and metrics
which applies automation and track the progress without going in manual
methods.
Author: Ms.Shweta Shree Sharma
Project Manager
IBM Technologies.
Thursday, 5 January 2017
Sunday, 24 July 2016
Knowledge
Management: An Introduction
Introduction
As the
foundation of today’s global economy moves away from natural resources to
intellectual assets, knowledge has increasingly become the only basis for a competitive
advantage that can be sustained. Rather than land, labor or capital it is
knowledge that is the key factor of production in many industries. In this
“third wave”*, the wealth system is increasingly based
on thinking, knowing and serving
customers in the way of providing them a
unique experience. Companies need superior knowledge to
leverage their traditional resources and capabilities in new and distinctive
ways to serve their customers. And they must do this more effectively compared
to competitors. As a result, Knowledge Management (KM) is being taken seriously
by companies across industries.
A major driver of KM in recent
times has been Information Technology (IT). But KM should not be equated with
IT. It is human beings who think, experiment and learn to create knowledge.
Much of the valuable knowledge that lies in the brains and minds of people can
be best shared through human interaction. IT is only an enabler, though in the words of famous journalist, Thomas A Stewart
,’it is one hell of an enabler’. Without IT, would be quite difficult to
replicate and distribute knowledge related documents in a cost effective way across
an organization that is largely geographically dispersed. As Stewart mentions[1],
“KM is knowing what we know, capturing and organizing it and using it to
produce returns. Nothing in that definition says anything about computers but
modern knowledge management is inconceivable without using them and in some
sense they created it.”
A final point
before we get into more details is that KM should not be looked upon as a new
mantra that can produce a magical impact on the functioning of an organization.
Organizations need to take a practical hard-nosed perspective when it comes to
managing knowledge. Like any other initiative, KM activities will build momentum,
only if they generate business value. That in turn is possible only if KM helps
the organization to cut costs by improving efficiency or to innovate and come
up with new products/services.
Background Note
Development and
sharing of knowledge started from the time God brought man to this world. For
millions of years, human beings had limited ways of passing knowledge to the
next generation. Apart from oral narratives, knowledge died with each dying
person and each dying generation. Fortunately, the pace of change was so slow
that it did not really matter. As Alvin Toffler mentions in his recent book,
“Revolutionary Wealth”, a major breakthrough occurred about 35,000 years ago
when someone drew the first pictograph on a cave wall to mark an important
event. The next turning point in knowledge sharing came when man learnt to
write, enabling future generations to access the knowledge of earlier
generations. The invention of the printing press, which allowed copies of a
document to be made and distributed cost-effectively, was another watershed
event. And in the last 10 years, IT in general and the Internet in particular
have given a new momentum to KM.
When we go through the
history books , we notice that knowledge as a subject, including knowing and
reasons for knowing, was documented by Western philosophers for millennia, and undoubtedly,
long before that. Since ancient times, Eastern philosophers too have emphasized
knowledge and understanding for conducting both spiritual and material life. The
Hindu religion, for example, has laid great emphasis on gaining knowledge. Along
with these efforts directed towards theoretical and abstract understanding of
knowledge, practical needs for expertise and operational understanding have also
been important since the battle for survival first started.
Managing practical knowledge
was implicit and unsystematic at first. Later, it became more systematic. The
craft-guilds and apprentice systems of the 13th century, were based
on systematic and pragmatic KM considerations. So also was the way owners of
family businesses passed on their commercial acumen to their children. Still,
the practical concerns for knowledge and the theoretical and abstract
perspectives were not integrated then.
There was little
change in the need for putting knowledge to practical use until the industrial
revolution changed the economic landscape in the 17th century. The
introduction of factories and the need for systematic specialization, gave an
impetus to knowledge. Still, KM was largely based on traditional approaches
such as a master training an apprentice. Meanwhile, schools and universities
mostly focused on providing education for the elite. Knowledge was approached
from a largely theoretical perspective with little effort directed at
leveraging it for making products and services needed by society.
All this has changed in
recent times. Today KM is increasingly being looked at from a business
perspective. Many organizations have put in place systems and processes for
managing knowledge to cut costs or differentiate their products/services. At
the same time, there is a growing belief that intellectual development plays a
key role in motivating workers and making them more productive in the
workplace. As Peter Senge has mentioned, people in general have a natural
desire to learn. Thus KM can be seen as one more step in the evolution of the
move towards personal and intellectual freedom that started with the age of
enlightenment and reason a few centuries go.
In the years to
come, KM will increasingly be an integral part of corporate strategy for the
following reasons:
·
KM
helps avoid unnecessary work duplication, expensive reinvention of the wheel and
repetition of mistakes. In other words, KM improves productivity.
·
KM softens
the blow when talented people leave the firms, by ensuring that most, if not
all of their knowledge is captured in the company’s systems and processes.
·
KM
improves the agility of the firm by helping it to understand and react to the
environment better.
·
KM can
compress delivery schedules and reduce cycle time, by reuse of components.
Understanding
KM
What exactly do we mean by KM? KM does not have the same meaning across
organizations. Some companies focus on knowledge sharing among individuals or
on building elaborate educational and learning capabilities. Others emphasize the
use of technology to locate, capture, manipulate and distribute knowledge. A
few others focus on knowledge utilization to improve the enterprise’s
operational and overall effectiveness. Still others pursue building and
exploiting Intellectual Capital (IC) to enhance the enterprise’s economic value
and generate sustainable competitive advantage. (See Schools of Knowledge
Management)
While there may be different approaches, in
a broad sense, KM is the systematic and explicit management of
knowledge-related activities, practices, programs, and policies within the
enterprise. The goal of KM is to
build and exploit knowledge assets effectively and gainfully. The key challenge
in KM is to leverage the knowledge of individuals for the benefit of the organization.
By systematically mapping, categorizing, and benchmarking organizational
knowledge, KM makes knowledge more accessible throughout an organization. A
systematic approach to managing knowledge also helps a company prioritize particular
strategic areas of knowledge. This enables the company to strengthen its core
capabilities and compete more effectively in the market place.
As Amrit Tiwana
says [2],
“KM enables the creation, distribution and exploitation of knowledge to create
and retain greater value from core businesses competencies. KM addresses
business problems particular to your business – whether it is creating and
delivering innovative products or services, managing and enhancing
relationships with customers, partners and suppliers or improving work
processes. The primary goal of KM in a business context is to facilitate
opportunistic application of fragmented knowledge through integration.”
[1] Stewart, Thomas A. “The Wealth of Knowledge:
Intellectual Capital and the Twenty-first Century Organization” Currency, 2003.
Subscribe to:
Posts (Atom)