Implementing Agile: Our Experience
Originally this article was posted on Codica Blog.
What is Agile and why should anyone care?
Agile methodology is a popular and more recent approach in software and web development, and it has a number of benefits if compared to the traditional development process.
In this article, we will talk about introducing Agile approach in our work. We will also show you why we love Agile methodology, and how being Agile is our key to bringing amazing results to all customers’ projects.
Why Agile?
We believe that the most significant and life-changing difference of Agile is that adjustments can be introduced at any stage of the project development. With no harm to the project success.
With the requirements and processes becoming flexible, Agile projects are more successful than projects developed with traditional methodologies. Why? Mostly because of the ability to quickly respond to any changes in the business environment.
Source: vitalitychicago.com
To begin with, let’s go back to the before-Agile times when projects were delivered as a whole package, with documentation 300 pages long, full of requirements and remarks. Negotiations alone would take months, sometimes longer. All this turned software development and implementation process into something long and complicated.
And what if you were unhappy with the end product?
Only at the final project development stages, a customer or developers could suggest any changes. If the project didn’t work the way it was supposed to, everyone was wasting time, money and labor resources on a huge scale. At some point, everyone realized that changes were inevitable and that the Waterfall model reached its limits.
It was time for us to become adaptable and responsive. To become Agile.
The wind of change blew with a new force when seventeen revolutionaries came up and presented the Agile manifesto:
We are uncovering better ways of developing software by doing it and helping others do it.
Now we all can enjoy small iterations and flexible processes, improving our software with no limitations.
We at Codica have successfully used the Agile approach for many projects, and this is what we learned:
- It is the most suitable methodology for long-term development.
- Agile allows maximum transparency between the team and the stakeholders.
- Agile’s flexibility enables you to keep up with any changes in the market demand.
The key benefits of Agile methodology for your business
I know what you might be thinking at this point. That’s good, but what’s in it for me? Why should I care about the development methodology your team is using?
We may surprise you but here’s the fact: many world-famous giants such as Spotify, Barclays, and Microsoft use Agile in their processes.
As stated by Aaron Bjork, Principal Group Program Manager at Microsoft, this is why they went Agile:
We needed to work more incrementally, deliver to customers faster, and let feedback make the product better.
Now, let’s look at the benefits that you can get from working with an Agile team.
- Cost-efficiency. With small iterations, we know Agile for its ability to assess the costs of every single element to be implemented. Besides, due to waste elimination, referring to Lean concepts, you will only pay for necessary components, step by step.
- So at any stage, it’s possible to estimate the importance of the next feature, get feedback from stakeholders, and reduce expenses with unnecessary functionality removed from the scope.
- Time-efficiency. Priorities of each team member are determined, and there’s no duplication, waste, or irrelevance. You get your product or website delivered on time.
- Customer-focused product. Your team of developers is always in touch with you, ready and able to discuss any tasks. Therefore, you will get what you need — reliable product, relevant to the market demands.
At Codica, during the project requirements discussion, we always advise you on the best way to develop your product or to deliver a new feature. - Transparency. At any stage of cooperation, you can see every change, every single improvement, and a very new-deployed feature, leave alone timeframes and costs. So you can watch a clean and transparent process, no surprises in the end!
- Space for experiments. Being Agile means being flexible to changes, and you can always try to implement something new. Developers will write a code for the new functionality, and QA will test it. You can add new features anytime, with no limitations.
As we see, the Agile approach will bring great benefits to your project.
Let us show you how we have gently integrated the four values of Agile into our workflow and what they mean to us.
Agile concepts implemented in Codica’s work principles
1. Individuals and interactions over processes and tools
We believe that software development is all about people. It’s the people who create amazing products, regardless of what tools are used.
Second comes collaboration, which is necessary for people to deliver results. Collaboration helps us with the three components of an effective working process: clear communication, effective teamwork, and responsibility.
At Codica each team member is encouraged to take risks and innovate, everyone can make their suggestions at any stage of the project. At the same time, we all take responsibility for our share of work.
When building the company, the main purpose for us was to create a perfect working atmosphere, where our team members could feel at home, and become friends. In such conditions, people always bring their best talents to the team’s benefit.
When you have the right people who collaborate effectively, you can easily build the processes correspondingly and choose the best tools to fit the team and the processes.
2. Working software over comprehensive documentation
Have you ever been a part of a project where creating the documentation alone would take several months? Let’s look at what it means to your business: you lose time, extra money on documents creation, and your ideas might become obsolete by the time the spec is ready.
We follow one simple rule: work on documentation should not take more than 50% of the development time.
Most of our clients contact us at the initial stage of product creation, when they have a general image of their future product and generate ideas of how they want it to work. Since this is only beginning, sometimes the customers are not sure yet what they want. And sometimes the market is changing so quickly, that it’s just impossible to make any long-term forecast and there’s no time for creating a detailed spec.
In any case, at the initial stage Codica team would analyze the business goals of the product, and suggest the best ways to bring our clients’ ideas into life. Further, based on the information provided, we would create mockups and wireframes, to show the stakeholders what the project may look and work like. In this case, simple requirements with your business idea and goal would be enough.
When the mockups and wireframes are approved, we start work on the Minimum Viable Product, or just MVP, which is building a basic product with some of the vital functions. That’s a great option to test your working idea with least possible expenses, up and running. Thus, at the very beginning, you will be able to make a decision — whether to develop your idea further or abandon it without significant losses.
We believe that documents should be created only to support the product creation process, and not vice versa.
In the end, it’s your ready and successful product that matters, and no one really cares how detailed was the documentation behind it.
3. Customer collaboration over contract negotiation
We are sure that contracts are still important and bring certain value to the collaboration. However, the contacts should be flexible, like everything in Agile, and leave space for change in the future.
The reason for this is very simple: the requirements can change. Often our customers have only an initial idea in mind, and at this point, no one can say for sure where it will get in the end, after a number of iterations and the MVP development. So there’s simply no reason to waste time on creating long and detailed contracts.
Agile methodology, with its flexibility, offers the opportunity of introducing any changes during the development process, and the contracts should be flexible enough to allow this.
This is why communication is essential — and we make sure that our customers can instantly see the progress, check the product available at the moment, and make a decision of further iterations.
On our projects, we guarantee this through regular updates and communication with the customer. We, of course, also work with tracking systems, so that the progress can be seen at any moment.
And we not only communicate — we collaborate. Our customers and the team are equally responsible for the product success. Codica team is always trying to find the best solution for the client’s business idea and the best way to implement it. We analyze each task from different angles, and always offer the best option for the business and the product needs.
4. Responding to change over following a plan
We have already learned that flexibility is the key idea of Agile methodology.
What are the chances that you might need to introduce changes in the process of product development? Let’s face it: anything can happen. Market demand, project budget, stakeholders, final project idea — any (or all) of these can change any time, and there’s no way to predict this.
This is why responding to changes correctly is vital now. We believe that any unpredictable changes can be useful if you know how to treat them appropriately.
We at Codica are flexible and always open to the changes the customer wants to make. We will listen to your ideas, find the best way to implement them, and add to the roadmap. We have learned to work through any changes and turn them into your product benefits.
The key idea for us is not simply following the plan but updating it over time. Our project managers never stop planning: they discuss priorities with customers and reevaluate the tasks. And with Agile we can do easily this — it gives you transparency and ability to easily track all the completed work.
A few final words
To summarize, we should note: Agile does not work for everyone.
Our experience shows that Agile development methodology is better for complex projects and start-ups. That is when you aren’t sure about the final product, and the concept may change during the development process.
Yet, if you have a short-term or standard project, Waterfall would be a good option.
We at Codica cherish the Agile values, foreseeing the expectations of our clients. We follow the Agile approach, staying flexible and responsive to our customers’ needs. We are ready and willing to support your suggestions at any stage of the project.
At the same time, we are not limited to Agile only, and before starting a new project, we always analyze and select the best matching development methodology. In this way, we are sure that we will bring the best results to our customers’ businesses.
Do you want to see how we have implemented the Agile values into real life and brought great results to our clients? Take a look at our case studies.
Like our content? Clap to support!
Originally published at www.codica.com.