Today at Bitmaker Labs, we spent the first part of the morning working on meta-skills. The theme of this module is that software projects rarely fail for technical reasons; usually it’s due to poor communication. Technical skills will only get you so far. Once you’ve put your 10,000 hours in, it gets exponentially harder to progress by addressing only the engineering side of the equation. The best developers will always have a good balance of communication skills and technical skills.
We did a few group exercises to show how difficult it is to describe even the simplest of abstract concepts using nothing but words. When someone is receiving instructions on how to do something, they ultimately must make a lot of decisions for themselves, and these decisions may not align with what was expected.
In the afternoon, we were introduced to Git. I’ve played with Git while working through the first chapters of Michael Hartl’s Rails tutorial, but it’s much different when you’re collaborating with others on the same project. Seeing how teams are able to use Git to work on the same project, even on the same file at once, was a real eye-opener. We dove right into dealing with merge conflicts: as an exercise we decided to see what would happen when 20 people all pushed separate commits to the same file at once. Needless to say, it was a bit chaotic, but that’s a good thing. Learning only the “happy day” case would only instill false confidence.
It’s really hard to believe it’s only been three days.