Using Agile Software Development Model for IT Projects


Call for Papers Engineering Research Journal June 2019

Download Full-Text PDF Cite this Publication

Text Only Version

Using Agile Software Development Model for IT Projects

Rishit Mishra

IT Project Manager, PWC

AbstractFast paced product development has become one of the essential needs in IT world. There have been incessant efforts and initiatives that companies are trying to adopt to deliver a good quality product on time to the customer. Even though meeting the requirements and expectations of the client has always been important but the time sensitivity and criticality of the project is another added factor for making the project successful. Many organizations start their business transformation for their IT projects by implementing new development methodologies instead of using the old waterfall approach. Agile development is one of such well known software development methodology that not only entertains the changing business needs of the business but also manages/assimilate these changes very easily. However, there are some unavoidable issues that companies encounter which we will discuss here and we will look into how they can be solved.

KeywordsSoftware Development; Agile; Waterfall; Iterative models; fast product developemnt.

INTRODUCTION TO SOFTWARE DEVELOPEMNT MODELS

For the project to succeed there has to be a good collaboration between development team, cross-project development teams, project stokeholds and other important things which we sometime overlook such as centralized data management for the project, prioritization of tasks and reporting the progress in all phases of project. As the team size increases to keep track of the progress being made it is very much essential that there has to be a practice that is in place which will lead to continuous progress of the project. This leads our path to developing a solid software model that can act as a glue that ties all the above mentioned important parameter together. There are various software development models which companies use to build successful products, lets take a look at a couple of them.

  1. Waterfall Model

    The key steps in waterfall model are Analysis, Design, Implementation, Testing, Installation and Maintenance. The very first step before all these phases is requirement gathering in which the requirements documents are designed and then the requirements are locked up i.e. no more changes in the requirements are allowed.

    The communication with the business users is done upfront before the project actually starts which allows to estimate and design the project nicely. All the phases are firm, clearly separated and are executed in sequence. The Requirements are not allowed to change and the end product can only be tested, in the true sense, once the project goes into its testing phase as shown below.

    Image 1. Waterfall model

  2. Iterative model

    The Iterative model can also be defined as Modified Waterfall or Agile, tries to avoid the necessity for freezing of the requirements at the start of the project. In addition to providing the flexibility to update the requirements as the project goes.

    Unlike waterfall a chunk of functionality is analyzed, designed, developed, and tested at each iteration. Iteration cycles are repeated till the fully functional product is ready for production.

    The product is demonstrated to the product owners and stakeholders on each iteration. The received feedback on each iteration may lead to addition of new requirements. This helps the problems to be corrected sooner in the development phase. This model allows the end client to track the changes and add the requirements as and when needed.

    The key advantage of Iterative model is that it allows more flexibility in scope and requirement changes.

  3. Agile-Scrum (Iterative Incremental) model

    This is one of the lightweight product development methods. Scrum is one of the most commonly-used methodologies of Agile software development. Other Agile methodologies for software development are Kanban and eXtreme Programming (XP). Each agile methodology has its own way of functioning, and terminologies.

    1. Kanban eleminates the extra efforts involved in the projects and put limits on the amount of work. It essentially does not prescribe to work in interations or repetative cycles.

    2. XP works towards a continuously improving the quality product. With XP you can see there are many changes in customer requirements even later in the iteratons. It heavily relies on building quality product.

    3. Scrum focuses on building and delivering product at the end of each iteration of the process. Its adaptive model and focuses on customer satisfaction and communication.

      Image 2. Product Development using scrum

      WHY CONSIDER AGILE?

      With Agile process, it is guaranteed that that there will be high productively and product will be developed in the continuous feedback model in comparatively lesser time than that of waterfall. Agile methodology results in productivity gains by better communication. This makes the model solid by continuously adapting through the needs of the client.

      WHAT MAKES AGILE SO SPECIAL?

      The agile releases more accurate and detailed information from daily scrum meetings, burndown charts, task boards and retrospective meetings allows to understand the complete progress in the project. The added benefit of agile process in reduced risk involves. There is always a prototype of product available after each iteration of the sprint. The Requirements can be changed as per the changes in business needs. This helps to build a solid software which has comparatively less issues and clients acceptance as the requirements are refined as per the needs at any time of the process.

      Engaging customer throughout the project development lifecycle helps in a higher acceptance and customer satisfaction rate. Another factor which plays a key role in scrum is effective communication between the team members stakeholders and product owner. This improves the transparency in the whole software development process thus helping to track the efforts and keep the clear understanding of the product that is being delivered. After every sprint reviews customers are given the chance to see the working functionality. This gives the stakeholders the direct control over the efforts of the team and they can monitor the progress throughout the project which helps understanding clear timeline involved in the process.

      The agile model needs to be altered according to the needs of the project. You cannot assume that there will be one solution that will fit every kind of software development project. There will be variation based on each project type and the scope of the project. The number of weeks in which sprint has to be divided depends on the scope and demand of the customers involved in the project. This is one of the key factors involved in making the sprints adaptive.

      The companies usually follow the approach of refining the requirements and coming up with work load. The analysis and design is done before the actual development us started. After every sprint, the product is demonstrated to the stakeholders. After there is significant amount of user stories being completed and the product is almost heading towards completion the user acceptance testing phase starts that gives the end user ability to start testing the project. The most of the user stories pass the testing they are moved to the production ready phase. This whole process of product development is accompanied by incremental development and continuous integration.

      POINTS TO NOTE WHILE MOVING FROM WATERFALL TO

      AGILE

      If the organization is plannin to transition from waterfall project development to the Agile software development the most important thing to consider is changing the mindset and convincing everyone as to why we are transitioning to Agile and what will be the benefits of the same. It needs the discipline and commitment from all the scrum team members.

      When a huge amount of functionality is deployed into the production into a single release there will be a significant level of concern will be raised from quality assurance team. This results into the increase of workload of quality assurance team as scope of regression will keep increasing with the number of completed sprints because there is new functionality being added after each sprint which might impact the older development code and functionality.

      Another important factor involved is coming up with a schedule that will be acceptable by all the team members. Agile development is based on team efforts, each and every team member is responsible for the success of the project. This need the huge amount of commitment and promise to make the project a success. Right from the everyday scrum meeting, there are many other meetings that need to run to make sure the deliverable is properly planned and executed between team members.

      There are five types of Scrum meetings held in regular intervals:

      1. Daily standup

        The daily standup very important factor in Agile as it brings accountability to Scrum team members. These Scrum meetings occur throughout the sprint, and every day members answer three main questions:

        • What did you do yesterday?

        • What are you doing today?

        • Is anything impeding your progress?

      2. Sprint planning

        Sprint planning is in the beginning of the Sprint. This meeting is held just to decide the plan of action such as what workload scrum team members will work on and what user stories will be involved?

      3. Sprint review

        This meeting is usually scheduled at the end of the sprint. Tthe Scrum team holds the sprint review to demo functionality and discuss with shareholders and others what was accomplished during the sprint. This also helps team to showcase what all user stories are complete and what they achieved in the Sprint.

      4. Sprint retrospective

        This meeting is scheduled at the end of the sprint to understand the failures and successes involved in the sprint. This helps to refine the process by continuing the practices that led to success and avoiding the practices that led to failure. This meeting is focused on process improvement and best practices that organization should follow for successful software development.

      5. Product backlog refinement

This meeting usually happens in between the sprints. Product refinement helps to evaluate a story for clarity, size and understand the feasibility. Also, this will help to estimate the project and how many user stories are pending to be implemented.

SUMMARY

As discussed in this paper there are different software development models that company can take into account. The selection of the process may vary depending on the scope and project deadlines. Each of the methodologies have their own advantages and disadvantages. Waterfall being more focused on rock solid requirements that cannot be changed whereas iterative model gives a better flexibility to customers to add the requirements and see the progress after each sprint. This results in more transparency and client satisfaction. There are many aspects of Agile software methodology such as various scrum meetings, scrum team roles and commitment to follow these makes it overall a successful and fast-paced Software Development Model.

REFERENCES

  1. Scrum Teams: Whats with All the Scrum Meetings? Mike Siemasz https://www.compuware.com/scrum-teams-whats- scrum-meetings/

  2. https://www.scrum.org/resources/what-is-scrum

  3. https://www.red-gate.com/simple-talk/opinion/opinion- pieces/consider-agile-large-projects/

  4. 4.https://en.wikipedia.org/wiki/Scrum_(software_development)

Leave a Reply

Your email address will not be published. Required fields are marked *