Developers at RocketBuild have a consistent routine during the morning work hours. Come into the office, get setup at your desk (or couch if you’re at home), maybe clean up some leftover tasks from yesterday, and probably drink coffee or chat about meeples. Standup time comes, and you literally come to your feet to join the team in giving updates. Then you get to work.
That is, until one day while participating in stand up, your turn comes up and you proclaim, “I’m taking a CI day!” After stand up you excitedly don’t “work” in the traditional sense. Instead, you finally get to tackle learning about that ORM library, or check out that new feature in WordPress, or spend time building out that awesome tool that will make you and your teammates wonder how you ever lived without it. CI days can be pretty much anything you want them to be. They exist as dedicated time to Continuously Integrate new features into the project’s various server environments….
CI days exist as dedicated time to improve yourself, your team, and your company. That isn’t to say learning doesn’t happen naturally through our normal work schedule. We have a variety of projects coming through our doors that have unique challenges, and eureka moments happen all the time. I haven’t met a developer yet that doesn’t love that feeling of solving a problem. It’s one of the core drivers to how we learn and grow day to day. It’s almost an addiction.
However, in the real world of building software, there are budgets and deadlines that need to be met. Sometimes the overhead isn’t there to really dive into the next great thing. And without an outlet to the ever-changing landscape of software development tools and practices, you’ll soon find yourself out of date, stuck in the ‘old’ way of doing things. Sure, you can spend time outside work to investigate new technologies, but we want to do more than that. We want to facilitate self improvement. “Continuous Improvement” is one of our core values after all. CI days are a way to enable that.
So over time, every developer accumulates points in their CI bank. These points are treated just like Story Points (the value we use to budget our sprints) and can be scheduled as such. When a developer has points in the bank, they can have those points scheduled into a sprint and use that time to do anything they choose.
The short version is: we make sure there is dedicated time for developers to improve.
Now, it would be a little unfair (i.e. hugely unfair) for a developer to take a CI day and never let the rest of the team in on what they’ve been up to. So after finishing doing whatever it is they did, they write about it and present to the team during demo time at the end of the sprint. But here’s the fun part: Now we’re going to share our discoveries with you!
Subscribe to the Rocket Blog and you’ll learn what we learn right alongside us. As each team member finishes their Continuous Improvement day, we’ll post about it and share all that learning goodness with you. If those posts bring up questions for you or your clients, we’d love to hear about it, so give us a shout at firstname.lastname@example.org.