Welcome back to our ninth edition of Seed the Way, a recently inspired newsletter where I share my adventures and explorations in software engineering leadership. Today I would like to talk about feedback systems in Engineering. Whether we realize it or not, feedback is a critical part of the engineering process. We use feedback systems every day, whether it be a code review as part of a pull request, a customer survey or event monitoring/alerting systems. All of these systems serve a purpose to collect, analyze and share feedback.
There is one kind of feedback system that is either ignored, under-utilized or considered taboo, which is a feedback system around career progression. So I guess today is more than a talk about feedback systems in general, but will mainly be about career progression feedback systems.
History of Feedback in Software Engineering
My personal history in software engineering as a professional began in the mid to late 1990’s during the infamous dot-com bubble. Much of what I know was learned in books and in class. From what I’ve learned, feedback systems have been relevant in software engineering since the earliest days of computing. In fact, much of the early history of computing can be seen as a quest to create better feedback systems for computing devices.
In the early days of computing, feedback systems were primarily used for control and automation, such as in industrial control systems, where feedback loops were used to regulate temperature, pressure, and other parameters. These early feedback systems were primarily analog in nature and used mechanical or electrical components to sense and regulate physical parameters. In the 1950s and 1960s, researchers began to develop feedback systems for digital computers, using techniques such as control theory and cybernetics to regulate the behavior of computing systems.
In the last 30+ years the development of agile and lean software development methodologies placed greater emphasis on the importance of feedback systems in software engineering. These approaches focused on creating a continuous feedback loop between developers, users, and stakeholders with frequent releases and iterations based on feedback.
In the last year, I’ve been employing feedback from generative AI tooling. I’ve adapted my approach to learning, problem solving and improvement through large language model tooling like GPT and Co-Pilot. While I’m not an active developer in my role as VPE, I find myself curious about how my staff can exponentially improve in accuracy, reliability, quality and timeliness through assistive, generative technology. I’m personally finding these innovations of the now and present, the most awe-inspiring feedback systems to date.
Decoupling Feedback from Reviews
In my time in Engineering, I’ve witnessed an odd correlation made between career feedback systems and the topics of promotion and/or merit. I guess it’s not really odd. Rather, there are a lot of companies that have defined career feedback as performance reviews. Subsequently, performance reviews are deeply coupled with changes in title and salary. That doesn’t mean it has to be the case. It’s been a huge disservice to our practice and field of engineering. It’s created a bit of a carrot stick mentality. It’s created this somewhat informal belief that feedback should only come when it is time to talk about promotions or compensation changes.
As a leader, I've encountered difficulties in conveying to my engineers the idea that career feedback need not be restricted to the formalities of performance reviews, but rather, should be an ongoing conversation. Career feedback should be continuous. Your team members should know their blind spots and their strengths at all times so they can work on it. Feedback should come from managers, peers and teammates. It shouldn’t be limited to managers/employees. Set the bar with your direct reports. Set the expectation for them to pay it forward to their staff.
The bottom line is that career feedback needs to be omnipresent at all times. Your engineers should be able to come in to work on a Monday and know what they want to improve on this week. They may have read a book, a blog or an article over the weekend with ideas or experiments they want to conduct as part of their personal growth. The only way for those moments or opportunities to happen are direct results of a continuous feedback loop.
Continuous Feedback Systems
I mentioned in one of my earliest entries that I would refrain from endorsing any specific vendors. I will hold true to that principle in today’s entry.
In my current organization, I do make use of a 3rd party platform for continuous feedback and career progression. We use the system to define our leveling and roles. We’ve handcrafted different skills with demonstrable examples that we use as a point of reference to our staff as a means of measuring their career progression. Ultimately, we use the tool as a foundation for a career rubric for our staff.
There are feedback capabilities in the system that we predominantly make use of. First, there is a capability to celebrate individuals or a collection of individuals for demonstrating success or learnings across a skill. It’s very important in our culture to celebrate our successes. We encourage our staff to celebrate success of all sizes. The accessibility to celebrate is at finger tips, as we selected a tool that tightly integrates with our primary communication means, Slack.
Feedback isn’t always positive. Giving constructive feedback is critical to relationship building. When I hire a staff member, I set the expectation that we won’t always agree. Additionally, our relationship has to be founded in our ability to desire to make each other better engineers and employees. This ultimately means we have to be willing to give each other constructive feedback.
I encourage my staff to give feedback with examples. Examples give context, which ultimately leads to faster understanding. This is why we give realistic examples of demonstrable work seen in our day to day in the rubric. It’s not all engrossing, but it’s wide enough that we don’t make a lot of edits regularly. It’s digestible enough so that it can be referenced as an example or be the inspiration for feedback.
Inspire your staff to engage in self-evaluation, even though it can be a challenging task. While some employees may be proficient at identifying areas for growth, others may struggle with giving themselves feedback, either by being overly self-critical or unaware of their shortcomings. As a leader, it is important to help your team members become skilled at self-reflection, which can aid in their personal and professional development.
Low Fidelity Ways to Accomplish Feedback without a Purchase
You do not necessarily require a tool to achieve the goals I have discussed. Here are some ideas that you can implement without paying for a service:
Use a spreadsheet to create a rubric.
If you use Slack or Teams, send out emoji-filled announcements to your team to celebrate their success.
When providing feedback, critique individuals privately and not in public. Save feedback for 1:1 meetings with your staff. Consider maintaining a shared GoogleDoc or Office 365 document with your team member where private discussions can be held in a secure environment.
Encourage your team members to journal their ideas for improvement and progress. You can utilize the same document used for 1:1 meetings or critical feedback.
The Frequency of Feedback
In today's entry, I have emphasized the importance of continuous feedback. This involves providing feedback on a regular basis, which can be daily, weekly, bi-weekly, monthly, quarterly, or annually. Additionally, feedback can be event-driven, depending on the circumstances. There is no hard and fast rule on the frequency of feedback.
As a leader, it is crucial to determine what works best for your team and adopt a feedback cadence accordingly. A strong manager-employee relationship built on trust and open communication is typically fostered by continuous feedback. This requires creating an environment where employees feel comfortable giving feedback to their leaders, as well as receiving it.
As a practitioner of servant leadership, I strongly encourage my staff to provide feedback on how I can improve as a leader. I work closely with my team to ensure that their needs are met, and that their voices are heard. Although it can be challenging, this approach is essential for setting clear expectations, promoting engagement, and facilitating career progression. By fostering bi-directional feedback sessions, employees are given a platform to voice their opinions and contribute to their career progression discussions.