A I C O M S O L

Welcome to Aicomsol !

Agile Application Development

 

Every technology organization today seems to practice the agile methodology for software development, or a version of it. Or at least they believe they do. Whether you are new to agile application development or you learned software development decades ago using the waterfall software development methodology, today your work is at least influenced by the agile methodology.In 2001, a group of experienced software developers got together and realized that they were collectively practicing software development differently from the classical waterfall methodology. And they weren’t all in startups. This group, which included technology luminaries Kent Beck, Martin Fowler, Ron Jeffries, Ken Schwaber, and Jeff Sutherland, came up with the Agile Manifesto that documented their shared beliefs in how a modern software development process should operate. They stressed collaboration over documentation, self- organization rather than rigid management practices, and the ability to manage to constant change rather than lock yourself to a rigid waterfall development process.

From those principles was born the agile methodology for software development.

The roles in the agile methodology

 

An agile software development process always starts by defining the users and documenting a vision statement on a scope of problems, opportunities, and values to be addressed. The product owner captures this vision and works with a multidisciplinary team (or teams) to deliver on this vision. Here are the roles in that process.

User

Agile processes always begin with the user or customer in mind. Today, we often define them with user personas to illustrate different roles in a workflow the software is supporting or different types of customer needs and behaviors.

Product owner

The agile development process itself begins with someone who is required to be the voice of the customer, including any internal stakeholders. That person distills all the insights, ideas, and feedback to create a product vision. These product visions are often short and straightforward, but they nonetheless paint a picture of who the customer is, what values are being addressed, and a strategy on how to address them. I can imagine Google’s original vision looked something like “Let’s make it easy for anyone with internet access to find relevant websites and webpages with a simple, keyword-driven interface and an algorithm that ranks reputable sources higher in the search results.”

We call this person the product owner. His or her responsibility is to define this vision and then work with a development team to make it real.

To work with the development team, the product owner breaks down the product vision into a series of user stories that spell out in more detail who the target user is, what problem is being solved for them, why the solution is important for them, and what constraints and acceptance criteria define the solution. These user stories are prioritized by the product owner, reviewed by the team to ensure they have a shared understanding on what is being asked of them.

Software development team

In agile, the development team and its members’ responsibilities differ from those in traditional software development.

Teams are multidisciplinary, composed of a diverse group of people with the skills to get the job done. Because the focus is on delivering working software, the team has to complete end-to-end functioning applications. So the database, business logic, and user interface of part of the application is developed and then demoed—not the whole application. To do this, the team members have to collaborate. They meet frequently to make sure everyone is aligned on what they are building, on who is doing what, and on exactly how the software is being developed.

In addition to developers, software development teams can include quality assurance (QA) engineers, other engineers (such as for databases and back-end systems), designers, and analysts, depending on the type of software project.

Scrum, Kanban, and other agile frameworks

 

Many agile frameworks that provide specifics on development processes and agile development practices, aligned to a software development life cycle.

The most popular agile framework is called scrum. It focuses on a delivery cadence called a sprint and meeting structures that include the following:

  • Planning — where sprint priorities are identified
  • Commitment — where the team reviews a list or backlog of user stories and decides how much work can be done in the sprint’s duration 
  • Daily standup meetings — so teams can communicate updates on their development status and strategies)

Sprints end with a demo meeting where the functionality is shown to the product owner, followed by a retrospective meeting where the team discusses what went well and what needs improvement in their process.

Many organizations employ scrum masters or coaches to help teams manage the scrum process.

Although scrum dominates, there are other agile frameworks:

  • Kanban works as a fan-in and fan-out process where the team pulls user stories from an intake board and funnels them through a staged development process until they are completed.
  • Some organizations adopt a hybrid agile and waterfall approach, using agile processes for new applications and waterfall for legacy ones.
  • There are also several frameworks to enable organizations to scale the practice to multiple teams.

While agile frameworks define process and collaboration, agile development practices are specific to addressing software development tasks performed in alignment with an agile framework.

So, for example:

  • Some teams adopt pair programming, where two developers code together to drive higher quality code and to enable more senior developers to mentor junior ones.
  • More advanced teams adopt test-driven development and automation to ensure the underlying functionality delivers the expected results.
  • Many teams also adopt technical standards so that the developer’s interpretation of a user story doesn’t lead to just the functionality desired but also meets security, code quality, naming conventions, and other technical standards.

 

Related Post

Leave a Comment

WeCreativez WhatsApp Support
Our customer support team is here to answer your questions. Ask us anything!
👋 Hi, how can I help?