Lessons learned from James Bach

Recently I was lucky enough to attend a full 3 day Rapid Software Testing course by James Bach himself. After the course I can say that course’s second name should be

  • how to clear out communication, avoid false assumptions and activities based on false assumptions
  • how to act good and avoid saying things you shouldn’t say
  • how to avoid waste and lead work in productive  direction
  • all this under peer and time pressure

According to James, it really is his goal to put participants think thoroughly before they act and to learn them not to fall for communication and logic traps.

This course would be useful not only to testers, but project managers, engineers and analysts too – all the people who have to make decision based on requirements and personal assumptions on this data. Moreover, James puts up nicely what testing is, what activities it consists of, and believe me – there are lots of hard, intellectual processes involved.

I can definitely say that it was very interesting to listen and observe – James speaks very good, he could become a good actor 🙂 The course itself is interesting too – participants are asked lots of obvious, for a first look, questions and answer obvious answers, often while doing exercises. Then James comes in with his questions and you realise you acted on wrong assumption and didn’t communicate well – you fell into a trap. You will realise how some obvious things are very complicated and how this complications can be easily avoided.

On the first two days you will learn about assumptions, how to avoid giving poor answers and avoid answering inappropriate questions at all. The last day was the most interesting – you will learn about exploratory testing technique and methods. You will hear stories and advices on documentation, automation and team work.

On the first thought I had mixed feelings on the course and was thinking that I didn’t learn anything useful that would change how I test things. But as two weeks passed, I realised that the course made me a whole better man (not only a tester) and things I’ve heard are still being processed somewhere in background of my mind. James’ bio and attitude alone motivate to become a better tester, better speaker, to be more proactive person. And hey, I’ve started blogging again thanks to it!

So if you’ll have a chance to take part of the course – go for it!


CHDK install on ubuntu linux

NB! everything you do is done on your own risk and I don’t  bear any responsibility on possible damage

CHDK (Canon Hack Development Kit) is a neat way to extend functionality of your pocket digital Canon camera. You can read more on the project wiki. This guide is done for personal reference and should be treated as such. Based on CHDK FAQ and bootable card manual.


  1. insert memory card into the reader
  2. open terminal and execute
    sudo dmesg
  3. in the output you’ll see
    [82219.970240] mmc0: new high speed SDHC card at address 97b6
    [82219.975070] mmcblk0: mmc0:97b6 SD08G 7.42 GiB
    [82219.975167]  mmcblk0: p1

    Where mmcblk0 is the device name for MeMoryCard

  4. run GParted in the terminal:
    sudo gparted /dev/mmcblk0
  5. in GParted unmount the memory card: select partition, right click -> unmount
  6. delete the partition from the card
  7. create new FAT16 partition with size of 16Mb and label it as chdk
  8. create new FAT32 partition on free space and label it canon
  9. apply changes
  10. Close GParted when
  11. unmount the card (if needed), This time from desktop icons
  12. remove and insert the card into the card reader
  13. Determine partitions’ devices, run sudo dmesg command again
    you’ll see

    20593.542629]  mmcblk0: p1 p2

    where p1 and p2 are ids of new partitions. So the device of chdk partition is /dev/mmcblk0p1

  14. Unmount the partitions (from the desktop)
  15. make card’s first, chdk, partition bootable: open terminal and run following command combination
    echo -n BOOTDISK | sudo dd bs=1 count=8 seek=64 of=/dev/mmcblk0p1
  16. mount the partitions again by removing and inserting the card into the card reader
  17. find out the version of you firmaware
  18. find the firmware you need, download and unpack it
  19. copy Diskboot.bin to chdk partition and CHDK folder to the FAT32 canon partition
  20. unmount the card, make it write protected by pulling the trigger on the card itself
  21. insert the card in the camera and enjoy CHDK

So thats about it, you can find more info on the project wiki. Feel free to comment and share you experience