Articles | October 29, 2020
Why choose Agile Software Development in 2020?
In 2020, an Agile mindset turned out to be a strategy to help companies adapt to the new normal. More and more businesses perceive the potential of smart management models, which is why we have prepared a review of the most important Agile methodologies to help make the choice easier.
Read more to learn what the difference between Agile and Waterfall or Scrum and Kanban is and find out more about the basics of DevOps, DevSecOps and DaD (Disciplined Agile Development).
Agile mindset vs the pandemic
In the new normal, managing directors and decision-makers started to consider implementing new management models. According to Accenture research:
- 94% of them believe their organizational model puts the growth of the company at risk
- 85% claim that they are unsure whether the existing model can adapt to changing priorities
Companies that have already used smart management models were in a better position to face the new normal in terms of remote collaboration. Agile teams take advantage of flexibility and use collaborative tools on a daily basis to facilitate communication and workflow. Non-Agile organizations, forced to switch to online mode, discovered the potential of such approaches too.
Agile mindset during the pandemic: lessons learned
- More frequent check-ins (daily / weekly meetings) and rituals can improve a team’s performance
- Technology and collaborative tools can significantly facilitate communication
- Teams do not need to be co-located to deliver valuable products
- Flexibility brings better results than rigidly following processes
- Focus on collaboration and maintaining team spirit increases effectiveness
- Empathy, sympathetic leadership and soft skills are relevant
Agile Software Development vs Waterfall
The cascade (waterfall) model used since the 1970s is now being replaced by the Agile approach. Despite bringing order to the software development process, the waterfall model is often considered more time-consuming and laborious. This model requires the creation of extensive project documentation and is often related to many dependencies and a complex approval process, e.g. required in order to implement changes to the product or application. The process generally consists of the following steps:
- A business analyst creates documentation and gathers the business requirements
- Software development teams undertake programming tasks
- Software testers run the necessary tests
- Implementation on production
In the early 2000s, the Agile Manifesto was first presented. Agile software development puts emphasis on iterations and collaboration in multidisciplinary teams. Product functionalities are delivered in short iterations and each functionality or part of the product is tested before the package is sent to the business.
Scrum is one of the most popular Agile approaches. Scrum development teams are cross-functional, consisting of a Scrum Master, Product Owner and Development Team. Team members have all the competences required to deliver the product to the client. Working in Scrum means:
- Dividing the workload into short iterations called Sprints
- Describing what needs to be done within a Sprint in User Stories, not in the documentation
- Placing User Stories in the product Backlog
- Delivering working functionalities (developed and tested) to the client
- Conducting Scrum meetings (ceremonies): Sprint Planning, Review of the Backlog, Daily standups, Retrospectives to discuss the Sprint performance (what was good, areas for improvement).
- The process is supervised by a Scrum Master.
Kanban is widely used in the software development process. At JCommerce we use Kanban methodology in our e-commerce project for Boozt. The client himself has said that it helped to improve work on the project: “We have daily stand-ups and a Kanban setup where deploys are done multiple times per day. We quickly gave deployment rights to the team so as to not slow them down and we have never regretted it.” Kanban software development means:
- Creating user stories to describe what needs to be done
- Visualization of the workflow
- Minimizing work “in progress” and raising efficiency
- Using Kanban boards (like Atlassian Tools or Trello) to manage the workflow, by moving user stories on the board, e.g. from ‘to do’, via ‘in progress’, to ‘done’
DevOps & DevSecOps
DevOps consist of Dev (for Development) and Ops (for Operations). The idea of DevOps was firstly presented in 2009 as a software development process that emphasizes cooperation between teams developing products and delivering it to the client. With time, the idea developed to include cybersecurity aspects, meaning working on application and infrastructure security from the very beginning. At JCommerce we deliver DevOps support and entire DevOps teams. DevOps methodology means:
- Faster implementation with Time to Market in mind
- Continuous Deployment and Continuous Integration processes
- Using dedicated tools for configuration management, provisioning and monitoring
- Following the process of planning, application development (programming and code review) compilation (CI/CD process) testing, release, implementation, service and monitoring
DaD: Disciplined Agile
As the Agile mindset became increasingly popular, the new approach called DaD (Disciplined Agile Delivery) rose to prominence. The first mention of DaD can be found in the publication “Choose Your WoW!” (where WoW stands for Way of Working). The aim of Disciplined Agile Development is to combine the best Agile practices to go beyond Scrum and maximize the results. We use DaD methodology in one of our gaming projects carried out for an international client. The assumptions of Disciplined Agile Delivery are as follows:
- Combining the best Agile practices to maximize results
- Hybrid model allowing you to adopt an optimal software delivery strategy
- Context-based way of working, allowing you to change the way of working based on the circumstances
Being Agile is not only about setting up multidisciplinary teams and adopting a new mindset. It is rather the process of continuous improvement. Companies who understand it are in a good position to gain the right perspective thanks to Agile strategy, especially in hard and uncertain times when everything changes like the pattern in a kaleidoscope. I hope the article has outlined the most important aspects of various Agile methodologies.