How do you manage software developer's time

What is agile software development?

The goal of agile software development is the continuous provision of functional software that is created in rapid iterations.

However, the term “agile software development” can be misleading if it only includes a certain method of software development. However, agile software development does not include any fixed rules about exactly which processes must be carried out. Instead, it's a way of thinking about workflows and the way you work together. This mindset encompasses various values ​​that actively support our decisions about what and how to do something.

Specifically, agile software development is about providing small parts of functional software quickly in order to improve customer satisfaction. These methods use adaptive approaches and teamwork for continuous improvement. Agile software development usually takes place in small, self-organizing teams of developers and company representatives who meet in person at regular intervals throughout the entire software development cycle. An agile concept tries to keep the software documentation low and to welcome changes at any point in the software cycle instead of rejecting them.

Agile values

The word “agile” in its current meaning was first used in 2001. In response to waterfall models in project management, in which a software project is organized as a series of linear sequences, a group of software developers formulated the so-called "Agile Manifesto". In this document, the programmers describe a new concept of software development based on four guiding principles that software developers believe should prevail. Accordingly, agile software development teams should consider the following:

  • People and Interactions take precedence over processes and tools.
  • Functional software takes precedence over comprehensive documentation.
  • Cooperation with the customer has priority over contract negotiations.
  • Responding to changes takes precedence over following a plan.

The authors make it clear that all items on the list above have value in themselves. However, they state that product development results can be improved if the items on the left (in bold) are given more attention than those on the right. The aim of the agile manifesto is not to set regulations. Rather, the agile manifesto serves as a guideline for a new understanding of software development.

The agile manifesto led to numerous practical consequences. For example, the waterfall method ensures product quality by developing software sequentially from one phase to the next. In contrast, in an agile concept, the development and test phase can be carried out as simultaneous and continuous processes. In other words, waterfall development is based on the principle that a complete phase must be completed before the next phase can be initiated, while an agile concept supports the simultaneous execution of several sequences.

Where do agile concepts come from?

Agile working methods were designed to remove the obvious limitations of the waterfall models. This was derived from Henry Ford's assembly line manufacturing method from 1913 and later applied to software development. Since their introduction in 2001, agile models have been used successfully in numerous variants in the software industry and in project management.

Agile software development began when many developers realized that the production cycles and collaboration methods used in the waterfall model were not producing the desired results. This problem was particularly evident in the early 1990s, when it often took several years between a business need and the eventual delivery of a working application. Business needs and markets changed so rapidly during these years that a large number of software projects were canceled before they could be delivered. The waste of time and resources led many software developers to look for an alternative.

In view of the looming operational consequences, companies are increasingly introducing digital transformation strategies in order to keep pace with accelerated business development. Agile software development often plays a role here.

Agile methods form the basis of many digital workflows today. Cloud computing with its flexible, scalable IT infrastructure has become more important in parallel with the requirements of agile software development. Cloud-native development with its many networked services, the scope of which can be adapted to business requirements, is similar to agile software development.

The DevOps concept removes the old boundaries between software development and operations. SRE is an implementation of DevOps that uses software as a tool to manage systems and automate operations tasks; CI/CD recognizes the fact that software is constantly changing and gives developers the tools to help them they can deploy new code even faster.

Perhaps you have already noticed that "agile software development" itself is an agile idea to respond to the requirements of customers (i.e. software developers) in times of change. This is something to keep in mind as we look at the various agile frameworks, which have different names and often differ from one implementation to another.

Agile frameworks

Agile frameworks for software development, such as Scrum, Kanban or Extreme Programming (XP), form the basis for common software development processes such as DevOps and CI / CD (Continuous Integration / Continuous Delivery).

Scrum is one of the most widely used agile frameworks today. However, not all agile frameworks are Scrum frameworks and, frankly, not all Scrum frameworks are agile. In a Scrum model, small, cross-functional teams of five to nine people work together. They break their work down into steps that can be completed within a consistent period of time called a sprint. Scrum teams consist of team members, a scrum master and a product owner. A scrum model is typically used when a large project can be broken down into two to four week sprints. Scrum focuses on looping feedback through a ceremony called a "retrospective". The unofficial scrum motto could be "check and adjust".

Other agile frameworks, particularly Kanban, were developed before the agile manifesto. But these frameworks are classified as agile because they are based on the same values ​​as the agile manifesto. There are too many agile frameworks and agile scaling methods for us to list them all here.