Impact of Iterative Project Management on Software Development Workflow
Iterative project management is commonly applied to software projects of high complexity with numerous requirements, some of which may be not fully defined or a subject to change. Yet, the benefits it offers make it one of the pillars of agile methodology which has a much broader spectrum of applications. Some of them are
- early delivery of value
- reduced risks
- higher software quality
- increased stakeholder engagement.
Curious how it works and how you can apply it to your project? Check out this article to find out!
What is iterative project management?
The main characteristics of iterative project management include
- Incremental development. The project is divided into small, manageable parts or increments. Each iteration results in a usable version of the product, even if it's not fully complete, or in a functional component of the final system.
- Frequent feedback from stakeholders and users. The feedback after each iteration is used to refine and improve the software, ensuring higher quality of the final product, and its better accordance with the users' needs.
- Flexibility. This approach allows for changes to be made easily. As the project progresses and more is learned about the requirements or challenges, the project plan can be adjusted accordingly. Flexibility is particularly valuable in dynamic environments where requirements might change or evolve over time.
- Risk mitigation. As the project is broken up into smaller cycles, uncertain aspects and potential issues can be identified and resolved at the early stages.
The steps of iterative project management
The full project is split into iterations, each of which follows the steps described below.
- Planning. At the beginning of each iteration, we define the scope of the cycle. This involves prioritizing features or requirements based on their business value or risk.
- Design. The UI designs are created for the project scope selected for this iteration. They may evolve with the following cycles as we obtain more feedback and valuable insights about the system.
- Development. This step is about actual coding / development of the features. The focus is on building a working product that meets the goals of the iteration.
- Testing is an integral part of each iteration, ensuring that the new features work correctly and do not introduce defects into the existing system.
- Review. At the end of the iteration, we review the work completed, gather feedback from stakeholders, and assess the progress. This step is informative for planning for the next iteration.
- Iteration retrospective consists in reflecting on the iteration process itself, discussing what went well, and what turned out to be challenging and could be improved. This knowledge is valuable for enhancing the next cycle.
If your project is not bulky, and the iterative approach may be even adding unnecessary complexity, you still want to get user feedback as early as possible. Agile software development is the way to go.
A few tips regarding agile software development workflow
Though seemingly very basic, the following things are really important for establishing an efficient software development workflow.
Before proceeding with custom software engineering, figure out what the roles of every member of the partner’s / client’s team are, so you know who to communicate with when a certain need arises. E.g. the project owner is responsible for making a list of tasks, setting priorities, providing the necessary blueprints and descriptions.
A common question is: How to keep software development agile, yet stick to the plan, estimated budget and timeline?
As the market tendencies may change, it’s necessary to stay agile with product development. Thus you will be able to develop a digital solution that your target audience needs.
Often, those are the updates on market research and the users’ feedback that cause the changes in software project planning. And while it is necessary to take them into account, you have to do it wisely.
Sometimes what looks like a minor change in the app design may actually lead to significant backend modifications. The task of a project manager is to provide software development consulting, and to discuss the new timeline and additional costs with the client. Eventually, they will be able to set the priorities for the application development.
Although processing the feedback may seem like a time-consuming process, do not hesitate to go for it! It provides a priceless opportunity to build the best market-fit version of your software.
MVP in project management: an efficient way to get early feedback
If iterative software development is not a proper fit for your project, it’s a good idea to build a minimal viable product (MVP) first. MVP covers only key and necessary features that are enough to convey the project’s idea and basic value to end-users. It provides the shortest way to user testing and getting valuable feedback from your target audience.
If the feasibility of implementation of your project’s idea is questionable, proof of concept development is a reasonable strategy to proceed with.
How to collect user feedback
Opinions on how to collect user feedback may vary from project to project. The approach certainly depends on the functionality tested, and on who your software users are: their preferences, capabilities, quantity, etc.
So, there are several ways of gathering feedback. It’s ok to arrange discussions if the number of users is small, or use Google forms for questionnaires. More advanced approaches include using marketing tools like Hotjar. They allow
- recording user sessions so they can further be analyzed to spot the bottlenecks and dysfunctions
- leaving comments right by the component they refer to
- heatmaps analysis
- creating surveys, etc.
Gain clarity with your project!
Processing feedback: Apiko’s best practices
Learn about the client’s preferences for the tasks management approach. Check if they use any related tools, e.g. Trello, on their own. Then they can add and edit the tickets by themselves. On the other hand, elderly customers may find it complicated to deal with online tools, and voice messaging may work better for them.
The approaches to feedback processing may differ depending on the project owner’s team composition. One of the ways to process the feedback is described below.
- The product owner (PO) collects the feedback.
- Having analyzed it, PO makes a list of relevant tasks.
- He/she sets the priorities, e.g. specifies what is urgent, what is nice to have, etc. PM may be involved in this process to inform PO about the resources required for this functionality implementation and other important insights, as they may influence the work scope being added, most often limiting it.
- PO adds relevant information including tasks descriptions, screenshots, etc.
- Then the PO shares this final document with the PM.
- PM adds the tasks to task trackers, like Jira.
- Business analyst reviews the tasks and checks if their description and requirements are explicit enough to proceed with the development. If not, they work on gathering more detailed information.
- The team marks which Jira tickets correspond to new features (e.g. the audience looks for some functionality and can’t find it, or when some features are much awaited) and which are the change requests (e.g. the functionality has already been implemented, but its purpose is unclear for the users, or they would prefer it to work somewhat differently).
- PM is responsible for keeping a change log, which is especially crucial when you collaborate according to time and material model, as any introduced changes and new features extend the project timeline and require additional resources for their implementation.
- The team reviews the tasks, comes up with a plan for changes implementation, and proceeds with the agile development.
The bug reports also get reviewed by the team, as sometimes they may be irrelevant. For instance, a button may be not clickable as
- that functionality hasn’t been developed yet
- or because the user forgot to check the checkbox which activates that button.
After the PM’s or/and BA’s examination, the bug fixing tasks are added to Jira and assigned to quality assurance engineers.
It’s wise of a PM to add Feedback labels to the tasks added this way, so that the amount of work added to the initial project scope is obvious.
Let’s sum it up!
The key idea of iterative project management is access to the user feedback after each iteration, and stirring the software development accordingly. This gives the highest chances that the product developed will be exactly what your target audience needs.
When the project is not large enough to be split into iterations, it’s wise to build an MVP first. Let the users test it, so you get the feedback from a real audience at the early stage of software development.
Go for user testing! Just like an important check up at the doctor’s: it may cause some worries, but it’s an effective way to make sure your software development is headed in the right direction.