Tale of Traditional and Agile Software Development

Wednesday, 29 March, 2017

Modern times, modern people, modern clothes, modern technology… what about modern software development industry? Yes, there are a lot more meanings for the word modern than you can think of! Everything around us evolves, changes, improves. People that work in the IT industry are very well aware of that.

Evolution in software development

Everything evolves, software development too!

Word modern in IT business means hours and hours researching and learning because only by staying modern will you stay on track. Modern is simply the only possible way. It is important to deeply understand trends in the software industry to implement them into a daily business routine. So, in this article, we will explain software quality assurance in the traditional sense, in the Agile approach, and compare them with some essential features.

Traditional Approach to Software Development

When developing software in a traditional way, this process will include several steps from requirements gathering to releasing of the product. In all of those phases, the focus is on creating a flawless product by software quality standards. So, there are four stages in each project of traditional software development.

First one sets up all of the requirements and gives an estimation of the time necessary to implement the different phases of development. After that, the second step is designing and architectural phase. It deals with potential problems that the project may face and prepares a solution. When architectural and designing phase is over, the project moves to the third stage. It is the development stage, where developers write code and build features. At last, the testing phase comes after the development stage. A team of testers perform various test cases and test from the role of an end-user to make sure that a product meets all of the requirements and that there are no errors. In this stage, the customer will become a part of the testing and feedback cycle. Finally, after the client gives the green light, developers release the product.

Are you more Old School?

Pros and Cons of the Traditional Approach

Pros:

Cons:

Agile Approach to Software Development

An Agile software development methodology applies the progressive and iterative approach to developing and testing the software products. Agile way neglects extensive planning and design up front, it allows changing requirements during the whole development phase, because the entire team of planners, designers, developers, and testers work together on successive iterations of the product’s lifetime. 

The work advances in iterations, several stages that should last equally. Every phase should deliver a product with all the features planned for that specific iteration. At the end of every iteration, the customer will receive updated working software so that he can express his opinions and suggest some changes if needed.

Or New School?

Working in Agile Team

The Agile team is a mixture of all kind of people and functions that cooperate to accomplish a common goal – to develop and deliver a flawless software product to the market. These teams are self-organising, and they communicate on a daily basis, face to face. That kind of communication is very efficient, and it is simpler for everyone. There are no misunderstandings and unresolved issues. Client’s inclusion in communication is very significant because he can always give his feedback and suggest changes. The Agile approach significantly shortens the time and feedback loops, so the the communication flow is excellent.

Every project is different, and problem resolving will depend on the problem, people, and resources available to dealing with difficulties. As an Agile team member, you should be ready for changes and be adaptive in the team. The agile approach might seem confusing and chaotic, and because of these reasons, people reject to become a part of the Agile team. But, it is not true. If understood right and implemented well, an Agile team is an excellent place to be a tester.

Pros and Cons to Agile Approach

Pros:

Cons:

Making the Choice

Selecting the right approach to software development and software testing for your company and each software development project depends on project requirements. Traditional or Agile method – depends on project size, risk, complexity, customer availability, and team location. Selecting right approach consequently leads to project’s successful completion. It is easier to explain software quality assurance and decide which approach to use by summarising some differences.

Maybe it’s easier this way…

Planning

While the traditional approach focuses more on careful planning from the start, the Agile method requires only the necessary requirements to begin a project. Requirements will change in the process of developing, whenever they occur, and at any stage of development. The traditional way asks for strictly defined requirements at the beginning. If any request for changing them arrives once when the stage of developing the code has begun, they need to go through a strict change control process to enable any of them. So, we can conclude that the traditional way relies on predictive methods and Agile way on adaptive methods.

Testing

To a traditional approach, QA applies after finishing the development of a project. For coding and testing, there should be an equal amount of time, but in reality, it is not like that. Coding sometimes lasts more than expected and the testing time is reduced because of that. In Agile approach, testing is possible after every iteration.

Documentation

Because in Agile methodology the team works in close collaboration, and they meet on a daily basis, documentation reduction is significant. The client is deeply involved in the whole developing process, and it’s all about making him satisfied with the end product. In the traditional approach, documentation is extensive.

Project Size

Agile methods are a good choice for small or medium sized projects because of constant changes. But, traditional methods are a reliable choice when it comes to big projects – developing software for large enterprises. Requirements and specifications need to be very clearly defined so that the project can even start.

Let’s summarise some main differences:

AttributeTraditional approachAgile approach
TestingAfter coding phase completedIn iterations, while coding lasts
PlanningPlanning from the startOnly basic requirements
DocumentationA lot of documentationReduced documentation
Project sizeLarge projectsSmall or medium projects
CostsReworking costs are highReworking costs are low
TestersIncluded in test planning at the endIncluded in iteration and release planning from the beginning
Customers involvementGiving feedback at the endGiving feedback after every iteration
FlexibilityThere is no possibility for making changesChanges are welcome even at the end of development

Conclusion

When it comes to software development, maybe the biggest question is which of the approaches to choose, traditional or modern one? It is difficult because both of them have their pros and cons, and choosing one is maybe the most important decision in the complete software developing process. Of course, don’t just flip a coin. Consider their characteristics, and you will discover that every software development project has its perfect path. It is important to think through the advantages and disadvantages of traditional and Agile approach. Reflect on the complexity of software, the size of a team, business strategy, type of project, geographical situation, etc.

Keep in mind that the selection of this process is crucial to enable accomplishment of the primary goal – to ensure maximising the chances to deliver a flawless software product successfully.

Discover your own software path.

Ana Lozančić

Ana is a content Marketing specialist and blogger. She graduated in Faculty of humanities and social sciences. She enjoys learning and applying knowledge about marketing and social media, covering latest trends and topics about software development subjects.

    Comments

    © 2017, All Rights Reserved