I was working at my first internship in the technology sector of a Fortune 200 company. Being a part of a product development team, I heard so much terminology that seemed unfamiliar: buzzwords like Agile, Kanban, Scrum were unknown to me but carried lots of value. By using context clues, I deduced that the primary meaning of these words had to do with efficiency.
The world, especially the technology industry, is very competitive. Everyone's out to release the best product as fast as possible. How are companies able to develop and produce so quickly? These terms may go over the heads of an early professional at first, but they are critical to the process of project and product development. These buzzwords fall under the agile umbrella, a way of working that’s been acknowledged as an optimal organizational process for development. Once acclimated to the agile methodology, I understood its importance to the development process at my internship.
What is Agile?
Agile is a set of principles and a collection of beliefs intended to help teams make the most effective decisions. It is an iterative approach to project management - instead of tackling big, long term tasks, an agile team works in smaller increments to produce the end product. The purpose of the agile process is to give a foundation for making the best decisions during development. Projects are evaluated frequently so teams can respond to change agilely. This methodology encourages collaboration within the team and with customers to create a shared vision and bring it to life. The agile method is not set in stone; it is meant to be flexible and can adjust to a product/software development team’s needs. To learn what it means to be agile, a good starting point is the short but critical Agile Manifesto.
The Agile Manifesto
The Agile Manifesto consists of four values and twelve principles:
Values
1) Value individuals and interactions over processes and tools
The most effective method for sharing and retaining information is through face to face conversation. It builds trust and motivates the development team. An open, collaborative environment leads to the best results.
2) Value working product/software over comprehensive documentation
Documentation can be useful, but not when there is no working product. Create the product first, then write in-depth documentation.
3) Value customer collaboration over contract negotiation
The end goal is to satisfy the customer’s needs. Continuously update the customers with progress, and request feedback. The contract will come after!
4) Value responding to change over following a plan
A plan is good to have, but the ability to adjust is even more important. Obstacles or ideas can pop up on the fly.
1) Customer satisfaction is the highest priority through early and continuous delivery.
2) Accommodate changing requirements throughout the development process.
3) Frequently deliver working products
4) Maintain collaboration between business stakeholders and developers throughout the project
5) Support, trust, and motivate the people involved
6) Enable face to face interactions for an effective method of communication
7) A working product is the primary measure of progress
8) The agile process promotes sustainable development. A constant pace should be maintained
9) Attention to technical detail and design enhances agility
10) Simplicity
11) Self-Organizing teams encourage great architectures, requirements, and designs
12) Regular reflections on how to become more effective
The motto of the manifesto is simple. “We are uncovering better ways of developing software by doing it and helping others do it.”
Frameworks
When it comes to working agiley, there are two popular frameworks: Kanban and Scrum. Sometimes a hybrid of the two are used to fit the needs of a development team. These frameworks establish a plan to ensure the work progresses smoothly.
Kanban
The Kanban framework relies on the Japanese Kanban board, first implemented by Toyota in the 1940s. This board's purpose is to standardize the workflow, allowing for work items to be visually tracked. The development team and any partners can easily see action items, current work, and what has already been completed. It requires full transparency and real-time communication to be effective. If used correctly, it allows for better flexibility and fewer bottlenecks.
Scrum
The Scrum framework serves the same purpose as Kanban, but in a different style. It starts off with a backlog, a dynamic list of work that might be needed for the product. Next are the sprints, wherein people set goals for the upcoming period (usually 1-4 weeks) to tackle a set of backlog tasks. Teams have short meetings (daily scrums) to update each other on their progress in the sprint. At the end of each sprint, they show business partners and customers what has been done, and have a sprint retrospective to analyze what could have been improved. They also plan out the next sprint. Scrum gives teams an empirical, hands-on, substantial foundation, allowing them to deliver more frequently than if they had been using a non-agile method.
Wrap Up
The agile method can take the place of standard approaches for development, especially for teams looking for a flexible approach. Even though primarily used in the software industry, it is not exclusive. The agile methodology can be implemented in any business, and is a non-linear plan to help crush requirements.
Comments