Agile in practice #1 - What is agile development?
These days, the term agile is widely used in various business fields. It describes a way of approaching project management, business analysis, or the product creation process. In the IT world, agility is particularly important as agile software development can result in high quality software, lower development costs, and significantly improved chance of a digital product conquering the market. In this series of articles we will take a closer look into what it means to develop software using the agile approach, and how agile development can influence your product and teams.
Table of contents
What is agile development about?
Innovation has become the main domain of today’s digital business. This has brought companies into a constant and unpredictable cycle of change. Thus, software development teams needed to review and adjust their approach towards building digital products. Flexible and focused agile development appears to be the most suitable and effective solution.
But agile is not just about flexibility and change management. It’s wider concept is to create a whole unique development culture that supports agility in every aspect: strategic planning, processes, teamwork, budgeting, backlog management, etc. The agile working culture has been described by principles derived from the Agile Manifesto. Below we explain how we use it in practice, implementing those principles to achieve agile software development.
Agile methodology definition in a context of development
Generally, the agile approach has been defined by scrum.org:
“It’s a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.”
When we talk about the agile software development process, we talk about applying those values and principles to digital product development. Here are the exact principles we implement while building digital products.
1. Using agile frameworks
At Boldare, we use scrum development framework. It’s our favorite agile framework, enabling our product teams to work in a fully agile way (there are other frameworks available, e.g. kanban). We acknowledge that everything can change at any time: the client’s vision, customer needs, market conditions, etc.
Nowadays, we live in a VUCA world, which generates a lot of uncertainty and unpredictability. Thus, we need to be ready to modify and adjust development processes (both requirements and solutions), product goals and strategy, digital features, tech solutions, etc. at each stage of the full cycle product development.
2. Practicing iterative development
Using scrum enables the delivery of work in short, regular iterations (sprints) - usually lasting a week or two - which makes product development very flexible and adjustable. Developers can implement new and better functionalities, show parts of the product (so-called “increments”) to stakeholders, or test it in a proper, detailed way.
3. Keeping balance between user needs and business goals
An agile approach towards building digital products means being open and ready to respond to evolving customer needs while keeping in mind business goals. To do that, we need to welcome new hypotheses, experiments and tools at any time of product development. Gathering feedback, user testing, and wide-ranging analysis conducted with other tools, helps to fit the product to users’ expectations and their real (not hypothetical) needs.
4. Writing high quality code
Agile development requires writing easily-changeable code that is clear for all team members and low in bugs (TypeScript can be helpful in this area). It’s also extremely important to conduct code reviews and code audits, which enable identification and reduction of potential future problems and code-related risks.
5. Creating a great design
Building a product in an agile environment requires a strong focus on high quality product design. Meeting user needs and expectations is crucial for a digital product’s success, so it’s also important to design a great UX (user experience) and UI (user interface). We write more about this in our article: Why and how UX matters for your business?
6. Working with self-organized agile development teams
To process fully agile digital product development, it’s necessary to create a self-organized, cross-functional team. Team members should work closely with the client’s representative and collaborate transparently with each other. Open communication and a space for implementing new ideas must be ensured. Scrum enables such an approach, and at Boldare we use it widely. Our teams provide frequent feedback on their backlog and plans. This enhances effective strategies, use of the right tools, and further successful product development.
An agile development team is also responsible for reflecting on its own progress, enhancing best practices, eliminating unneeded work, and adjusting team members’ behaviors so that the development process runs smoothly, and to enable the highest possible level of agility.
Placing people in the heart of agile development
One factor that distinguishes agile development from other development approaches, and is clearly visible in Boldare’s practice, is a strong focus on teamwork and collaboration. Agile development could not exist without a high level of effective communication and cross-sharing of knowledge and information, resulting in the delivery of a significant amount of great work. All this can happen only with the engagement of motivated and well-trained development team members. Mature teams with sufficient knowledge and agile understanding can even function without project managers, making all necessary decisions on their own. The scrum framework supports such an approach.
Agile in Practice series - what’s next?
Agile software development can benefit your product in many ways. You can read about it in our article: 10 Reasons why you should use an Agile methodology. In next articles of the Agile in Practice series we will cover the most important rules for implementing agile development and try to answer the question: is agile development applicable to every single project?
Come back to our blog in a couple of weeks to check out the next publications.
Share this article: