SPI and Agile Software Development
At SPI Software, we constantly look for new, innovative ways to improve our software development processes. One of our improvements was the adoption of agile development methodologies. Since that adoption, we have already experienced significant positive results in our ongoing software development efforts.
What is agile software development?
Agile software development is an approach to software development whereby the functional requirements and their solutions evolve via a collaborative effort of self-organizing, cross-functional teams - the successful merging of proven iterative and incremental software development methodologies.
The most popular agile methodologies include Extreme Programming (XP), Scrum, Kanban, Crystal, Dynamic Systems Development Method (DSDM), Lean Development and Feature-Driven Development (FDD). All of these agile development methodologies involve continuous planning, continuous testing, continuous integration, and continuous evolution of both the project and the software.
Agile development methodologies used by SPI:
Out of the list of possible agile methodologies, SPI has currently focused on implementing 2 of the most popular methods – scrum and kanban.
Scrum: Scrum is a popular agile methodology. SPI has chosen scrum because it provides the framework that allows our SPI development teams to self-organize and quickly make changes to our development processes so our teams can work more effectively together and thereby accomplish more.
Scrum roles: There are three specific roles in the scrum framework that form the scrum team.
Product owner: The product owner represents the stakeholders and the customer. The product owner defines the product in customer-centric terms called “user stories”, adds those user stories to the product backlog and then prioritizes the backlog based on importance and dependencies. The product owner has the authority to determine what goes into the final product.
Development team: The team of developers who collectively are responsible for all the work required to produce the working product including analysis, design, development, testing, technical writing, etc.
Scrum master: The scrum master is a facilitator who manages the scrum meetings and processes for how information is exchanged. The scrum master also helps the development team avoid or remove any internal or external impediments to its progress.
Product backlog: The product backlog is an ordered, prioritized list of the tasks and requirements needed for the product.
Sprint: Scrum focuses on a development and delivery cadence called a sprint - a predetermined development cycle timeframe that usually is about 2 weeks. The team is assigned a set of tasks from the product backlog that must be completed during each sprint.
Sprint commitment: A initial meeting where the team reviews the open product backlog and jointly determines and commits to the tasks that will successfully be completed in the upcoming sprint.
Daily scrum: Daily stand-up meetings where the team communicates progress updates, discusses roadblocks (any impediments to the development processes) and determines improvement strategies.
Sprint retrospective: Each sprint ends with a meeting where the functionality developed during the sprint is demonstrated to the product owner followed by a team retrospective discussion about what went well during that sprint and the processes that can be improved during the next sprint.
Kanban is a scheduling system for just-in-time (JIT) development projects. Kanban works extremely well with a scrum development methodology as it works as a fan-in and fan-out process where the team pulls tasks from an intake board (product backlog) and funnels them through a staged development process until they are completed.
Popular agile development tools used by SPI:
Visual Studio Team Services: A Microsoft cloud service for collaborating on code development and agile project management. https://visualstudio.microsoft.com/team-services/
Jira: A cloud-based service for bug tracking and agile project management. https://www.atlassian.com/software/jira
5 benefits to SPI by using agile development methodologies:
Higher quality software: Agile methods have excellent safeguards to ensure quality software by taking a proactive approach to development processes that prevent product problems
Increased collaboration and ownership: The development team, the product owner and the scrum master work closely together daily. Daily scrum meetings let the development team organize around work completed, future work, and roadblocks. During sprint retrospectives, the development team can demonstrate and discuss the product directly with product owner.
More relevant metrics: The metrics agile project teams use to estimate time and cost, measure project performance, and make project decisions are often more relevant and more accurate than metrics on traditional projects.
Improved performance visibility: On agile projects, every member of the project team knows how the project is going at any given time. Daily scrum meetings, sprint retrospectives and visible progress charts offer concrete methods of measuring progress.
Increased project control: The many opportunities to continually inspect and adapt throughout the lifecycle of agile development projects allows all members of the project team — the development team, product owner, scrum master, and stakeholders — to exercise control and ultimately create better products.
Conclusion: SPI has successfully woven agile development methodologies into the fabric of our software development processes to provide a framework of continuous planning, testing, integration and evolution. Developing in sprints ensures a short period of time between the initial project investment and a comfortable confidence that the product and development methodologies will succeed.
We not only use agile methodologies for our software development at SPI. We also use agile methods to empower everyone at SPI to collaborate and to make decisions together quickly and effectively as a team thereby extending our 35+ year history of providing outstanding vacation ownership software for Resort and Vacation Club Management.
Michael del Pino
Michael’s extensive experience in software development for scaled business applications includes software design for the timeshare industry. As the head of SPI’s Software development, Michael will focus on leading the development team as they create and enhance SPI’s comprehensive timeshare management offering. Michael served in the past as SPI’s Lead Software Engineer where his role was focused in software customization and implementations. Michael is passionate about delivering technology that solves real-world issues through a methodology of effective collaboration between SPI development and its customer base.