Technologies, unlike biological creatures, are not subject to the same withering effects of time. But technology, like humanity, has its own history — and it shapes the industry as we know it today.
People often reflect on historical events to analyze where they’ve been in order to decipher where they should be going next. Similarly, many modern tech processes can still be traced back to older documented roots — 21 years, to be exact — when the Manifesto For Agile Software Development was brought to fruition.
In 2001, the Agile Manifesto revolutionized the software industry with a focus on responsive and flexibility-based ideas. Featuring four values and 12 principles, its approach was defined by a commitment to incrementally creating software through new releases and sprints. For many tech teams, those philosophies are extremely relevant two decades later.
The Four Values of Agile
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Technology has dramatically evolved since agile principles were first introduced. Frameworks like Scrum and Kanban have become increasingly popular. In a world of updates and automation, how can engineers still rely on a technical guide rooted in the past?
For Zach Hartman, a program manager at Bsquare, it’s easy. “Agile helps to keep our work balanced — we can prioritize and focus on what is most important while remaining flexible to the changing needs of the project,” he said.
After all, flexibility will never be obsolete. To learn more about the modern relevance of the agile manifesto and its continued pertinence to innovation, Built In Seattle caught up with Hartman and Senior Software Development Engineer Paul Grimes at The Pokémon Company, and we found out how they’re accomplishing future goals by looking back in time.
Does your team leverage the principles of agile in its methodology?
The Pokémon Company International (TPCI) leverages the principles of agile in a variety of ways.
TPCI has six core values: Passion for Pokémon, Challenging the Expected, Integrity and Respect, Dedicated to Quality, Building Relationships and Delighting Customers. These values are directly supported by the agile principles which are about satisfying the customer’s needs, collaborating with partners throughout the project, respecting and trusting the development team, delivering quality working solutions often and doing it in a repeatable, sustainable way. The agile principles give us a template for how to live our values as we develop software to both our internal partners and external customers.
As an organization, we are flexible in how the agile methodology is applied, and teams can experiment with different frameworks to achieve their goals. Teams choose to use Scrum or Kanban as frameworks to produce results, for example. The frameworks support the agile principles, which support our company values.
The agile principles give us a template for how to live our values as we develop software to both our internal partners and external customers.”
How do you ensure that agile principles are properly implemented so that they help developers and product managers, rather than hinder them?
Our teams determine how they work and deliver results, but there are some agile guidelines we have found that let our teams be the most productive and successful.
First, the development team negotiates with the product owner and stakeholders to set the goals for a project. Successful teams clearly define the definition of done so they know what the requirement for the work is. The development team also estimates the work and decides what work to take on for a given timeframe — not producers, managers or stakeholders. Then the team determines how much work to take on and what they can reliably deliver at the expected quality level.
We also have teams hold regular stakeholder reviews to demo and deliver the work. There are two goals in this: Demonstrate what was achieved in the last time frame and gather feedback on it, and second, communicate the goals of the next time frame. Other teams hold blameless retrospectives with demonstrable outcomes. They take both positive and negative feedback and put plans in place to improve the following cycles.
Our teams that most reliably deliver results are the ones that consistently adhere to these strategies.
Does your team leverage the principles of agile in its methodology?
Absolutely! While it does require some extra overhead, agile principles help our engineering teams deliver high-quality product commitments to customers consistently, on time and on budget. Agile helps to keep our work balanced — we can prioritize and focus on what is most important while remaining flexible to the changing needs of the project.
It also allows us to get early feedback from the customer if we are headed down the wrong track due to misunderstood or incorrect requirements. It’s much cheaper to change course when you catch something early. Finally, because agile processes generate clear commitments to be delivered within a compacted time frame, it improves the efficiency of our teams by reducing time lost to work that is less essential.
Because agile processes generate clear commitments to be delivered within a compacted time frame, it improves the efficiency of our teams.”
How do you ensure that agile principles are properly implemented so that they help developers and product managers, rather than hinder them?
We do our best to have a clean backlog of work where requirements are clear and create individual tasks to deliver the work. All work items — whether customer deliverables, technical debt items or documentation — are ranked in priority order in the backlog and assigned to contributors during sprint planning according to capacity. If the customer identifies an urgent need while a sprint is already in progress, we can add it to the backlog to be picked up in the next sprint.
We use daily standup to check on the progress made to deliver committed work so that if anyone needs help, they can get it quickly without time lost to churn. At the end of each sprint, we demo the completed work to the customer to confirm it meets their needs. A program manager with agile training oversees these processes and serves as the primary link to the customer, ensuring the customer needs and engineering team’s focus are in alignment at all times.