How do software developers do their job? Whenever you turn to software developers, you expect to receive the detailed information about what they are going to do and how they are going to do it. All these information is a basis for a software development methodology the company adheres to. The most common one is Agile methodology which has pushed others off the scene.
Those who are outside the developers’ community usually have a very vague idea about how Agile actually works. So, let’s dispel all misunderstandings around the concept and define roles in Agile, common risks and core activities.
Agile methodology has brought new principles to the software development process. Unlike Waterfall methodology, which was popular before Agile advent and adhered to sequential project delivery, Agile has suggested a few key concepts:
- Flexibility - changes can take place anytime during project development;
- Collaboration - people are more important than instruments;
- Communication is vital
- Minimization of documents allows to devote more time to much more important things.
Roles in Agile
Agile methodology, in general, can be based on various frameworks and tools. That’s why the roles can also be different. However, there are a few basic roles that are essential for any Agile approach.
- Product Owner initiates development and has a clear view of the desired outcome. So, it’s their responsibility to supervise the development process and discuss details with the team.
- Stakeholders have a genuine interest in project success. They are end users, sponsors, and anyone who is involved in the project delivery process.
- Development team actually builds a product. The lead of the development team is the Project Manager who oversees the workflow and ensures that it goes as it was supposed to.
Main Agile frameworks
The most common project management frameworks that are based on Agile methodology are Scrum and Kanban.
The point of Scrum Agile methodology is in dividing large tasks into small ones and fulfilling them by the end of Sprint. Sprint is a fixed time unit which can vary depending on the project. Usually, it’s 2 weeks, by the end of which product owner receives a working prototype with complete tasks that were assigned for this particular Sprint. Then, a new Sprint with new tasks starts.
The key player in Scrum is a Scrum Master who links Product Owner and a Development team. The list of his duties is enormous. Organizational, controlling, communicative and retrospective tasks are under Scrum Master’s responsibility.
Kanban Agile methodology has made an extensive use of a particular instrument known as Kanban board. It allows teams and product owner to visualize the development process. The board is divided into several columns and has cards with tasks that can be easily moved into different parts of the board (“to-do tasks, in progress, and done” is the most popular division type) depending on their status. Such visualization lets team leads make predictions and optimize the workload.
Agile methodology isn’t limited to these two, there is more to it. However, these have proved themselves as the most efficient ones. By the way, Scrum and Kanban can be unified to take the best features of the both. This methodology is known as Scrumban, which is also very popular.
Tools for smooth Agile-based workflow
Efficient flow is impossible without proper tools, even in case the development team shares one room, which is often not. So online tools are essential to provide great in-team cooperation and management. Let’s check out just a few of the many existing.
The functionality of some tools is limited. They can deal with only a few Agile tasks successfully. Trello is a great tool for a pure Kanban approach. Anyone involved can gain access to the virtual board with sorted and prioritized tasks. Easybacklog is a tool to manage project’s backlog (tasks to be done and tasks that are already done). Scrum master or Product Owner create user stories and order them in the backlog. EasyBacklog tool, however, doesn’t allow to assign tasks unlike the two tools below.
Other tools are multifunctional. They can be used for entire project management: manage few projects at the same time, count hours and workload, assign tasks and track bugs, create forums, wherein all involved can discuss the details of the task, make reports and Kanban boards. Jira and Redmine are the most popular representatives. They allow not only project management but also bugs tracking, simultaneous management of several different projects, hourage counting, creating group discussion forums, etc.
Risk management in Agile
Every software development is exposed to various risks.
- Technical risks: Will the required feature or product be delivered in a way it was supposed to?
- Business risk: Will the product be able to generate revenue?
- Social risk: Do end users really need this product?
- Deadline risk: Will the product be ready in time?
- Cost risk: Will I have enough money to sustain?
Agile methodology suggests ways on how they can be counteracted. First of all, transparent interaction within the team and with Product owner ensures collective awareness about the project flow, expected terms and issues. Online tools that we discussed above make the process easier.
Secondly, the key practice in Agile development methodology is communication. Daily meetings, Sprint planning meetings, Sprint review and retrospective meetings help to ensure that anyone involved is informed and makes management easier and more efficient.
Thirdly, follow core activities established by Agile principles. Specification document that is created at the very beginning lets both Product Owner and Project Manager have a documented benchmark and eliminate unnecessary risks. It’s also a good idea to visualize the delivery plan with optimistic and pessimistic trends.
Pre-Sprint activities such as planning, prioritization, and tasks assignment, and ‘Done‘ criteria are extremely important. Sprint reviews and retrospects help to detect weak points and avoid some of the problems in future.
There are many project management practices for you as a product owner to choose or you can even invent your own and apply it. Yet, we want to draw your attention that despite seemingly complicated roles and concepts, the Agile methodology provides the simplest solutions for the successful delivery of your projects.