5 min read
“Software is a great combination of artistry and engineering.” – Bill Gates
As a senior leader and software engineer, I have witnessed the exceptional capabilities of software engineers firsthand. I recently came upon a conversation that software engineers are human. Of course, they are. After catching up on the context for the statement, it centered around measuring individual software engineers and how older physical production line measures were morphed into earlier attempts to measure engineers’ performance. Hopefully, organizations treat all employees as humans in their approach to performance and culture. The role is not distinguished by the fact that the workers are human or non-human but rather by the need for problem-solving skills, creativity, and experimenting and managing unknowns.
Software development differs significantly from traditional manufacturing processes, such as car production or house building, where the end product is well-defined and established. In software development, there is inherent uncertainty and the need to manage unknowns, aptly described by the Cynefin framework1. Whether your software development and delivery lifecycle is more function-based and waterfall, cross-functional and agile, lean, or a combination thereof, it is not uncommon for scope creep to occur. Could this be due to consistent learning and uncovering of unknowns throughout development? Understanding how we look at software engineering work and measure software engineers’ performance and return on investment in a company is important.
Unfortunately, many organizations still rely on traditional productivity measures that treat engineers like factory workers churning code. This viewpoint is flawed, as software engineers are skilled problem-solvers who creatively craft elegant solutions. Software engineers are more akin to artists than factory workers. Just as we would not evaluate a painter’s worth by the number of brushstrokes or paintings they create, it is crucial to understand that assessing a software engineer’s productivity extends far beyond the lines of code they produce.
The Human Side of Software Engineering
I agree that it’s important to acknowledge that software engineers are not machines but human beings. By recognizing their human side, we can better understand what drives their creativity and passion. Software engineering is a unique mix of art and science that requires technical expertise, problem-solving abilities, and a keen sense of intuition. A software engineer must balance constraints and opportunities to deliver a functional or visually appealing solution like an artist.
Each software engineer brings a unique approach to implementing solutions, and addressing problems, informed by their experiences, knowledge, and innate talents. This diversity of thought and process makes the field dynamic and exciting, ultimately driving innovation and business growth.
Creating Impactful Software and Fostering Team Satisfaction
In software engineering, team satisfaction is closely tied to creating and shipping products that make a tangible difference. Teams feel a sense of pride and accomplishment when they see their work in the marketplace, positively impacting users and solving real-world problems.
Streamlining the process of shipping software can raise team engagement and enjoyment. This involves providing the right tools, support, automation, and environment to help engineers transform their ideas into reality. Capturing and sharing data-driven insights that motivate teams to improve by identifying bottlenecks is also important. A culture of safety, open communication, and collaboration can help teams navigate challenges more effectively and create more impactful software.
The Importance of Developer Experience for Business Success
A crucial aspect of software engineering that often goes overlooked is the “developer experience.” Generally, developer experience refers to the environment, tools, and culture in which software engineers work. Fostering a positive “developer experience” is vital for nurturing the growth and creativity of these talented individuals.
A supportive and engaging workplace can make all the difference in enabling software engineers to explore new ideas, experiment with different techniques, and ultimately create innovative solutions that drive business value. Conversely, a stifling or uninspiring environment can impede creativity and hinder progress.
Measuring Productivity – A Business-Centric Perspective
To evaluate software engineering productivity honestly, we must move beyond basic measures like counting lines of code or completed tasks. Instead, we should consider an engineer’s work’s overall impact on the business. Depending on your organization’s team structure, team metrics may be more valuable than individual metrics. New methods and practices are available for measuring team productivity and efficiency that don’t focus solely on individual performance. Consider shifting your focus from individual productivity to individual performance. Some factors to consider when assessing a software engineer’s performance might include the following:
- The quality of the code produced – Is it efficient, scalable, and maintainable?
- Collaboration and communication – Does the engineer work well with their team, fostering innovation, sharing and receiving feedback, and team member support?
- Adaptability and growth – Is the engineer continuously learning, adapting, and refining their skills to stay ahead in the competitive landscape?
Conclusion
Software engineering is not merely a routine job on a production line. Instead, it involves a complex and imaginative process that requires a combination of technical proficiency and artistic flair. If businesses appreciate the crafting aspect of software engineering, provide a supportive environment for developers, and emphasize producing and delivering purposeful software, they can unleash the full potential of these skilled individuals and empower them to come up with innovative creations.
References:
- Cynefin Framework. https://thecynefin.co/about-us/about-cynefin-framework/
Poking Holes
I invite your perspective on my posts. What are your thoughts?.
Let’s talk: [email protected]