0% found this document useful (0 votes)
22 views10 pages

Se 10

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views10 pages

Se 10

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 10

SOFTWARE

ENGINEERING
UNIT 2
LEARNING
How does agile software development Support
learning process
 Constructivism is a learning theory that examines the nature of learning processes.
A central tenet of the constructivist approach is that learners construct new
knowledge by rearranging and refining their existing knowledge. More
specifically, according to the constructivist approach, new knowledge is
constructed gradually, based on the learner’s existing mental structures. Mental
structures are developed in steps, each elaborating on preceding ones, though
there may of course be regressions and blind alleys.
 This process is referred to by Leron and Hazzan (1997) as ‘‘learning by
successive refinement’’ and it is closely related to the Piagetian mechanisms of
assimilation and accommodation.
 The term successive refinement itself is borrowed from computer science, where it refers
to a methodology that guides a gradual elaboration of complex programs (Dijkstra
1972). This methodology is based on the assumption that successive refinement is an
especially effective way for the human mind, with its particular strengths and
limitations, to deal with complexity.
 Since software development is a complex process (Hamlet and May bee 2001), methods
that support learning processes should be provided to all software projects’ stakeholders
team members, customers, and management.
 According to the constructivist perspective, these tools should support a gradual learning
process, through which the project stakeholders improve their understanding regarding
the development process and product.
 These means should on the one hand lead to improved understanding, and on the other
hand enable mistake corrections in an easy and inexpensive way.
 The fact that a software development method provides these means indicates that it
legitimates learning processes and misconception correction.
 In what follows we explain how agile software development
supports the gradual construction of knowledge related to the
development of software systems. The discussion is based on the
practice of short iterations.
 Itis shown how short iterations lead to improved understanding of
the developed product by the customer and team members, and
consequently, they are able to carry out the software development
task more confidently.
The Role of Short Releases and Iterations in
Learning Processes
 One of the main practices of agile software development processes is short releases
and iterations. An iteration of an agile software development process includes all
the phases and activities involved in software development processes; they are
applied, however, only on a portion of the developed software product.
 The part on which an iteration focuses is determined by the customer, who
prioritizes the development tasks according to his or her preferences.
 In the context of this chapter we highlight the idea that the fact that the software is
developed in short iterations and releases guides the customer, as well as the team
members, in a gradual process of knowledge construction with respect to the
developed software.
 It is a known fact that customers face difficulties in determining in advance all of the
required features of the software. Still, some software developers request customers to
define their software requirements in detail at the beginning of the development process.
 Agile software development, however, takes a different approach: iteration and release
Business Days which include planning and reflective sessions are conducted frequently
in accordance with the practice of short iterations and releases.
 These planning sessions, and the reflective processes that accompany them, provide the
customers with the opportunity to rethink, refine, and improve their understanding of the
software they require.
 Consequently, customers are able to define and communicate their requirements to the
software team members in a more precise and clear manner. In addition, in each short
iteration and release the team members get feedback with respect to their understating so
far of the customer’s requirements. If they misunderstand the requirements, the customer
can clarify his or her intentions; if they do not understand a specific customer request,
they have the opportunity to clarify the customer’s intention in a face-to-face interaction.
Software Intangibility and Process
Transparency
 Since software is an intangible product, it requires a different development
process in general, and a different approach towards the concept of software
quality in particular, than do tangible products.
 . In other words, when dealing with an intangible object, how can we know
the exact development stage the process has reached, what has been
accomplished by the teammates so far, what units or modules have already
been tested, whether refactoring has been carried out, and so on
 Whole team. This concept implies that all team members sit together in one
space, including role holders that traditionally belong to separate teams
(e.g., testers and designers). In agile development environments, the walls
serve as a means of communication, constituting an informative workspace.
 Short releases. The actual detailed plan of the short releases and iterations is
carried out during a planning session, in which all relevant parties participate|
customer, team members, management representatives, and so on. This
activity, which usually takes a full day, includes a presentation of what was
developed in the previous iteration, along with any relevant measures taken,
and the planning for the next iteration. At the end of the day, a balanced
workload is ensured among all team members.
 Time estimations. In agile software development, the teammate who is in
charge of a specific development task also estimates the time needed for its
development. This increases the teammate’s responsibility to perform well,
and also enhances process transparency. The message conveyed is that all
teammates know what each developer has committed to in terms of time
estimations.
 Measures. Measures are an essential element of agile software development. With
respect to the discussion in this chapter, this means that visible measures are used to
increase the transparency of the development process.
 Customer involvement. In agile software development, all team members have access
to the customer during the entire development process. This is particularly true during
the planning game, in which all team members communicate with the customer, as
mentioned earlier. This direct communication channel enhances both process
transparency and the chances that the software requirements are communicated
correctly.
 Testing. Testing is an integral part of an agile software development process; it
ensures a more transparent process, because it clarifies who is in charge of the testing
of each developed unit.
 Pair programming. Pair programming implies that all team
members become familiar with all parts of the software,
and thus process transparency is increased.

You might also like