Skip to Content

Group 4 - Agile software development

Mentor:

Leader:

Members:

  • István Bozó
  • Zoya Durdik
  • Gábor Lóki
  • Christian Prause

Read and comment in the topic forum. (authorization required)

CONTEXT:
Beginning in the mid-1990s, a number of consultants independently created and evolved what later became to be known as agile software development methodologies after unsuccessful attempts to aid clients with currently-availible "plan-driven" development methodologies. Agile methodologies and practices emerged as an attempt to more formally and explicitly embrace higher rates of change in software requirements and customer expectations.

Agile methods are a subset of iterative methods and are based on iterative enhancement and oppurtunistic development processes. Each iteration of an agile methodology is a self-contained mini-project, with activities that span requirements analysis, design, implementation, test, and customer acceptance. The introduction and evolution of agile methods have been driven by the industry. Software engineering researchers could aid the industry by performing significantly more empirical analysis on the effectiveness of agile methods and by developing and evaluating agile variants to be used in "stressed" situations such as distributed teams or safety-critical systems.

AIM:
The goal of this working group is to investigate:

  • What the status of Agile Software development is, how well it is known, how much it is used
  • Are there any indications for a need to alter, extend, or modify agile methods?
  • Is tool support for agile methods adequate?
  • What research directions should be pursued to enable wider adoption of agile methods?

METHOD:
The study will be conducted by contacting experts of this field-possibly from both academia and industry-during the ESEC-FSE conference and interviewing them to collect information aimed at addressing our goal.

To this purpose, the working group should identify a set of questions to be asked, for example:

Legend:
[1] - choose one
[*] - select one or more

  1. [1] Do you use agile software development methods in your projects?
    • I have not used agile methods and I do not plan using them in the future
    • I have not used agile methods but plan to use them in the future
    • I have used agile methods but would not use in the future
    • I have used agile methods and will continue to use them
    • Other, please specify ...
  2. [*] Which agile software development processes do you know?
    • Adaptive Software Development
    • Agile Modeling
    • Agile Unified Process
    • Crystal family of methodologies
    • Dynamic Systems Development Method
    • Essential Unified Process
    • Extreme programing
    • Feature driven development
    • Open Source Software development
    • Open Unified Process
    • Rational unified process
    • Scrum
    • Velocity tracking
    • Other, please specify ...
  3. [*] Which agile software development processes are you using or planing to use?
    • Adaptive Software Development
    • Agile Modeling
    • Agile Unified Process
    • Crystal family of methodologies
    • Dynamic Systems Development Method
    • Essential Unified Process
    • Extreme programing
    • Feature driven development
    • Open Source Software development
    • Open Unified Process
    • Rational unified process
    • Scrum
    • Velocity tracking
    • Other, please specify ...
  4. [*] What do you regard as the essence of agile software development?
    • Software is developed as a series of short term subprojects
    • Customers can see and try the software as it evolves throughout the project
    • Allocation of developers to subtasks can be managed more efficiently
    • Projects can be adjusted easily to changing requirements
    • Continuous iteration of agile software development always publishes a working product based on the implemented requirements
    • Lack of formalities (such as documentation, flexible group structure, etc.)
    • Team members, their personality and individuality is considered and respected
    • Other, please specify ...
  5. [1] What do you think the main advantage of agile software development is?
    • Customers can see and try the software as it evolves throughout the project
    • Allocation of resources can be managed more effectively
    • Projects can be adjusted easily to changing requirements
    • Deadlines can be kept more easily than with other methods
    • Other, please specify ...
  6. [1] What do you think the main disadvantage of agile software development is?
    • The development team has to deal with changing requirements throughout the whole project
    • Agile methods can only be applied with projects that have special characteristics
    • Agile methods are hard to apply, because team members tend to focus more on the method rather than the project goals
    • Lack or neglecting of documentation
    • Lack of explicit design support
    • Too much freedom for the team members
    • Role / position of the project manager unclear
    • Other, please specify ...
  7. [1] Do you think that agile software development is suitable for distributed projects?
    • Yes
    • Yes, but under the condition that ...
    • No, because ...
  8. [1] Do you use any software tool specialized towards agile software development?
    • No, general tools are appropriate in agile software development
    • Yes, I use 3rd party specialized tools
    • Yes, I use tools that I (our group) developed for this purpose
    • Other, please specify ...
  9. [1] Do you see any need for improved tool support in software engineering in general and agile software development in particular?
    • No, existing tools are appropriate
    • Existing tool support for general tasks is appropriate, but agile development has special needs that need to be addressed by future development tools
    • I see room for improved tool support both in general software engineering and in agile software engineering
    • Other, please specify ...
  10. [*] In your opinion, what aspects of agile software development should be researched more thoroughly?
    • Refinement and standardisation of agile methods
    • Human aspects of working in teams
    • Development of tools tailored to aid agile software engineering
    • Productivity changes during introduction of different agile development processes
    • Empirical validation of practices (e.g. planning poker, pair programming, test driven development)
    • Agile documentation methods
    • Other, please specify ...
  11. [1] Which attribute of your projects is variable in general?
    • Project budget
    • Human resources
    • Project timeframe
    • Quality
    • None, these attributes are immutable
  12. [1] What do you think if there is a project size when agile software development fails?
    • Less than 5 developers
    • Between 5 and 10 developers
    • Over 10 developers
    • Over 50 developers
    • Over 100 developers
    • No, agile development process never fails.
  13. [1] Do you think there is a problem with the quality of code (like readability, understandability, code smells, ...) in agile projects?
    • Yes
    • No
    • I do not know
  14. [1] Do you think there is a problem with the quality of system design documentation in agile projects?
    • Yes
    • No
    • I don't know
  15. [1] Do you think there is a problem with internal documentation in general in agile projects?
    • Yes
    • No
  16. [*] What could be the reasons for above problems with source code, design, and other documentation?
    • Not applicable (because you answered ALL questions with "no")
    • Other project goals are more important
    • Some developers do not know how to write high quality documentation
    • Some developers do not care enough for documentation quality
    • Some developers do not have the time to invest in quality due to other tasks
    • Documentation /design is not explicitly considered
    • The quality goals are not set
    • The individual developer has only limited benefit from documentation written by himself
    • Other, please specify ...
  17. [1] What typical counter-measures do you deem most effective to prevent the problem of no or poor documentation in agile projects?
    • Not necessary
    • Agreement on common rules
    • Pair-programming (i.e. pair-pressure)
    • Reviewing
    • (Repeatedly) explaining the benefits
    • Separate quality control roles or departments
    • Other, please specify ...
  18. [1] Do you think that a reputation system could be used to ameliorate documentation problems by motivating developers to contribute more?
    (Explanation: A reputation system analyzes the observable actions of members of a computer-based society. It computes individual reputation scores and makes them available to others in order to promote the well-behaving of members of the society.)
    • No, because ... (please specify)
    • Yes, but I don't know how
    • Yes, because it could help rewarding good development behavior
    • Yes, because it could do ... (please specify)
  19. [1] Do you think that these problems are specific to agile projects as opposed to classical software projects?
    • Yes
    • No
  20. [1] If you use agile development, how do you design and concept your system?
    • We have continues iterative design process embedded into agile development, architectural artefacts are updated regularly
    • We have some initial design, however architectural artefacts are not updated later on
    • We do not have explicit design iteration / stage
    • Type of our projects do not require architectural design (repeating projects, simple projects, etc.)
    • I do not use agile development
    • Other, please specify ...
  21. [1] Do you think that explicit architectural design (incl. architecture artefacts, such as models) can positively influence software quality or development process?
    • Yes, significant improvement
    • Yes, some improvement
    • Yes, but it is unclear if an be compared ot the effort spent on architectural design and artefacts
    • No influence
    • No, it is more an impediment
    • Other, please specify ...
  22. [1] Agile methods are supposed to be beneficial when requirements are unknown or are change-prone. Do you agree?
    • Yes
    • No
    • I don't know
  23. [1] Agile methods are supposed to be beneficial when requirements are unknown or are change-prone. Do you think it is a common case that requirements change so much during the project that major system re-implementation is required?
    • Yes
    • No
    • Other, please specify ...
  24. [1] Is there anything else you would like to let the world know?
    • I do not know
    • No
    • Yes, please specify ...

REFERENCES:
[1] K. Beck; et al. Manifesto for Agile Software Development, 2001
[2] J. Highsmith, Agile Software Development Ecosystems, Addison-Wesley, 2002
[3] K. Beck, Test Driven Development -- by example, Addison Wesley, 2003
[4] K. Beck, Extreme Programming Explained, Embrace Change, Addison Wesley, 2005

Forum