I’m working with my colleague Richard Scoville, Ph.D., to develop a dashboard display of data for an improvement collaborative—30 organizations that are working in parallel to improve dental health for thousands of patients.
We want to explore how fast we can build a useful web application using R and the Shiny tools created by the RStudio team.
We’ve decided to use the GitHub version control system in our dashboard development.
Simultaneous with the start of our dashboard project, I’ve been reflecting on the power of 5S to provide insights for my clients.
5S is shorthand for five terms starting with the letter S translated from Japanese and defines a disciplined way to organize and manage workplace.
First articulated in Japan in the 1960's by Hiroyuki Hirano and integrated by Toyota into the Toyota Production System, 5S certainly applies to our development project and the application to our project helps me understand 5S practice.
Seiri (sort to keep the useful, eliminate the useless) and Seiton (systematic arrangement of tools and supplies) are the first two stages in 5S. A key tool to keeping useful scripts and arranging our scripts and files is a version control system. We're using GitHub.
A version control system eliminates the need to create multiple copies of key scripts—my old habit involved appending a date to my files and storing every file in a folder for the project. That manual system required effort and made it difficult to locate changes.
Using the GitHub web-interface allows us to collaborate, to see the current working version of the code and to document issues in one place (Figures 1 and 2). While Richard and I have used Dropbox on other projects, we are still stuck with the proliferation of files as we make changes over time. And as a technical note, my R development tool, RStudio, seems to interact with Dropbox in ways that slows down the work flow on saving files—so I don’t like to save my R working directory on Dropbox.
Simultaneously, GitHub’s desktop interface shows the history of changes to each file, without the need to manually date stamp and save versions (Figure 3).
Github also allows us to organize issues and questions in one location, eliminating my former practice to send emails and then keep track of the answers (Figures 4 and 5).
Again, GitHub reduces useless effort in keeping track of emails, organizing the history of our development.
Effective use of version control requires me to synchronize my local work with the web version, naming the changes as I work --small batches of changes are better than big. I’m not down to one line code flow but now aim to group small changes to make it easier to unravel if things go wrong. Each topic completed—e.g. revising the function script to include data cleaning functions—demands a new sync.
The practice of regular syncing keeps the digital workplace clean, the essence of Seiso (shining or cleaning).
Finally, GitHub has other features that help keep our documentation organized, for example a Wiki to document ideas and intentions and an easy way to set and assign milestones (Figures 6 and 7).
So, we’re eager to continue to use GitHub in our projects, to increase productivity through better work discipline.
If you are interested in our dashboard work, send me an email (klittle at iecodesign.com) and we’ll figure out ways to collaborate, conditioned on protection of client information.