I have just finished some fantastic Ruby & Cucumber training with the most affable Chris Parsons.
There are some definite lessons to be learned (other than writing Cukes with Ruby)…
This was a workshop of firsts for me:
- first “programming” workshop
- first time working with a Mac (that’s a bit of a lie, I’ve had the machine a week)
- first time setting up Ruby (& on 3 different versions)
- first time writing Cukes
- first time writing Ruby with an application in mind (not just Codeacademy)
So yeah, I’ve learned a lot.
I spent Friday afternoon with a willing colleague to help get my machine ready for the course. We went through installing RVM, Bundler, Ruby & Cucumber & to be honest, smug mode was engaged.
What I didn’t consider was that I’d only configured 1 environment. Silly Duncan not knowing that. Good lesson in knowing & understanding your machine set up though!
In all the confusion I started getting left behind as I didn’t want to hold the rest of the class up who apparently were far more capable than me. Smug mode was swiftly disengaged.
I could feel myself mentally checking out. The excuses started coming out: “I’ll just catch up at lunch”, “I’ll be doing this stuff on the job anyway”, “I wont need to write Ruby” “Testers don’t need to code”
This was bad. I need to know this Ruby & Cucumber shenanigans & this course was a great opportunity to learn it. C’mon Duncs, don’t blow it.
Eventually I fessed up & asked to return to a previous slide. Turns out it wasn’t just me getting behind.
I really struggled on Day 1 (Ruby focused) & it helped me remember why I’m not a fan of programming. I got through the day, but my “to follow up” notes were pretty long. I was very aware of the amount of content we needed to get through & that I was the weakest programmer in room so I didn’t to slow the course down.
That night was spent learning more about blocks, closures, maps, modules, classes… pretty much the content of the day. It still didn’t go in, so back to my colleagues the following morning before class to get some authentic problems from the teams code – that really helped.
Day 2 (Cucumber focused) went better as I have a better grasp of ideas & principles behind Cucumber & BDD – I could actually contribute!
I’m still not sure how I feel about Cucumber as a (collaboration) tool. I like the idea behind it, but I can see how it can quickly & easily become an extra layer of complexity if not used for its intended purpose. I’m really keen to get stuck in to using Cucumber & see how my team uses it – will be great to get some practice to support the theory.
Day 3 was focused on knowing how to apply the knowledge gained in the course to our projects. I love this idea – what a great way to link the training to our work. Unfortunately I had little to contribute by way of project work, but there were some other great ideas I got stuck into.
An example included a Programmer who was concerned that the Cucumber scenarios were taking too long to run (when committing) because they included not only the happy path scenarios but also all the different edge cases. We spent the morning refactoring the feature files directory structure & some of the scenarios within the feature files to help improve the scenario execution time.
Overall, the 3 day course has provided me with a pile of ideas & resources to wade through. Its been a great introduction to Ruby, Cucumber & BDD. “A moment to learn, a lifetime to master”
If you get the chance to attend a course run by Chris Parsons, I’d highly recommend it. He knows his stuff & he knows how to deliver it 🙂
BTW – how easy it get used to the Mac?! Happily sliding 2 fingers around my Acer keypad to scroll around – not working…