Software Engineering Unit 1 - Part 2
Software Engineering Unit 1 - Part 2
ENVIRONMENTS
University Course Structure
▪ The course consists of two weekly lecture-hours and studio-hours.
▪ Lectures will be more theoretical and active based
▪ Provides a pedagogical opportunity as well as to enhance
communication.
▪ Students learn the topics in the lectures hours and also share their
experiences from the studio hours.
▪ Topics could be re-reviewed based on understanding.
▪ The software will be developed based on iteration
TEACHING AND LEARNING PRINCIPLE - 1
INSPIRE THE SOFTWARE
DEVELOPMENT APPROACH
▪ Suggests inspiring the software development approach that is taught instead
of lecturing about it.
▪ Software development approach that is taught instead of lecturing about it.
▪ Active learning
▪ Arrange computers for pair programming
▪ Include flipcharts, whiteboards.
▪ Elicit collaborative workspace
TEACHING AND LEARNING PRINCIPLE - II
LET THE LEARNERS EXPERIENCE THE
SOFTWARE DEVELOPMENT
APPROACH
▪ learners construct new knowledge by rearranging and refining
their existing knowledge
▪ Gradual learning process should be based on the learner’s
experience.
▪ The course structure is iterative. This allows learners to revisit the
taught concepts several times during the course and to refine their
understanding of the topics comprising the software development
approach.
THE STUDIO ENVIRONMENT
▪ The studio is a learning environment in which an intensive student-student and
student-academic coach interaction leads the software development process.
▪ Group of students meet their academic coach.
▪ Students reveal their personalities and can express their professional skills.
▪ Exposes students to different kinds of social interactions.
▪ Pair programming
▪ White boards
THE ACADEMIC COACH ROLE
▪ Academic coach -- who is in charge of the project management and student
evaluation.
▪ supervises the development project and acts as the academic customer of
the product as well as the academic coach of the team.
▪ Sets requirements from academic point of view.
▪ Academic coach also ensures the students’ smooth development.
▪ The interaction with the student will consist of following :
▪ keeping the course schedule
▪ evaluating the students’ performance as a team and as individuals
▪ taking care of the administrative infrastructure
TEAMWORK
An Agile Team is a cross-functional group of typically ten or fewer
individuals with all the skills necessary to define, build, test, and deliver
value to their customer.
Agile teams may be
Technical – build digitally enabled solutions
Business – delivering business functions.
Agile Teams strive for fast learning, gaining fast customer feedback,
assessing the results, and adjusting accordingly.
OBJECTIVES OF AGILE TEAM
The objective of every Agile Team is the same: to build
the great products their customers need. They fulfil
five primary areas of responsibility,
I. Connecting with the Customer
II. Planning the work
II. Delivering the value
III. Getting feedback
IV. Improving relentlessly
CONNECTING WITH THE CUSTOMER
Agile Teams are responsible for understanding customer needs and defining the functionality needed to satisfy
them. Doing so requires that all Agile teams:
Build empathy with the customer – Think like customer
Leveraging the Product Owners’ skills,
knowledge, and responsibilities
Establishing direct communication with the customer
Participating in solution support
Direct observation of the customer in action
Participate in product definition – creating stories that fullfill the user vision
Design and execute experiments – As a part of customer and solution research, Agile Teams plan, execute,
and review the results of various experiments. They implement research spikes, low-fidelity models, and
prototypes to gain fast feedback.
PLANNING THE WORK
Agile Teams plan their own work. Planning allows teams to stay aligned with the rest of the train and
progressively refine work within a short timeframe.
ART Planning – PI Planning is the event where each Agile Team gains alignment with the rest of the train
and creates their backlog for the upcoming PI. PI Planning provides the larger, system view that is necessary
to achieve a shared goal. As a result of PI Planning, the team creates a set of PI Objectives and a story-level
outline of the planned progression of their work across iterations. This seeds the Team Backlog for the
upcoming PI.
Team planning – Once ART alignment has been established, teams perform shorter-term planning on a
regular basis during the PI. The purpose of this planning is to leverage new learnings and plan the next short
increment of value. The planning approach differs depending on whether a team applies SAFe Scrum or
SAFe Team Kanban.
Refining the Team Backlog – As knowledge emerges, teams continuously refresh and refine their backlog.
The backlog is used to identify and prioritize the upcoming work they need to do to deliver their committed
value.
DELIVERING THE VALUE
Value delivery is the primary task of an Agile Team. As a part of this effort, a team must be able to
define, build, and test their stories.
▪Frequently integrate and test - helps uncover technology and implementation problems early and
gives the teams enough time to respond to the findings.
▪Regularly synchronize with the rest of the train – Coaches sync – creates visibility towards the
progress
▪Build the continuous delivery pipeline - An effective Agile development process also depends on a
continuous delivery pipeline that has mechanisms for Continuous Exploration, Continuous
Integration, and Continuous Deployment (CICD).
▪Release frequently - Decisions on when to release value are typically made at different levels:
major releases may be decided upon during PI Planning; routine deployments are governed at the
iteration level. Others can even be event-driven.
IMPROVING RELENTLESSLY
Run routine improvement events - all ART teams participate in a joint Inspect &
Adapt event with leaders whose help can be crucial in establishing and implementing
necessary corrective action.
Improve some things immediately - Some problems should be addressed as they
occur, without waiting for the next improvement event. Addressing issues as they
emerge is an integral part of a culture of continuous improvement.
ROLE SCHEME OF AGILE TEAMS
Project teams – To accomplish the project deliverables. The assignment of roles serves as a
means for splitting, among all the team members towards project management and progress.
The role scheme consists of four groups
Leading group – Coach , tracker , Methodologist
Customer group – User evaluator, Customer, Acceptance tester
Code group – Designer, Unit tester, Continuous integrator,
Maintenance group – Presenter, Documenter, Installer
IMPLEMENTATION OF AGILE ROLE
Initial stage of the process, role holders will establish their role, and will maintain
them through out the cycle.
For smaller team, multiple roles could be assigned to a single persons(team
leader of it).
Team can then choose whether each of its members will specialize in one role for
a long period of time or, alternatively, whether the roles will rotate among the
team members.
Role could be reassigned at the beginning of each release like whether to go for
role rotation or stay on one role.
HUMAN PERSPECTIVE ON THE ROLE
SCHEME
Social aspect –
A personal role increases teammates’ involvement, communication and
commitment to the software development process and to their team.
Team member can take an additional role to increase their influence and
involvement in the project management.
Cognitive aspect
A team member should treat the project from one perspective.
Level of abstraction.
Knowledge distribution
Supports individual professional development.
USING THE ROLE SCHEME TO SCALE
AGILE PROJECTS
The role scheme also supports the scaling up of agile projects :
Weekly role meetings
Discussion of project –wide issues.
Provides an opportunity to communicate with other developers.
knowledge is distributed, managed, and maintained.
DILEMMAS IN TEAMWORK
how to allocate incentives, rewards, and bonuses among team members ?
Reward allocation is an important aspect
Conflicts between the required cooperation on the one hand, and one’s
desire to excel as an individual on the other, may intensify.
Examines how team members face possible conflicts between their own
and other team members preferences.
An open discussion will be made here.
STEPS INVOLVED IN BONUS
ALLOCATION
Step 1 : Individual work -- if the project it is working on is successfully completed on
time, the team will receive a bonus.
Step 2 : Teamwork -- Each team decides on one option that all team members, as a
group, prefer.
Step 3 : All teams discussion -- Discuss with all the teams the processes
DILEMMAS IN TEAMWORK
DILEMMAS IN TEAMWORK
Reflective Questions
1. What were your considerations when choosing your personal option for bonus
allocation?
2. Did you face conflicts while working on this task individually (Step 1)? What was
their source? How did you overcome these conflicts?
3. Did you face conflicts while working on this task with your team (Step 2)? What
was their source? How did you overcome these conflicts?
4. What questions, emotions, and dilemmas with respect to software teams were
raised during individual and team work?
5. Predict what considerations would cause developers to prefer a different option
for bonus allocation than yours.
6. What characterized the discussion in your team about the agreed upon option for
bonus allocation? How did the team agree about the preferred option?
TEAMWORK IN LEARNING ENV
Teaching and Learning Principle : Assign Roles to Team Members.
Two roles are assigned among the team members, individual role and
development task.
Individual role – activities related to his or her work
Development task – Additional role given to divide the responsibility
for project progress and effective management.
knowledge sharing, communication, and involvement are enhanced among
team members.
ROLE ACTIVITIES
Application of role scheme involves three activities:
Role assignment activities – starts initiating the role. Then starts defining
their roles by preparing the task list.
Improves team members familiarity with the team mates.
Role distribution.
The students are responsible for the software’s progress and success.
ROLE ASSIGNMENT ACTIVITIES
ROLE MAINTENANCE
Daily, Weekly and Iteration basis – To make aware of the project status.
Following are the ways in which maintenance takes place
Standup –meetings – The person inside the team is asked to
prepare the report dedicated to his role.
Presentation to customers – Takes in two parts
The development tasks of the iteration are presented.
Each student briefly presents how the quality of the product should
be improved.
Feedback after presentations – there are three feedback
sessions that takes place(basically, 7th 11th and 14th ).
ROLE IMPROVEMENT ACTIVITY
Suggested by academic coach.
Students will summarize their roles and publish the summaries to everyone
Other inmates will be asked to provide feed back for the scene
STUDENT EVALUATION
Project evaluation of each student be based on a personal evaluation
(independently of how the team performs), and on an evaluation of the
team performance.
Rather both of them should be performing in a balanced way.
The students evaluation is composed of two parts:
Personal component.
Team component.
CUSTOMERS AND USERS
Customer Role –
The customer describes the project vision, the project main stories, and the
guidelines according to which development priorities will be set.
The architects present their vision about the product architecture, including the
existing architecture and anticipated changes.
The project manager presents his or her view of the development process and the
working environment as well as his or her personal expectations.
Other stake holders present their expectations from the development process.
Customer collaboration – Using metaphors for better understanding
THE USER
Metaphors are used to understand and experience.