Conversation

Your input fuels progress! Share your tips or experiences on prioritizing mental wellness at work. Let's inspire change together!

Join the discussion and share your insights now!

Comments 0

Sharpen your coding skills—try JavaScript challenges on TOOLX now!

advertisement

Agile Methodologies, Applications, and Case Study

Agile methodologies


Agile Methodologies

Some popular Agile software development methodologies also referred to as Agile Process models are as follows:

1. Extreme Programming (XP):

Extreme programming is a software development methodology designed to enhance software quality and responsiveness to changing customer requirements. This methodology promotes frequent releases in short iterations which improves productivity and enables new customer requirements to be accommodated. This method derives its name from the concept that the successful elements of traditional software engineering practices are taken to 'extreme' levels in this methodology.


2. Scrum:

Scrum is an iterative and incremental Agile software development framework for managing software projects. A key principle of Scrum is that it recognizes that customer requirements change during the project and that problems that are not expected, cannot be solved in a planned manner. Scrum follows an empirical approach accepting that problems cannot be fully understood or defined, and focusing on maximizing the ability of the team to deliver quickly and respond to new requirements.


3. Adaptive Software Development (ASD):

Continuous adaptation is the foundation of this development methodology. ASD is used in business transactions involving considerable risks. It uses continuous team cooperation and learning loops to develop the application.


4. Feature Driven Development (FDD):

The main goal of this methodology is to deliver working software periodically at fixed intervals. Milestones are identified and progress is tracked based on the achievement of milestones.


5. Lean Software Development:

Lean software development is based on the following lean manufacturing principles:

  • Eliminate waste. Waste is defined as anything that does not add value to the customer.
  • Strengthen learning by doing and testing things rather than documenting and implementing them.
  • Make decisions as late as possible thus keeping all the options open as long as possible.
  • Deliver as fast as possible.
  • Strengthening the team by appreciating and rewarding the people.
  • Build purity in the work by keeping the code easy to understand and avoiding repetitions.
  • Working towards the end product. This way, the problems can be dealt with at application and higher levels, that take care of the whole application rather than investigating problems at minute levels.


6. Agile Unified Process (AUP):

AUP is a simplified version of the Ration Unified Process (RUP). It focuses on building up a model, implementing, testing, and deploying, followed by configuration management. The target is on covering the high-priority tasks rather than investing time in all possible things.

The AUP is based on the following principles:

  • Your staff knows what they're doing: Team members aren't interested in detailed and lengthy process documentation, but they need some high-level guidelines and/or mentoring at frequent time intervals.

  • Simplicity: Everything is described in simple, easy-to-understand terms in a handful of pages, keeping no/less complexity.

  • Agility: The Agile UP is based on fundamental principles of the Agile Alliance.

  • Focus on high-value activities: The focus is on the activities which have high priorities.

  • Tool independence: Tools that are best suited for the work is used. It brings in the picture of ease.

  • You'll want to tailor this product to meet your own needs: There is no need to invest in a special tool or take a course to learn it. The AUP product can be easily tailored via an HTML editing tool.


7. Crystal:

The crystal group of methodologies is people-centric and emphasizes enhancing the work of people. These methodologies begin with baby tasks and then grow them up into giant ones. The aerial activities are reduced and battles are redirected to developmental tasks. Tracking and iteration are the other important features.

The main focus of the Crystal method of development is on people and not processes or artifacts. Crystal is mainly applied to teams of up to 6-8 members working on systems that are not life-critical. This method focuses on efficiency and habitability as components of project safety.


8. Dynamic Systems Development Methods (DSDM):

DSDM is based on Rapid Application Development (RAD). DSDM is mainly used for projects which have a rigid schedule and budget. DSDM is based on the Pareto principle-80/20 rule which says that 80% of the business benefit comes from 20% of the system requirements. Therefore, the DSDM process starts implementing the first 20% of system requirements, to meet 80% of the business needs. It then progresses to cover the rest of the requirements.



Application of Agile Development

Agile development methods are used in projects with the following characteristics:

  • Incremental and iterative approach is used in modeling.
  • Changes in requirements are acted upon and there is no requirement freezing.
  • Customers are actively involved in modeling.
  • Prioritization of tasks is done by the key stakeholders and the team works on the requirement of the highest priority.
  • The team members actively participate in the project.
  • The content of the model is given more importance than the representation or format.

Agile methods are not used under the following circumstances:

  • Agile is not appropriate for projects having ample time for development.
  • Simple projects with repeated ideas need not use Agile.
  • Customers have limited or no involvement in the modeling or development phases.
  • Documents are to be prepared at each stage of the project and have to be signed off by the key stakeholders.
  • After a stage is completed and the associated documents are handed over the next team starts work on the project.
  • Case tool is used to specify the design of the software, but not to generate it.


Case Study

The need for fast-paced software development, like that required by the Internet, start-up companies provided the impetus for more flexible software development models, that later came to be labeled as Agile.

To demonstrate this series of events, let us take the example of two start-up companies, A and B, each with their software development models. Although they were required to use a certified process to assure their investors, they were not keen on adopting a time-intensive bureaucratic model. To make their processes leaner and more efficient, both companies decided to go off the beaten track.

Company A decided to adopt a team approach to software development. The entire team would use a whiteboard to brainstorm and solve programming challenges together. Even though the team took some time to get used to whiteboarding, it turned out to be more productive than using traditional methods of Computer-Aided Software Engineering (CASE) tools. Company A learned that although whiteboarding was more challenging than programming individually using well-known tools, it did not limit them, unlike a programming language. The team members were able to express their ideas easily and quickly. Company A also decided to use open-source software where possible to avoid developing already existing software.

Note - Whiteboarding is the term used to describe the placing of shared documents related to an ongoing discussion on participants' on-screen whiteboard if the sharing is done electronically. Otherwise, it refers to using an actual whiteboard during team meetings and brainstorming sessions.

Company B decided to hire a chief software architect to come up with the design. The architect talked to each team member to get their input and designed the software on her own. On completing the design, she published the results for all the team members to view and. give their feedback. He incorporated their suggestions and improvements in the next design cycle to produce better results.

The common aspect of both these approaches is that they were highly interactive development processes. Both companies realized that process-wide documentation was not helping them and in fact, hampered their speed of development. They learned to separate design from documentation.

Question: Which company do you think had better results?

Answer: Both.

Company A came up with their design faster as people worked parallel. As the development team participated in the design process, their design found wider acceptance and was considered to be more robust.

Company B succeeded in lowering costs the most as only one person, the architect was involved in the design process. However, as only one person was in charge, this approach could lead to bottlenecks while implementing projects.

The design of both companies could be scaled up easily to meet organizational requirements. They also managed to meet the requirements of a Rational Unified Process (RUP).

Note - RUP, developed by lBM is a software development process. RUP divides the development process into four phases. Each phase includes the steps in a traditional software development process, namely, business modeling, analysis and design, implementation, testing, and deployment. The four phases are:

  • Inception -The project idea is defined and its feasibility is decided.
  • Elaboration - The software's design is evaluated to ascertain the resources required. Project costs are also worked out.
  • Construction - The project is executed, and the software is designed, developed, and tested.
  • Transition - After the initial release, end-user feedback is taken and adjustments are made to the final product.

The learning from both these approaches is listed:

  • Developers are more important than processes, it is important to recognize the ideas and approaches of the development team for coming up with creative software solutions quickly.

  • The team should comprise technically sound experienced professionals.

  • Documentation is not as vital as previously believed. Although some amount of documentation is essential to any software development process, it should not be allowed to weigh down the process itself.

  • As the focus shifts away from documentation, the need for greater communication arises automatically. This in turn translates into more effective problem-solving.

  • While there are different modeling tools available, software design benefits from a more interactive approach involving multiple people.

  • Developers may need to use more than one tool for software development.

  • A comprehensive design is not necessary at the beginning of the project. An iterative model allows developers to introduce improvements and fine-tune the design in successive cycles. This means that work need not stop because of an incomplete design and can run parallel to the design process. All this cuts down the overall time requirement of a project.

  • Using different sources of solutions and ideas, such as open source, reduces the effort spent on development while making sure the focus is on innovation and not reinventing the wheel.


Agile Agile Methodologies case study Principles of Agile Applications of agile development most popular agile methodologies agile process models agile methodology steps what is agile methodology scrum methodology types of agile methodology application of agile software development case study in agile agile case study

advertisement