I think pairing is by far the most effective way to learn a new code base and have a lot of fun along the way.
I do love observing how other developers work, how they setup their machines, what tools they use, what keyboard shortcuts they use and so on. There is so much that you can learn simply by observing and coding on a machine different than yours.
In the last two days, I paired with two colleagues in dealing with support requests and on some UI work for product licensing.
Let me capture the most interesting things I observed:
- I have seen very effective use of multi color high precision pens to draw architectural diagrams and organize support tickets status on a notebook.
- New keyboard shortcuts in Visual Studio (CTRL + G and CTRL + ALT + Left Mouse Click)
- Heavy use of git from the command line. This motivates me to do the same. Hardcore dev 🙂
- Console2 is an improved command line tool that provides tabs. Never seen it before.
- Every run of our UI Test is recorded in a video that is saved in the Teamcity artifacts. Isn’t that cool?
- [NotNull] ReSharper attribute to provide better nullability analysis
- Color tabs according to their project in Visual Studio with the Productivity Power Tools
I spent all afternoon writing Jasmine tests of Angular controllers in Typescript. I never expected to see web technologies inside a SQL Server Management Studio plugin but yes that is true 🙂 We use the Chromium Embedded Framework and Redgate Apphost for that.
In two days, I already learnt quite a great deal of the UI technologies used in the product and some internal aspects of the architecture. I arrived home quite exhausted. Pair programming is exhausting but it is so rewarding and satisfying. Make sure you have enough sleep the night before!
I love communication and continuous learning with passionate developers and at the some time produce valuable work for the business.