Image Description
Ali KAYACAN
09.01.2023

Software Project Management – ​​2: Agile Methods in Software Project Management

How would you like to learn about agile methods used in software project management with this article?

Image Description
“ Agile methods have emerged as alternative solutions because traditional methods are considered to be inadequate.“

Software Project Management – ​​2: Agile Methods in Software Project Management

Project management methodology is a set of principles and practices that guide the organization of projects to ensure optimum performance. Basically, we can define it as a framework that helps to manage projects in the best possible way. Also, project management is crucial for organizations and teams, but to be truly effective, one must ensure that the project management methodology is properly matched with the team type, project, organization and objectives. With this article, how would you like to learn about agile methods used in software project management?

Image Description

Agile software development is an iterative and incremental (evolutionary) approach that produces high-quality solutions that are timely, cost-effective, and meet the changing needs of stakeholders, in a highly collaborative, effective management framework with “enough” formality, by self-organizing teams. Agile methods have emerged as alternative solutions because traditional methods are considered to be inadequate. According to a research conducted by HP in 2017, organizations prefer agile methods in software project management. The data obtained as a result of the related research are presented in Figure 2. According to the Turkey Agility Report published by AgileTurkey, 72% of the organizations surveyed use agile methods.

Figure 2. Development methods applied in organizations

Image Description

History

The major methodologies that spawned agile methods such as Extreme Programming (XP), Scrum, eXtreme Test, Crystal Methodology Family, Dynamic System Development Method (DSDM), Adaptive Software Development (ASD) and Feature Driven Development (FDD) have been around since the second half of the 1990s. they started to appear. In 2001, seventeen software engineers, creators and leading practitioners of agile methods, came together to find an alternative to traditional software development processes based on documentation and to engage in common ground based on the methodologies they applied. These experts, who call themselves the Agile Alliance, decided on the basic principles and values ​​of agile methods as a result of the study and published the Agile Manifesto. According to the researches, the adoption of agile methods has been on the rise since 2010 in the world and in Turkey.

Principles and Features

According to the Agile Statement philosophy, published by the Agile Alliance in 2001:

  • Individuals and interactions rather than processes and tools,
  • Working software rather than comprehensive documentation,
  • Collaboration with the customer rather than contract negotiations,
  • Responding to change is valued rather than sticking to a plan.

Agile methods, whose core values ​​are stated above, have "twelve principles" arising from this philosophy. These principles are:

  1. The top priority is to satisfy customers by ensuring early and continuous delivery of valuable software.
  2. Changing requirements must be accepted even at the final stages of the software process. Agile processes use change for the customer's competitive advantage.
  3. Working software should be presented to the customer regularly, preferably every few weeks or every few months, with short time intervals.
  4. Owners of business processes and software developers should work together every day throughout the project.
  5. Motivated individuals should be at the heart of the projects. They should be provided with the environment and support they need, and they should be confident that they will get the job done.
  6. The most efficient and effective method of information exchange in a software team is face-to-face communication.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. Sponsors, programmers and users should be able to maintain a constant pace.
  9. Continued attention to technical excellence and good design enhances agility.
  10. Simplicity, the art of increasing the work that does not need to be done as much as possible, is a must.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. The team regularly reflects on how it can be more effective and efficient, and adjusts its behavior accordingly.

Iterations applied in agile methods are shaped in line with the experiences gained in previous iterations and the identified problems. Tasks that need to be done are prioritized according to the business value they carry. The project team determines how best to do the job, within the framework of available resources and constraints. The team must complete certain tasks in a certain amount of time (within iteration time). It is the team, with its strengths and weaknesses, that is responsible for creating the product to be delivered at the end of the iteration. Therefore, team collaboration is important. In this context, the basic principles which agile methods are based on can be listed as:

  • experimentation,
  • prioritization,
  • self-organization,
  • self-organization,
  • cooperation.

In agile methods, software development activities are implemented in iterative phases. As a result of these iterations, a usable product is revealed. Development processes are repeated in the light of customer or user feedback and in line with changing requirements, if any. These iterative processes continue until the product exactly what the customer wants is produced. The phases applied in agile methods are shown in Figure 3.

Figure 3. General Implementation of Agile Methods

Image Description

The usage rates of the main agile methodologies are presented in Table 3. Although Scrum is the most popular methodology both in the world and in Turkey, XP and Kanban stand out compared to other methodologies. Mixed methodologies, in which the Scrum method is used together with Kanban and XP and adapted by organizations according to their own needs, are also among the main uses of agile methods. In the VersionOne research, participants were asked to specify a single methodology, while in AgileTurkey and Forrester research, multiple options were allowed.

Table 4. Implementation Rates of Primary Agile Methodologies

Image Description

Benefits

  • Flexibility is high due to the philosophy of agile methods, the reason why changes are welcomed and even encouraged during the project and iterative process structure.
  • It is easy to manage changing conditions with the flexible structure of the agile method.
  • There are human and communication-centered processes implemented in agile methods with short meetings and face-to-face communication philosophy.
  • The sharing of valuable information and opinions through short meetings held increases the morale and motivation of the project staff while increasing their productivity level.
  • Thanks to short-term iterations and the working product delivered as a result of iteration, the progress of the project is observed in a healthier way and the project risk is reduced.
  • Possible errors are detected earlier, delivery predictability increases and the product reaches the market more quickly with the agile methodology.
  • The level of integration of business processes and software development processes increases, as customers or users can communicate face-to-face with the project staff during the project process.
  • The functional quality of the software increases and customer satisfaction is ensured by fully expressing the desired features of the customers.
  • Since agile methods are suitable for transitions and returns between the applied phases, retrospective failures detected while the process is in progress can be easily corrected.
  • In general, only the product features of the produced software are translated into documentation and other processes are excluded. This reduces the lightweight documentation workload.

Constraints

  • Since the processes are communication-centered in agile methods, the fact that the project elements are not in the same environment with each other or with the customer negatively affects the development of the project. Technologies that can be used to communicate remotely, such as video conferencing, can be used, but this increases costs due to the necessary infrastructure and technology.
  • In order for the subcontractor to bid and a contract to be made, the requirements must be precise and unchanged. The uncertain and volatile environment of agile methods makes subcontracting difficult.
  • Large and complex systems that require functional integrity may not be divided into parts suitable for replication.
  • Requirements may not be defined correctly if the customer or end-user involvement in the project is low due to lack of time or reluctance.
  • Resource and scope planning of the project is difficult because it is open to change.
  • In case the documentation prepared with the understanding of “as needed” is insufficient, the developers who later joined the project and the maintenance-maintenance phases will be adversely affected.
  • Since teams are self-organizing, individuals must be skilled, experienced and have a command of agile processes. Unskilled and inexperienced personnel reduce team performance and negatively affect the project development process.
  • Customers who cannot determine their priorities exactly and who want to change the priorities in their to-do list frequently may affect the planning negatively.
  • Products cannot be reused in other projects, as solutions sufficient to meet the needs defined according to specific problems or functions are developed with agile methods.
  • Testing and quality control methods of agile methods may not be sufficient for systems with no fault tolerance where software failure endanger human life or cause great material damage.
  • Customer benefit is prioritized in agile methods, but customer benefit is generally meeting the functions requested by the customer. As a legacy of lean development, the philosophy of simplicity is applied, so user satisfaction issues such as user interface and user experience can be ignored.

In summary,the project management methodology is a guide that helps to manage projects in the best possible way. There are many project management methodologies. In this article, we discussed agile methods. Agile methods methodology in software is an iterative and evolutionary approach that produces high-quality solutions that are timely, cost-effective and meet the changing needs of stakeholders, in a highly collaborative manner, within the framework of effective governance with “enough” formality, by self-organizing teams. This approach is an effective actor in software project management. As with any methodology, it has its limitations as well as its usefulness.

Share: