search.noResults

search.searching

saml.title
dataCollection.invalidEmail
note.createNoteMessage

search.noResults

search.searching

orderForm.title

orderForm.productCode
orderForm.description
orderForm.quantity
orderForm.itemPrice
orderForm.price
orderForm.totalPrice
orderForm.deliveryDetails.billingAddress
orderForm.deliveryDetails.deliveryAddress
orderForm.noItems
Column: Software


Top tips for effective remote pair programming – from home


S


By Derek Lee Boire, Principal Software Engineer, VMware Tanzu


ome of the greatest achievements in history were produced by pairs of great minds working side by side on the same task. Soſtware development is no exception,


in the form of ‘pair programming’. Pair programming enables developers to


remain deeply connected, while allowing them to work with new tools and acquire tangible skills they can put to good use in the future. However, with most soſtware development teams now distributed and working from home, how can developers pair-programme effectively? Here are some key principles:


Practice continuous software design All soſtware developers should spend time intentionally thinking about the design of their soſtware. Tey should ask themselves which architectures make sense for the problem at hand? Do common design patterns apply? Are there existing libraries and frameworks that help solve this problem? With pair programming, a team is


constantly bouncing ideas off one another, adjusting the design directions to take. Pair programmers go through a continuous negotiation, but instead of “falling to the lowest common denominator” they “rise to the best solution”, an accumulation of best ideas harvested from combined experiences. If pairs rotate on a regular basis, this continuous soſtware design continues to evolve as the sum total of the team’s experience is put to task on the problem at hand.


Vocalise intentions Developers working in pairs need to talk about what they are doing while they’re doing it. Te process of problem solving is different when verbalised versus done in isolation. Exercising those “external” verbal as well as “introspective” mental pathways helps people see the flaws in solutions and invites the pair in the team to contribute. Turning on audio and video helps, too.


Taking collaboration to the next level can be challenging in person, and even more so remotely. High-quality audio and video are


almost always a must to ensure intentions are clear and logic is robust.


Programme by not programming While there are many pair programming styles, one of the most common is the driver/navigator style. At any given moment, one person is primarily coding and thinking about the next logic statement (the driver), while the other (the navigator) is looking back at what was just done, suggesting the next course of action and strategically thinking further ahead. Our brains have extreme difficulty


performing high-level strategising and detailed execution at the same time, which is why two brains are better than one in complex problem-solving situations. Pairing addresses this conundrum by having one person for each role. When working remotely, use soſtware that allows both people to take control of the screen to code and use other shared tools. Enable seamless driver-navigator switching with remote pairing, just as two keyboards plugged into one computer support seamless switching during in-person pairing.


Teach others Be generous with knowledge, and help the pair along the steep developer learning curve. Since we oſten look for those moments to learn more ourselves, ask a partner if in those instances they’d like you to teach them more in turn. While remote pairing, inquire oſten and


intentionally about how the other person is doing and whether they have questions, especially if there is a senior/junior dynamic, such as the arrival of a new team member. Be sure to check their engagement level and encourage them to turn on their video if they haven’t. Central to remote pairing is the idea of


communicating effectively, whilst remaining true to the programming values. Tis allows for seamless integration, in real time. As pairs move from the ‘I do’ part of coding, where they lead by example through to the ‘ you do’ phase, where the customer is ready to own the project and take it forward completely on their own, following these principles can enable everyone to embody pair programming at its finest.


www.electronicsworld.co.uk November/December 2020 11


Page 1  |  Page 2  |  Page 3  |  Page 4  |  Page 5  |  Page 6  |  Page 7  |  Page 8  |  Page 9  |  Page 10  |  Page 11  |  Page 12  |  Page 13  |  Page 14  |  Page 15  |  Page 16  |  Page 17  |  Page 18  |  Page 19  |  Page 20  |  Page 21  |  Page 22  |  Page 23  |  Page 24  |  Page 25  |  Page 26  |  Page 27  |  Page 28  |  Page 29  |  Page 30  |  Page 31  |  Page 32  |  Page 33  |  Page 34  |  Page 35  |  Page 36  |  Page 37  |  Page 38  |  Page 39  |  Page 40  |  Page 41  |  Page 42  |  Page 43  |  Page 44  |  Page 45  |  Page 46  |  Page 47  |  Page 48  |  Page 49  |  Page 50  |  Page 51  |  Page 52  |  Page 53  |  Page 54  |  Page 55  |  Page 56  |  Page 57  |  Page 58  |  Page 59  |  Page 60  |  Page 61  |  Page 62  |  Page 63  |  Page 64  |  Page 65  |  Page 66  |  Page 67  |  Page 68