I am happy to announce that all Synapse source code is now posted on the Sage Bionetworks GitHub site. Of course, since Sage is a non-profit institute focused on promoting open science you might fairly ask why this is news now, over a year and a half after we started initial coding. Why wasn’t the code up on GitHub from the very beginning?
Well, in retrospect maybe we should have started that way from the very beginning. I doubt it would have hurt anything, and it may have actually facilitated a collaboration or two that we missed out on over the initial stages of the project. In our initial months at Sage, our team didn’t know what we had, or what we were doing, or if people would care at all about our vision. We picked a set of development tools that were familiar and powerful (Atlassian’s hosted suite) and just focused on prototyping ideas and evaluating base technologies. At the beginning our co-workers didn’t even pay much attention to what we were doing even though they were the customers we were supposed to be supporting. It took some time for the vision of Synapse to form, and for us to start getting people interested in what we were building.
Once the project was underway, adding more functionality always seemed to take precedence over taking time to think about how to effectively get other to collaborate on development. It was really only at the Sage Congress last April where we started demoing the product and felt enough traction forming within the community that we started believing we were seriously on to something. There’s still an awful lot of new functionality we desperately want to start working on and it’s quite tempting to dive straight into coding again.
However, we’ve now bitten the bullet and taken the last month to focus on not just moving code to Git, but also trying to structure our codebase and development practices to facilitate having other developers come on to the code base. We’ve refactored the code base into smaller pieces, are putting more effort into developer docs, and thinking about how to review and incorporate check-ins from external developers. We’ve had our first of a three new engineers start recently: a great young student on internship which is a good chance to do a dry run with a fresh set of eyes. We’ve got more open positions I’m working hard to fill, but even more ideas than people who can implement them. Hopefully taking the time to do this right now will let us more fully engage the community on the development front in the future.