Writing a Ruby Related book(let) on LeanPub

I wrote “Fast Feedback Using Ruby” using LeanPub. The original version was published back in 2015. Since I’m updating it to cover the most recent (at the time of this writing) Ruby 2.7 and RubyGem versions. I figured, it’s a good idea to leave a trace of my workflow and setup. 🙂

My workflow look like this:

  1. Edit Text (or image) file
  2. Save file to local disk
  3. Commit to local Git repository
  4. Push to GitHub
  5. Generate preview PDF on LeanPub using a (post push) web hook
  6. Have Leanpub automatically push files to Dropbox
  7. Have Dropbox synchronise PDF file to local folder
  8. Restart at 1
Writing workflow using LeanPub, GitHub and Dropbox

Whenever I push changes to GitHub, a new preview of the book is generated and sent to my computer. This means I get frequent and fast feedback about how the newly written text looks.

This nicely fits my working preferences and it also matches the topic of this particular book.

Homebrew & Pinning Versions

I recently started using Tomcat for a project I’m working on. Since I work on a Mac and am using Homebrew anyway, the installation was as easy:

brew install tomcat

The location of the installed files is /usr/local/Cellar/tomcat on a Mac, BTW. Now, occasionally and out of habit, I run this:

brew update && brew upgrade && brew cleanup

I prefer (usually) small issues with small version jumps to upgrading rarely with bigger version changes (and issues). Also cleaning up seems a good idea, not only on the working desk or kitchen sink.

This time, though, the upgrade removed the previously installed version of Tomcat — including stuff that I had put into a sub folder of the location given above. Not only was the Tomcat installation upgraded, but everything I’ve put in there was gone. 😳

Lesson No. 1: Maybe I shouldn’t have put the stuff there in the first place.
Lesson No. 2: Learn how to pin a version of installed software, when using Homebrew.

It’s easy. Use, for example

brew pin tomcat

to, well, pin the tomcat version. To find out later, when you want to upgrade a piece of software and wonder why it does not happen, use

brew list --pinned

to find out, what software is pinned. Last but not least, a package can be unpinned using:

brew unpin <package_name>

Reading the Homebrew FAQ is also a good idea.

Agile Testing Days 2016 — Part 3: Tutorial Day 1

This year at the Agile Testing Days, I attended Samantha Laing and Karen Greaves 1/2-day workshop “The Collaborative Team”. It turned out that there was just one other participant in this tutorial, so actually it was much more like a private coaching session. A big thank you for offering the session anyway and making this possible.

The information and exercises were all about building and keeping trust in the team. I found it very interesting that, in order to increase the trust level, it is also important to know what the team can (and can not) influence.

Knowing this, makes it easier for teams to cope with undesirable situations. For example one of my recent teams was moved out of the building where most other teams are located, to a place some minutes walking down the road. For me, it was much easier to understand and accept this, after we learned about the reasons management gave us. — I still didn’t actually like the situation, but at least it was clear why this decision had been made.

This is a theme we touched in the tutorial time and time again: Talking and listening to each other helps immensely.

Another important takeaway for me were the exercises about the power of questions. The ability and patience to listen to people until they have spoken is so important. I have been given solutions (or suggestions for immediate steps) so often, when instead it would have been important to first understand the problem in more detail, rather than providing the tips that came to mind first. — I admit that I have done this, too.

With the experience from this workshop and the material we were given, I feel much better prepared to help teams improve, not limited to software testing but also in the topics we covered in this coaching session.

I liked the half-day format of the session a lot for two main reasons. First of all, this coaching session with two coaches and two attendees was very intensive and a little bit exhausting (but in a good way). Second of all, I had a free afternoon that I was able to spend in the beautiful city of Potsdam. 🙂

Thank you very much Karen & Sam and of course co-attendee Elena! If you have the chance to get this kind of session at a conference (or elsewhere), I can only and full-heartedly recommend it.

My ‘Day 1’ of this conference ended with a delicious speakers dinner in a very festive atmosphere.

agiletd-2016_conference-dinner_s

The Agile Testing Days 2015: Nuggets

The opening session of the Agile Testing Days 2015 was Western-themed and Janet Gregory and Lisa Crispin asked the audience to watch for gold nuggets at the conference — particularly valuable information or other things we would take home. I (actually my alter ego Super Agile Person) was invited to present my suggests at the ending session. So these are the nuggets I found at the conference:

  1. I got a Calgary Stampede hat from Lisa and Janet. Thank you so much!calgary-stampede-hat_2It’s great, it fits and it even has inner values printed on the inside:
    1. Commitment to Community
    2. Integrity
    3. Pride of Place
    4. Western Hospitality

    The first two of them are particularly applicable in all communities.

  2. In their opening keynote Alex Schladebeck (violin) and Huib Schoots (trombone) connected music to testing and played music too. They even handed out a large number of kazoos to the audience to play along with them!
    I find the connection they drew fascinating, since other presentations I attended this year presented connections between testing and other activities. Two examples from FullStackFest are Ernie Miller‘s talk “How to Build a Skyscraper” and Lauren Scott‘s presentation “Shall I Compare Thee to a Line of Code?“.
    I’m thinking about other connections, but that’s another blog post.
  3. Many people use templates to write user stories or charters for exploratory testing sessions. A widely used user story template is this:
    As a &lt;role&gt;;
    I want &lt;feature&gt;,
    so that &lt;benefit&gt;

    While these templates can be very helpful to start, they are also somewhat limiting — and can lead to outcomes like ‘As the product owner I want feature X, so that feature X can be used’. This is not — repeat not — how the template is used well.
    While templates can be worthwhile to get started with using user stories (for example), they can become too constraining as a team becomes more proficient in using them.
    In that case, I suggest to use the term Free Style User Stories and Karen Greaves already helped me spreading the word:

    Thank you!
    This too, will be covered in a future blog post.

  4. Finding followers and starting a movement is possible for everyone. This was a popular topic in a number of sessions, Dr. Sue Black‘s keynote “If I Can Do It, So Can You” in particular.

Note, ‘nugget finding’ is not limited to conferences! What are the nuggets you found in the past week?

Announcement: Workshop & ebook: “Fast Feedback Using Ruby”

At the “London Tester Gathering Workshops 2015” (also see #LTGWorkshops on Twitter) I offer a workshop “Fast Feedback Loops & Fun with Ruby”. For this, I wanted to give attendees a handout, to make applying the stuff covered easier and it was planned to be a list of brief recipes.
Suffice to say that the handout grew (and it’s entirely possible that this is ‘feature creep’ in action). In fact, it grew to the point that I decided to turn it into an ebook. The book is not done yet, there’s some copy editing to do.

Fast Feedback Using Ruby

In any case: There will be an ebook, and it will be available on LeanPub at https://leanpub.com/fastfeedbackusingruby/. If you’re interested, please leave a note on the book’s pages.

%d bloggers like this: