Agile
Agile development has transformed the focus of software teams over the past few years. Instead of investing years in defining requirements, developers team with Product Owners (PO) to jointly define and prioritize user stories within a product backlog.
There are many flavors of Agile development that can be adopted—Scrum, XP, and Kanban, for example. Each has its own characteristics, but in general, all Agile development programs value the following:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
The focus on individuals and interactions over processes and tools moves engineers away from heavy documentation activities, in favor of spending time together to talk about user stories and estimate their story points.
POs work with scrum teams to introduce new user stories, groom the product backlog, and prioritize the stories that will be allocated to each sprint.
The velocity of a team is the measure of how many story points the team can develop within a sprint. As teams get better at working together, they tend to increase their velocity naturally.
Given the ability to design, develop, and field feature sets quickly, many IoT products and systems will be developed using Agile methodologies.