-
Agile software development - Annotated
-
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more. -
- Customer satisfaction by rapid delivery of useful software
- Welcome changing requirements, even late in development.
- Working software is delivered frequently (weeks rather than months)
- Working software is the principal measure of progress
- Sustainable development, able to maintain a constant pace
- Close, daily cooperation between businesspeople and developers
- Face-to-face conversation is the best form of communication (co-location)
- Projects are built around motivated individuals, who should be trusted
- Continuous attention to technical excellence and good design
- Simplicity
- Self-organizing teams
- Regular adaptation to changing circumstances
Twelve principles underlie the Agile Manifesto, including:[6]
- Agile methods break tasks into small increments with minimal planning
-
-
Agile Software Development: A gentle introduction. - Annotated
- When asking questions
is difficult
or slow the knowledge gap grows. The system will get
built, but it won't solve the problem like one guided by an expert on a
daily
basis. - the way a team works together is far more
important than any process. - Perhaps
the
biggest problem with software development is changing requirements.
Agile processes accept the reality of change versus the hunt for
complete, rigid specifications. There are domains where requirements
can't change, but most projects have changing requirements. For
most projects readily accepting changes can actually cost less than
ensuring
requirements will never change. - the way a team works together is far more
important than any process. While a new process can easily improve team
productivity by a
fraction, enabling your team to work effectively as a cohesive unit can
improve
productivity by several times. - The
most brilliant programmers alive working competitively in an ego-rich
environment can’t get as much done as ordinary programmers working
cooperatively as a self disciplined and self-organizing team. You need
a process where
team empowerment and collaboration thrive to reach your full potential. -
-
-
Examining the Agile Manifesto - Annotated
- The values of
the Agile Manifesto are: - Individuals and
interactions over processes
and tools. - the most important factors that you need to consider are the
people and how they work together because if you don’t get that right the best
tools and processes won’t be of any use.
Tools and processes are important, don’t get me wrong, it’s just that
they’re not as important as working together effectively.
-
-
The Criteria for Determining Whether a Team is Agile - Annotated
- there is no official
definition of what Agile is, and many people want to use
the values and
principles of the
Agile Manifesto as the definition. -
When I "evaluate" a
project team, here's what I look for: - Is the team
producing value to their
stakeholders on a
regular basis? -
- Is the team is doing
developer regression
testing, or better yet taking
a test-driven approach to
development? -
- Are stakeholders
active participants in
development? -
- Self-organization means that
the team members themselves
are planning and estimating
their own work (granted,
perhaps with some
facilitation from the team
lead - Is the team is
working in a highly
collaborative,
self-organizing manner?
-
-
Disciplined Agile Software Development: Definition - Annotated
-
agile software development is:
<!-- Google Ad -->
<script type="text/javascript"><!--
google_ad_client = "pub-1563172974921293";
google_alternate_ad_url = "http://www.ambysoft.com/redirector.html";
google_ad_width = 120;
google_ad_height = 90;
google_ad_format = "120x90_0ads_al_s";
google_ad_channel ="9817671336";
google_color_border = "999966";
google_color_bg = "FFFCEA";
google_color_link = "660033";
google_color_url = "008000";
google_color_text = "000000";
//--></script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script> <!-- End Google Ad -->
An iterative and incremental (evolutionary)
approach to software development
which is performed in a highly collaborative manner
by self-organizing teams within an effective
governance framework
with
"just enough"
ceremony
that produces high quality solutions
in a cost effective and timely manner
which meets the
changing needs of its stakeholders.
-
-
Why Agile Software Development Techniques Work: Improved Feedback - Annotated
- One of
several reasons
why agile techniques are so effective, in my opinion, is that they
reduce the feedback cycle between the generation of an idea (perhaps a
requirement or a design strategy) and the realization of that idea.
This not only minimizes the risk of misunderstanding, it also reduces
the cost of addressing any mistakes. In this article I explore
this idea in detail.
-
-
- part of the answer is to move to a more
agile process with more frequent client involvement, but it's not
immediately clear how this would work for the business. Would it
mean the end of fixed-price contracts? Would that be a bad thing?
What are the alternatives? Is there a way to recognize which
projects are likely to get in trouble before the contracts are
signed? Do all your projects need to use the same development
process? - literature research on
approaches to managing agile projects in a contract development
shop, and develop a set of recommendations for your management - you could argue that adopting an agile
development approach would help Web21 to be more successful with the
type of projects that have been causing problems - specifically,
those for which requirements are hard to nail down up
front - you could argue that Web21 should have a
process for recognizing which projects are likely to cause trouble
so you can avoid them in the future - offer a well-reasoned set of arguments leading to a
conclusion that recommends specific actions. - there are no
silver bullets in software development, so you will need to be
realistic about what they should expect by improving their process
and find sources that show not only the promises but the limitations
of your recommended approach.
-
Posted from Diigo. The rest of my favorite links are here.