Instructure software development projects move through a series of phases in an agile revolving process. Here is a little insight into our development process. Learn about idea creation and the feature idea process.
High-level product priorities (roadmap) for Instructure products are reviewed and updated every month. At any time in this cycle, the roadmap contains numerous priorities that move fluidly through the process of development.
During the Discover phase, the Product team concentrates on understanding the basic needs of users that drive 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. Then the task of creating the software is broken down into as many discrete tasks as possible and a plan is developed to deliver benefits to the users in a series of stages rather than making them wait until all development is completed. Learn more about this process in the Methodology section below.
During discovery, the product team may:
In the Product Roadmap, any idea conversations relating to priorities being released in the next three months are included with the roadmap content.
Other discovery projects may be in the early stages of the software development as noted in the Idea Conversations Discovery phase.
During the Design stage, all possible solutions are explored and evaluated. Sometimes the right solution is obvious and narrowed to a few options, relying on customer feedback to get to the best solution. Think of this stage like 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.
The Release stage is when users will first see a priority (or part of a priority) emerge in Release Notes. The date of the release notes indicates production 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.
Once a feature reaches the Evaluate stage, our product team looks at the success criteria defined in the Discover stage to determine if success was achieved.
Instructure developers subscribe to the Agile software development methodology, which describes this cyclical process. When the user community suggests an idea and it receives a high rating, it is evaluated it to see if it can fit within existing priorities. If it is an easy update or something that could 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.
Community input is very important in all stages of this process. The Community Team collaborates weekly with the Product Team regarding ideas that align with defined priorities or are rising to the top of the open forum. Feature idea relevance to a priority, user demographic, ratings, and comments are just some of the factors taken into consideration.
Every idea is important. Constant roadmap updates, in combination with Agile software development, makes every idea worth submitting. Ideas may be a simple easy update, align with a priority in an unexpected way, spark a new priority added in the new cycle, or be a great idea that sits in waiting for future development. If you don't submit your idea, you'll never know. However, before submitting a new idea, be sure to search for similar ideas.
An update might seem simple—however, there may be a few reasons why it's not as simple.
First, behaviors commonly overlap, and sometimes that other behavior may be more complex. Creating the right solution that resolves overlapping behaviors takes a little more time.
Second, updating a component of the core product (e.g. discussions) may cause a ripple effect to these enhancements that needs to be tested and assessed for quality assurance, documented, and communicated to all users. There are efficiencies inherent in making several changes at one time rather than constantly changing all components with equal frequency. Also, sometimes a simple change cannot be made until another, more complicated component is updated.
Your continued support and participation in the community forums are very valuable to Instructure products and to the user experience. We urge you to keep sharing, commenting, and rating.