ISTQB Foundation Level Agile Tester Study Guide – Chapter 1: Agile Software Development

March 1, 2020

arif

Fundamentals of Agile Software Development

To prove yourself as an effective tester on Agile project, you first need to understand how Agile software development model works. Agile development, which covers a range of software development models, is based on an iterative approach to software development. Using Agile methods, the software is developed in repetitive product development cycles called iteration.

Agile development mainly focuses on the early delivery of working software products and ensures the availability of the product to the customer as early as possible. The goal of agile methods is to reduce burdens in the software process (e.g. less documentation). It also enables the process to respond quickly to requirement changes without additional rework.

Some key points of Agile software development in the testing perspective are as follows.

  • The tester’s tasks differ from those in a traditional project
  • The tester must understand Agile values and principles
  • The tester is at the same hierarchical level as all other team members like developers etc. (whole-team approach)
  • The tester communicates on a regular basis with the team, thus contributing to the early reduction of the number of defects in the product and its overall quality

Agile software development and the Agile Manifesto

The Agile Manifesto, the manifesto for Agile software development, was brought about in 2001, developed from a group of individuals agreeing on shared principles and values.

Fig: Agile Manifesto

Individuals and interaction

  • Agile development is people-centered
  • a team is composed of a number of persons with different tasks
  • the interaction is very close and frequent
  • it is more effective to rely on the collaboration among team members than on tools and processes

Working software

  • a working system is essential for the customers
  • feedback is quickly given to the development team
  • detailed documentation takes a secondary place
  • the software is made available earlier in its development life cycle, even with reduced functionality
  • Agile development creates a considerable advantage in time-to-market
  • especially applicable to fast-changing, dynamic business environments
  • problems and/or solutions may still be vague
  • there is no room for bringing innovation in new business areas

Customer collaboration

  • customers find it difficult to describe the requirements for a system
  • collaborating directly with the customer helps to understand the expectations correctly
  • contracts with customers may be important, but working in regular and collaboration is likely to bring more success
  • frequent and close collaboration with the customer increases the possibility of success of the project

Responding to change

  • software projects are subject to change
  • changes could be e.g. environment, competitors, new technologies
  • changes have a strong impact on the project
  • the development process has to respond to this
  • rigid processes, unable to accept changes in plans, make no sense
  • flexible work practices react to changes and are more successful

Twelve principles of Agile Manifesto

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage
  3. Deliver working software frequently, from a few weeks to a few months, with a preference to the shorter timescale
  4. Business people and developers must work together daily throughout the project
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation
  7. Working software is the primary measure of progress
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely
  9. Continuous attention to technical excellence and good design enhances agility
  10. Simplicity – the art of maximizing the amount of work not done – is essential
  11. The best architectures, requirements, and designs emerge from self-organizing teams
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly

References:

About the author

Pretium lorem primis senectus habitasse lectus donec ultricies tortor adipiscing fusce morbi volutpat pellentesque consectetur risus molestie curae malesuada. Dignissim lacus convallis massa mauris enim mattis magnis senectus montes mollis phasellus.

Leave a Comment