July 2008

Israel Institute of Technology, Israel

Views: 181

Agile software development has the potential to increase diversity in general and gender diversity in particular

Introduction

Gender issues have recently been discussed extensively with respect to the computing fields (cf. Camp, 2002; Margolis and Fisher, 2002; Bair and McGrathe-Cohoon, 2005). One of the discussed issues is the 'shrinking pipeline' phenomenon (Camp, 1997). Camp shows how, in addition to the shrinking of the pipeline upon transition from high school to graduate school, the pipeline has been shrinking also at the bachelor degree level since 1983. She argues that since the number of women at the bachelor's level affects the number of women at levels higher in the pipeline and in the job market, this phenomenon is of great concern (p. 104).

The significant decrease in the female population of computer science students over the past twenty years, from 35 percent in the 1980's to a 15-20 percent level at the beginning of the millennium (Camp, 1997; Davies and Camp, 2000) accompanied data that indicate that the software industry suffers from many typical problems. For example, software projects fail to be delivered on time, exceed their budget, and do not comply with the requirements put forth by the customer (see for example, Fairley and Willshire, 2003).

This article focuses on software development teams using the agile software development approach. High quality of working software is the primary measure of progress; however, agile software development processes promote in addition sustainable pace of all the individuals involved in the software development process, welcome requirement changes even in late stages of the development process, and favour face-to-face communication. Agile software development frameworks enhance diversity in general and, in particular, as is illustrated in this paper, enable women gaining new and better positions in software development teams. The perspective and data that are presented in this article are part of our research about human aspects of software engineering and specifically our comprehensive research about agile software development (Tomayko and Hazzan, 2004; Hazzan and Dubinsky, in press, 2008).

Agile Software development and managerial style

During the 1990's, the agile approach of software development started to emerge as a response to the problems of the software industry (Highsmith, 2002). In general, agile software development methods emphasise customer needs, communication among team members, short releases and heavy testing throughout the entire development process. These emphases are defined in the Manifesto for Agile Software Developmenti, as follows:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to changes over following plans

It is stated that while there is value in the items on the right, agile practitioners value the items on the left more.

The agile principles are implemented quite differently by different agile methods all 'have some significant changes in emphasis from heavyweight methods', e.g., they 'are people-oriented rather than process-oriented' (Fowler, 2002).

As mentioned, agile methods reflect the notion that development environments should support communication and information sharing, in addition to heavy testing, short releases, customer satisfaction, and sustainable work-pace of all individuals involved. At the same time, and independently, recent research studies have identified several characteristics attributed to women's management style that seems to fit the agile approach. Here are some examples (italics added by authors) that reflect that the main characteristics of women's management style seems to fit the agile approach.

  • “Women's style of management is based on sharing power, on inclusion, consultation, consensus, and collaboration. Women work interactively and swap information more freely than man do. Women managers encourage their employees by listening to, supporting, and encouraging them.” (Fisher, 1999, p. 32). 
  • “Women's management style is more equal and collaborative, often described as 'transformational', in contrast to the traditional 'transactional' style preferred by men who rely on power position and formal authority.” (Vinnicombe and Singh, 2002).
  • “Recent research indicates women's management style, which is centered on communication and building positive relationships, is well suited to the leadership paradigm of the 90's.” (Peters, 2003).
  • “The women's management style builds very much on participation by the employees and mutual trust, and they become very disappointed if the employees do not live up to that trust.” (Kjeldsen and Nielsen, 2000).

Needless to say, these management attributes are compatible with any good management style; however, as the above quotes indicate, research attributes them to women.

Research field

One of the advanced courses offered by the Department of Computer Science at the Technion, and taught by the second author for more than ten years, is the project-based capstone course 'Projects in Operating Systems'. The Department of Computer Science is considered to be comparable to the ten leading Computer Science departments in the USii. In addition to its general B.Sc. programme, the Department offers four special undergraduate tracks in Software Engineering, Information Systems Engineering, Computer Engineering, and Bioinformatics. The Technion in general, and the Department of Computer Science in particular, are one the main suppliers of (software) engineers to the Israeli hi-tech industry.

The course 'Projects in Operating Systems' is offered three times a year (winter, spring and summer semesters). The course has been taught in a studio-oriented format since the summer semester of 2002 in more than 50 projects. The 'studio' is the basic learning method used in architecture schools. In such studios, students develop projects, closely guided by a coach and while performing on-going reflection, both on what is created and on the creation process itself (Kuhn, 1998; Tomayko, 1996). The studio is a kind of computer laboratory that is equipped to serve as a project development centre. There is a discussion table in the middle of the room and computers tables around. There are boards that contain the project stories and management material such as measures that are taken regularly. Analysis of how the studio can be implemented into software engineering education is presented by Hazzan, 2002. Extreme Programming, commonly abbreviated XP (Beck, 2000) is the agile development method chosen to be introduced into that course.

The initiative is highly supported by the Department of Computer Science, which, among other things, provides the required resources and equipment. Thus, each team of 10-12 students works on a specific operating system project during the entire semester, in its own studio, which is equipped with computers, tables and white boards. Each team has also an academic coach who guides the development process.

Attendance of all students at all of the weekly 2-4 hour sessions is compulsory. In these meetings, XP practices are taught and employed. In between sessions, student communication is conducted via an electronic forum, which is part of the course web-based environment. The introduction of XP into the course has been found to enrich the development environment with respect to topics such as customer needs and process management (Dubinsky, 2005; Dubinsky and Hazzan, 2005).

Specifically, in a 14-week semester, the team task is to develop the first release of a software product in the subject matter of operating systems. The project subject, as well as a brief description of the software development method to be used, is introduced in the first meeting of the semester. In fact, in this meeting the first iteration (out of three iterations that comprise a release) starts. The first iteration is seven-weeks long and includes, in addition to the project development activities, the launching of the project development environment, the learning of the project subject, and roles distribution among teammates. Since after the first iteration the students are more experienced, the second and third iterations together are half of the semester.

The role practice

In Dubinsky and Hazzan (2004, 2006), the authors suggested an extended role scheme for software development teams. According to this scheme, all teammates are developers, and, in addition, each teammate has a special-personal role that addresses one aspect of software project management. Thus, the project management is covered by all teammates. Table 1 presents the suggested role scheme for an academic XP team. As can be seen, some of the roles are XP roles, like coach, tracker, tester, and customer; other roles represent software development practices that in our opinion should be emphasised.

Data analysis from the perspective of gender diversity

Group of Roles

Role

Description

Leading Group

 

Coach

 

Tracker

 

Methodologist

 

Coordinates and solves group problems, checks the web forum and responds on a daily basis, leads some development sessions.

Manages the group diary, measures group progress with respect to the estimations and test scores, manages and updates the boards.


Learns the software development method applied in the course and guides the software process when required, guides and supports the other team members with their role.

Customer Group

Customer

 

Acceptance tester

 

Tells customer stories, makes decisions pertaining to each iteration, provides feedback, defines and develops acceptance tests.

Works with the customer to define and develop acceptance tests, learns the topic of test-driven development and instructs it to the other team members.

Maintenance Group

 

Presenter

 

 

Documenter

 

 

Installer

 

Plans, organises and presents version presentations, demos, and time schedule allocations.

Plans, organises and presents the project documentation: process documentation, user's guide, and installation instructions

Plans and develops an automated installation kit, supports and instructs other teammates as to the appropriate way to develop software for easy and correct installation.

Code Group

 

Designer

 

 

Code reviewer

 

 

Unit tester

 

 

Integrator

 

Maintains current design, works to simplify design, searches for locations in the software that need refactoring and ensures proper execution of such.

Establishes and refines group code standards, searches for development tools that can help the team, guides pair programming, guides and supports in the maintaining of the code standards and tools.

Learns about unit testing, establishes an automated test suite, guides and supports other team members in the development of unit tests.

Establishes an integration environment including source control, publishes rules pertaining to the addition of new code using the test suite, guides and supports other teammates in the integration task.

In what follows, the authors illustrate how agile software development in general and the role scheme presented above in particular can enhance diversity in general and gender diversity in particular. In Hazzan and Dubinsky (2006), the authors examined the above-mentioned characteristics of women's management style in light of the agile principles that support them. For example, a communicative-oriented examination of 294 students' behaviour, who worked according to the agile method during eight semesters in 27 different teams, reveals that females are equally communicative. Specifically, the communicative behaviour was measured using the electronic forum that the students use. Figure 1 illustrates this observation presenting the percentages of the number of students

Comments

comments

Click to comment

Leave a Reply

Your email address will not be published.

Latest News

To Top