You are a thriving software development company, operating successfully on the market for several years. Best development team for which nothing is impossible? Checked. Graphic designers, whose imagination and skills surprise you every day? Checked. Management team, that can handle any challenge? Checked. In theory, you have all crucial elements to complete every order successfully, but… you still have to handle errors, misunderstandings, or missing the deadline. What if your company could work faster and more efficiently while maintaining the highest quality product? The answer is short – agile.
What can we say about agile methodology?
In a nutshell, agile software development is a group of software development methods that is guided by four main principles:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following the plan
At this point, we refer to the fundamental source, which is the Manifesto for Agile Software Development. What we have to remember is that the best agile software house is characterized by self-organization and cross-functional teams that are aware of the variability of customers’ requirements. The agile approach, therefore, requires flexible responses to change, which leads directly to adaptive planning, evolutionary development, early delivery, and continuous improvement.
It is worth mentioning that agile software development is a whole group of methods that combine these assumptions. However, mechanisms and practices used may be different may be different. So what are the most popular agile frameworks? Definitely it will be Scrum, Kanban, Scrumban, Feature Driven Development, and Extreme Programming. These methods apply agile principles to project management. Briefly, while agile is the overall philosophy, frameworks can be practical tools of implementation.
Okay, agile basics are behind us. Let’s get back to business and see how agile works in practice. Our case study will be our original game created accordance with agile assumptions.
Let’s make a game for developers
At Liki, we focus on personal development. And it’s not just a high-flying slogan, but it actually matters in everyday work. During one of our internship programs, we created a game – completely from scratch. Thanks to this, interns had the opportunity to learn how to work on a commercial project from the inside – there is no better way to gain valuable experience.
We bet on a tower defence game, which is still a popular gaming trend from the 80s. What was that all about? Defend code against the bugs. Quite logical, isn’t it? Towers are developers and defending against bugs is about answering technical interview questions. A player has three types of towers to choose from – Junior, Mid, and Senior Developer, which represent different levels of questions’ difficulty. The game is also varied by different types of bugs attacking in successive waves. Moreover, keep in mind the time limit before bugs cross the Deadline. Sounds interesting and challenging? We encourage you to take up the challenge and check your front end development knowledge in Bugs Defence. Let’s play a game!
Did you know about gamification trend in HR?
Creating the game was value-oriented. First of all, we could evaluate the knowledge and skills of interns, which allowed us to employ the best ones. We included them into the team, showed best agile practices and working methods already during the internship, so we could smoothly move on to the next projects. Secondly, we received a product (the game) that may serve as an unconventional method of checking developers’ knowledge during interviews. Boring question-and-answer conversations can be replaced by playing a game. This is an interesting solution both from the point of view of the recruiter (quick verification of knowledge) and the candidate (the game reduces tension in an interview, which can be very stressful). What is more, the use of gamification in recruitment translates directly into employer branding. Read more about gamification for recruitment.
Bugs Defence – agile software development best practices
Back to the topic… Bugs Defence game has been created fully agile on all levels: planning, coding, testing, requirements, design, modeling, process, quality, etc. We used scrum methodology as a framework, which is convenient and easy to adapt. Scrum is workflow-oriented so it is a very good solution for the process of creating a specific product. Furthermore, it has proved to be a great solution for working with interns. Below are some of the best agile practices (including scrum methodology) used to build the game from scratch within a month.
Even though interns were part of the project, nothing stood in the way of creating an agile team perfectly simulating a commercial project (of course under the watchful eye of more experienced colleagues). In a team consisting of people with different knowledge and skills, the use of agile techniques improved the process of achieving a common goal.
In our agile team, following the scrum framework, there were three roles:
Product Owner – a client’s representative who knew the project’s assumptions and the client’s requirements. Was responsible for project development, including Backlog.
Scrum Master – in short, he was the guardian of agile practices. Additionally, he supported the Product Owner in managing the Backlog, taking care of its clear vision and goal. Moreover, he supported and advised the Development Team to make the whole process run smoothly (Servant Leader).
Development Team – a self-organizing team that developed the product by choosing effective tools. Our team consisted of three interns (two developers and one graphic designer), who could count on a tech leader. What is worth mentioning, two of the interns were hired later – we loved their work! However, we can point out that a typical agile development team usually consists of some skilled programmers, designers, testers, analysts, etc., and has from 3 to 9 members.
Product Backlog – list of product requirements for the project, for which Product Owner was responsible. Being aware of possible changes during the process, we knew that keeping to the agreed plan is not effective – and here comes agile development which can easily provide adaptability and flexibility in responding to those changes.
Sprint Backlog – list of work that must be done during sprint, based on items from the product backlog. It’s owned by the Development Team which makes story points estimation so we could know the expected effort. Thanks to that we get a picture of iteration which must be done in each sprint.
Also known as iteration. It usually lasts from one to four weeks – in our case we had two sprints (two-week each). According to agile assumptions, each of our sprints ended with a product increment. For example, after the first sprint we had such features as question logic, set of questions, popups, all graphics from scratch, bugs animations, difficulty levels or starting and end screen. After the second one we did not only the rest of work but also fixed some issues and improved previous solutions – pure agile.
A meeting of the whole team at the beginning of each sprint, during which it was agreed which tasks should be estimated and performed during the sprint. The tasks were selected based on the Backlog and we estimated them based on Story Points and Fibonacci sequence.
Development Team short meeting day by day, which did not last longer than 15 minutes. As recommended by agile methodology, daily was always at the same time and in the same place. In our case, each meeting took the form of a stand-up call, which obliged us to present very concrete information about what was done the previous day and what was planned to be done today. It is worth mentioning that daily meetings had a huge impact on the transparency and flow of work, so in fact on the process efficiency.
Internal Scrum Master and Development Team meeting. It happened at the end of every sprint. The aim was to focus on what was done and is ready to implement in the next sprint. We also draw conclusions from the work done so far using action points. We were simply talking about what we should do next, what we should stop doing and… what we should still be doing. If everything was going according to the plan or if not, it could be improved during the next sprint – here it comes again, an agile approach about responding to changes and discovering the best solutions. We could also analyze the team’s velocity per sprint.
This time the meeting of the whole team, but mostly dedicated for the client to present achieved progress and goals. We talked about what was achieved, and what was not. At this point, we were able to praise our work before the Product Owner. What is important, as a team we paid a lot of attention to transparency and adaptability – we had one goal, so our common success was important and everyone felt responsible for the project.
Thanks to agile development best practices we were able to complete the project efficiently – from the first sketches to the last lines of the code – for the benefit of its quality and speed. Moreover, the use of agile methodology, especially scrum framework, allowed for a high degree of control over the work – such an important aspect in cooperation with interns or even new employees. Based on our experience, we can say that scrum is perfect for the first meeting with agile.
Technology stack in agile software development
We hope you are still with us! We already know how agile works and how our game was created, so it is worth mentioning the set of technologies we used. Let’s take a closer look at our tech stack.
So will you play agile?
In Liki we believe that agile project management (not only in software environment) is a great method that improves the process of project implementation while maintaining the highest standards. By engaging the client in the whole process we are up to date with his expectations, often changing throughout the process. Feedback plays a huge role. Being aware of the changes, we have solutions that allow us to react smoothly and adapt to new requirements. As a result of agile methodology, we can provide stunning products. Are you interested? Let us make IT!