This is the second installment of our Intern Diaries series, wherein each week our lovely interns try to give you the inside scoop on what being a programming intern at a high-tech startup is really like. Click here to read Part 1.
Here I am, a few weeks into the coolest summer of my life. Usually I take classes, “work” by the pool, and travel. At SoftArtisans, I’ve been a bit more productive. I’ve seen the usefulness of git and scrum, spent hours figuring out the few characters that determine a spreadsheet’s fate on an ipad, learned more than I’d ever thought I’d know about Excel spreadsheets, and even had a bit of fun. Without a doubt, the best part here has been seeing my work go straight into OfficeWriter. At Olin, nine out of ten times, my finished projects end up on a shelf or in some folder as a keepsake. Maybe I’ll break it out to show someone, but I rarely use them after they’re done. Here, I did work that was released a few weeks later. What I did as an intern could be used by people right now. It is quite the feeling.
So far, the most interesting thing I have learned has not been in the software, or even on the computer. I had never heard of scrum outside of the rugby field. Once I did hear about it, it still didn’t make sense to me. Why would you plan everything only two weeks in advance? How could a team function without a project manager? Why would you spend precious time every day telling people what you had done the day before?
So before I continue, the quick scrum explanation: work is divided into segments called sprints, which last a few weeks. Before each sprint, all the work that needs to be done over the next few sprints is broken up into smaller tasks and assigned a point value based on how long it will probably take and prioritized based on how important it is to the product. On the first day of the sprint, the team chooses what tasks they could definitely get done that sprint. Each day, there is a quick meeting where everyone simply and quickly explains what they worked on the day before and the challenges they faced. Finally, at the end of the sprint you have a meeting where you look back over the sprint and discuss what worked well, what didn’t, and what needs to change.
It took me a little while to understand how this makes people more productive. All these hours that developers could be developing are used to talk about the work. The thing is, doing lots of work is ultimately useless if that work is useless. Scrum helps keep the work productive and manageable. There are no lofty deadlines and huge tasks. It is like promising to climb a decent-sized hill every week, rather than a huge mountain in 3 months. When climbing a hill, if you’re going in circles and not getting any higher, you’ll know in a day. On a mountain it is often difficult to tell that you made progress that day. You could be going down trails that get you nowhere and not realize for a week. With hills you have something accomplished every week that you can cross off and be proud of. I’ve already decided to try this with my school work this coming fall. I still don’t understand every aspect of scrum, but I am sure they will click soon enough!