It's hard to believe its already been a year since I returned to Kansas State on the webteam. Throughout this year we've accomplished a lot and I wanted to reflect on some of those things.
One of the bigger items I pushed for almost immediately was getting our team developing on a consistent platform. Most of our team uses Macbooks, and while those are certainly easier to configure than Windows PCs, there are still problems with getting some software up and running. I'd had some previous experience with Vagrant and Salt Stack so we started using that build out an initial VM and configuration. This worked well, but eventually we ran into some issues continuing to use Salt as a provisioning tool and switched to Ansible which we still use successfully today.
Pulling and pushing data to different resources on campus is a pretty common pattern for the apps we develop on our team. Doing so often requires calling various web services all with somewhat similar patterns. We'd built up quite a bit of boilerplate code that we were pasting and then modifying in each project. Tired of this, we built a centralized API library that can be installed in any of our applications. Using this library, you can easily plug and play with various services around campus. This helps centralize our toolset and makes re-use simple and easy. I talked about it more in detail earlier this year in my blog post Wrapping Your API Calls for Fun and Profit.
We've always had some pretty good test coverage, but this year we made a concerted effort to do better. In addition to just spending time writing additional tests we started making it mandatory that we had Jenkins CI integration with each project. Since all of our projects require peer reviewed checkins via pull requests, integrating Jenkins wasn't too difficult. Each and every pull request that is opened automatically runs through a test suite and reports its status to our HipChat client and GitHub.
This year I'm excited about moving us to Python 3 and starting shipping with a locally hosted version of PIP/Localshop. I also want to restructure our application boilerplate among other things. I'm excited to see what this year has to offer.