The core development team of the Digital Innovation Greenhouse (DIG) within the Office of Digital Education & Innovation (DEI) has been working together for just over half a year. In addition to working on specific initiatives, we have had a chance to reflect on how we accomplish our work. Accordingly, we have published our six Software Development Guiding Principles.
Life in the Digital Innovation Greenhouse is fast-paced: along with working on the development of existing tools within our portfolio, we are continually in the process of bringing new projects into the Greenhouse. M-Write is a recent addition to the Greenhouse’s crop of seedlings and it provides a good opportunity to apply our Guiding Principles to an actual project.
Innovation & Creativity
M-Write weaves together conceptual writing prompts, automated peer review, natural language processing, and personalized feedback. It’s not surprising there are no off-the-shelf products that provide complete solutions to the challenges presented by this complex pedagogical ecosystem. The task of investigating the possible constellations of tools that might be useful for M-Write will be one of the first tasks to be tackled by the DIG team. This will likely involve several brainstorming sessions that start with the prompt “what if we…”.
Understand Our Users & Their Needs
This is a crucial step and one that will occur early in the M-Write project. We will seek input from users — students, instructors and researchers. We are fortunate to have recently been joined by a Lead Behavioral Scientist (Holly Derry) and dedicated User Experience Designer (Mike Wojan) who will lead our User Experience Design Student Fellows to inform design decisions by conducting interviews and focus groups.
Minimum Viable Product (MVP)
With a clear idea of user requirements and the range of technological possibilities by which we would meet these requirements, our next step will be to partner with Anne Gere and Ginger Shultz, the Principal Investigators of M-Write, to specify which elements would constitute an MVP. A more traditional model of software development requires a full and final specification of a product before a product is built. Our more agile approach for M-Write will allow us to get a prototype out for user testing much earlier. Free technologies, such as Trello cards, support the process of generating the specification for an MVP.
By creating an MVP we have something our user community can actually use. Led by Rachel Niemer, our Director of Digital Pedagogy and Learning Communities we will start building up a sustainable user community and using feedback to inform changes. For example, did we get the natural language processing algorithm right? How could we improve the user interface? What challenges do instructors face in using the system?
Distributed Development Workflow
Since there will be several developers working on M-Write, we need ways to work in parallel and move quickly without stepping on each other’s toes. For example, a distributed workflow will help us manage the application’s code. We also use the git source code management system and a flexible workflow to review code changes. We designate a single individual as the “integration manager” and final arbiter for each project’s source code repository. Other contributors issue pull requests.
Automation helps increase our efficiency, reduce errors, and allows us to iterate more quickly. We’ll focus on automation in several areas: building the application, resolving dependencies, and testing. We use a container-based deployment environment for much of our work in DIG. Docker, Kubernetes, and OpenShift are likely to make up the M-Write deployment ecosystem. Unit and end-to-end tests help to detect new bugs and keep old bugs from reappearing. Automating this testing might be accomplished with continuous integration, although in the initial development phase this will likely be replaced by periodic testing and deployment.
M-Write represents an exciting new project for DIG and DEI, as we continue to unlock personalized, engaged, and lifelong learning for the U-M community and learners around the world. It is an innovative project that seeks to integrate disparate technologies, and provides a powerful demonstration of how the DIG Software Development Guiding Principles can be brought to life.