Agile methodology became so popular nowadays, that it is not only applied among software development teams, but as well used by people in their daily life.
So what is the philosophy of Agile?
The main idea of agile methodology is to make all the participants of the team work together, deciding and prioritizing tasks from backlog and performing a certain amount of tasks in a certain period of time. An iteration with tasks is called a SPRINT. Usually sprint iterations vary from 2 to 4 weeks. After full testing the piece of the software considers to be functioning.
How agile is applied on practice in a software development team? How is it applied at Code Inspiration?
The main advantage of agile methodology and scrum in particular, is the fact, that the initial structure of a traditional company defines structure, which is aimed at dividing positions on the leading and non-leading. In a software development team operating according to the agile methodology, every participant is unique and each team participant is important.
Because to complete the iteration of the software planned according to all customer requirements, all the team should work like one single “organism”.
Let me describe on practice the process of sprint formation at Code Inspiration:
- Project manager discusses with a client the plan for further software development;
- Then together with the stakeholders we prioritize the parts of the functionality according to the plan (backlog);
- PM discusses with the development team the scope of work possible to deliver within two weeks;
- PM shows the PERT estimation with amount of tasks and hours that would be required to fulfill (time for each task is indicated in three columns and is calculated according to the pessimistic, average and optimistic scenario);
- The customer traditionally modifies a little the scope of work, and after the software development plan for the iteration is approved the development team begins;
- We use Jira as a management tool, usually used by agile development teams. Tracking system JIRA provides not only an easy way to add software tasks to the iterations, but also gives the customer an opportunity to control the working process of software development in real time;
- In the process of the development according to the agile methodology each team participant performs tasks assigned to him;
- QA department is doing software testing;
- And the delivery manager shares results with the customer;
- When the results are approved our PM gets back to finalize the requirements added by the customer to the back log to form the next sprint.
In this continuous team work you can see that actually, there is no high and low position in the software development team, we can never say designer is more important than a developer, or the developer is more important than a QA.
At each stage each participant, whether it is PM or QA or designer, is important and only good team work will guarantee good results and trust from the side of the customers.
What is more, Code Inspiration team thinks that 2-weeks agile iterations are very helpful for both sides. If the representatives feel like they are not on the same wave with the customer needs, they can easily understand this finishing the agreed iteration and what is very important SAVING THEIR REPUTATION explaining to the customer their concerns if any.
For the customers it is always a low risk, no need to waste half a year to understand that the development team will never deliver what you expect, no need to go through continuous nightmare feeling that the team doesn’t meet personal or professional expectations. You can simply complete two week sprint, close the invoice and decide, whether it is good to go with this team in a long way and your further product development.
The main guide which describes Agile methodology is Project Management Body of Knowledge (PMBOK), Agile methodology is described in the extensions to the PMBOK and in the Guide to the Business Analysis Body of Knowledge (BABOK Guide).
It feels like agile methodology, and scrum in particular, are considered to be traditional processes set in every software development team. From little to big development companies apply agile in their daily work. Clients turn to us with the request to proceed with agile.
Actually most of our clients don’t even know the name “scrum” or “agile processes”, however, as going overseas to hire an outsourcing company for the development of their project is already a risk — they usually ask, how we can minimize the risk and understand that we are on the same wave with you. Usually, having a tight timeline for the development, connected with necessity to go to the market by a certain date, they simply cannot afford to lose couple of months to understand that the development team they have selected doesn’t meet their expectations.
Of course, there are other methodologies, applied in planning projects, such as Kanban or Waterfall. However, this is not the topic of our today’s article.
Finishing the article let us provide you some quotes from our team members:
Anton, Team Lead at Code Inspiration:
“To my mind, agile methodology nowadays is one of the most progressive methodologies in project development and delivery of product’s features. As practice shows, clients usually don’t have time for long discussions in order to finalize full list of requirements concerning their product development in the very beginning of product’s development.
Today, when the market demand changes very frequently, the process of product development should be flexible to react efficiently and add features according to user’s demand. As well, it is very important to maintain cooperation with the customer. It is important to hear and understand new features we need to implement and focus on the development, and not on the useless communication, referring that this is the change of scope and initially we have agreed on other tasks regarding the project delivery.
One more point I couldn’t but mention, agile methodology helps to add amendments during development and there won’t be a necessity to rewrite the functionality fully or partially in order to change add a little adjustment to the application.”
Mikhail. Head of Mobile Department at Code Inspiration:
“Agile methodology is aimed at flexible delivery of product features, helping the development team to react efficiently according to user’s and customer’s requests. Agile, especially scrum, easily adapts to the product user and customer requirements.
Some slight minuses, which would be possible to outline are: when the reprioritization of tasks is frequent there is a risk of delaying the releases of the software features as initially planned. As well, constant update of documentation might lead to possible loss of relevance of the initially selected architecture.
All in all, we are very comfortable working applying scrum at Code Inspiration. ”
Maxim. CTO at Code Inspiration:
“As a CTO, I need to stay up-to-date how the development team is operating on several projects. Agile methodology with daily 5 minutes meetings in the beginning of each day provides me with relevant information and gives a clear vision on how things are going on. With this daily updates, I deal with little problems at their early stage before they turn out into delays of releases of the software, or other crucial problems, which will affect businesses of our customers.”