What is the feature development process for Instructure products?
Instructure software development projects move through a series of stages in an agile, revolving process. This guide provides insight into that development process.
Learn more about idea creation and the feature idea process.
What is the Development Process for Instructure Products?
High-level Instructure product priorities are included in the Product Roadmap and are reviewed monthly and updated quarterly. The Product Roadmap contains numerous priorities as they move through the development process stages.
Discover
During the Discover stage, the Product team learns about the basic needs of users to understand what drives their behaviors. By studying people's actions and asking questions about what they are trying to accomplish, the team hopes to understand the basic goals of the people using the software. Once they have an understanding of these basic needs, they can define, at a minimum, what functionality the software must provide. Design and development are then divided into a series of discrete tasks, and a plan is created to deliver functionality to users in stages throughout the process. Learn more about this process in the Methodology section below.
During discovery, the Product team may:
- Visit sites to interview users
- Survey users
- Review Community content (Ideas, Blogs, Question Forums, Instructure Live sessions, etc.)
- Review support cases
- Collect feedback from Customer Success Managers (CSMs)
Design
During the Design stage, all possible solutions are explored and evaluated. Think of this stage as developing a proof of concept.
Develop & Test
When a product priority is in the Develop and Test stage, engineers are actively building pieces of the solution and testing them against success metrics. As individual components are built and tested, they inform the design and best path forward for the components that engineers will work on next, allowing for a better overall solution than if each component were built in isolation.
Release
The Release stage is when users first see a priority (or part of a priority) emerge in the Release Notes. The date of the release notes indicates availability for the included features. For Canvas, all features are available for testing in the beta environment unless otherwise noted. The beta environment allows users to explore new features without affecting their live data.
Evaluate
Once a feature reaches the Evaluate stage, the Product team looks at the success criteria defined in the Discover stage to determine if success was achieved.
What Methodology is Used for Development?
Instructure developers subscribe to the Agile software development method. This method is an industry best practice and helps developers evaluate feedback or projects to see what can fit within existing priorities.
For a simple update, or something that can realistically fit in between larger development projects, Instructure tries to get it done immediately. If it is too big to squeeze in, but it is something we think is important, the update goes into a holding pattern for consideration in the next cycle.
How Does Instructure Determine What to Develop?
Like many things, product management is both an art and a science. When determining what to prioritize and develop, our team uses the below criteria as a guide to make informed decisions about which problems to solve and when. This criteria also applies to all features regardless of where the feature generated (e.g. a Community submitted idea or feedback from user interviews led by the Instructure Product Team).
Opportunity Assessment Criteria | Description |
---|---|
Value Impact | Does this create new value for our users? Does this improve an existing experience? |
Reach of Impact | Does this create value for current users? Does this serve a new user group? How many customers would benefit? How often would they use it? |
Strategic Alignment | Does this fit strategically within our current product/service offerings? And how does it align to our future strategy? |
Feasibility | Is this technically feasible? How are we positioned to solve this problem? |