6 Ways Software Engineers Can Learn at Work

We know from multiple studies (e.g., 1, 2, 3) that learning at work improves both job satisfaction and organizational commitment. Both of these contribute to higher productivity and lower turnover.

Many companies use personal learning budgets and some type of "5/10/20 percent time" policy to encourage learning. These are useful but highly dependent on personal motivation and learning habits. It’s often hard for software engineers to prioritize learning over their busy day-to-day work. For example, only around 10 percent of Googlers are using their famous "20 percent time" policy.

How to Find the Right Collaborative Coding Tool for Remote Pair Programming

Remote development is clearly here to stay, and when you need to collaborate with your team, starting a Zoom meeting or Hangout (er … Google meeting) is probably something you think of doing first. However, several developer-focused solutions that are much better suited for remote development are available today — but how do you know which one to pick? This guide will help you make that decision.

As you read this guide, you might wonder how I know an awful lot about these solutions. The fact is, I work for Genuitec, which makes CodeTogether. What you see below is the result of our continuing study of this landscape to see how we stack up against our competitors and to decide what we need to focus on next. This guide aims to be factual, and in an effort to remain unbiased, I do not delve too deeply into the quality or capabilities of each feature.

Remote Pair Programming with Visual Studio Code and Live Share

Remote work has killed pair programming. Or has it? If anything, it certainly presents an interesting challenge for pair programming when the two developers involved are no longer sitting side by side in the same room. But can you still successfully pair program in this world of remote work?

In this article, we'll look at some of the benefits of pair programming and how you can use technology like the Visual Studio Code Live Share extension to continue to pair program remotely with your colleagues.

How To Give Your DevOps Feedback Loop The Update It Needs

Introduction

With the highest performing DevOps teams deploying on average four times a day, the pressure is on. Your team should always be looking to improve the speed and quality of your process. A solution may be closer than you think.

What Is a Feedback Loop?

In society, we receive feedback continuously, from friends, family, and colleagues. Companies often have office telephone systems or entire call centers dedicated to receiving feedback from their customers. So, what is it doing in your DevOps process?

Finding a Software Developer Mentor When You’re a Newbie

Your first job as a software developer can be very challenging. There is so much to learn about coding and building a career in the technology industry. Doing it by yourself can be overwhelming.

When I started my first job, one of the senior developers at the company I worked for, offered to help me learn and grow into a good software developer. He was a more experienced guide who had overcome the same problems I was facing and provided an inspiring example to follow.

Whole Team Testing for Continuous Delivery

I just completed taking Elisabeth Hocke’s course, The Whole Team Approach to Continuous Testing, on Test Automation University. Wow! Talk about a mind-blowing experience.

Mind-blowing? Well, yes. Earlier in my career, I studied lean manufacturing best practices. In a factory, lean manufacturing focuses on reducing waste and increasing factory productivity. Elisabeth (who goes by "Lisi") explains how this concept makes sense in a continuous delivery model for software.

Pattern of the Month: Peer

In Agile practice, the completion of work is seen as being the responsibility of the team. Although individual team members may action a particular backlog item in whole or in part, it will be the team which owns it. This principle is ingrained to the point that — in the Scrum framework — it shapes the way in which roles are defined. Hence, you will find a role in Scrum called "Development Team," but not one filled by an individual "Developer."

Each Agile team member is considered to be a peer to the others. For this to hold true, there must be a shared sense of commitment to team goals, and an ability for those people to work together. In an efficient team, the various members will "go to where the work is," rather than waiting for work to come to them. This implies that a degree of cross-skilling and cross-training ought to be in evidence, and which is sufficient to overcome the waste that would otherwise be accrued through bottlenecks and skill-silos. Efficient peers will collaborate with regard to who performs certain tasks at certain times. Any scheduling that they agree amongst themselves will thus become orthogonal to the flow of work.

Peer Review vs. Code Review

I used to internally cringe when people mentioned code review – where developers check each other’s work after it has been implemented and suggest improvements. The tests were in place, QA had signed off, the product owner was happy. Surely by definition code review was just the practice of looking for problems.

If that sums up how you feel about code review, then sorry — you’re going to hate this. Nowadays, I think peer review is one of the most powerful devices for projecting best practice in a product, a team, a company and beyond. Notice I call it peer review rather than code review. To me, there are some important differences. Code review is good – it raises standards and awareness of standards. But peer review is more powerful still.