Track: Developer Experience: Level up your Engineering Effectiveness

Location: Ballroom BC

Day of week: Wednesday

A software engineering organization is most impactful when the majority of its focus is on delivering business value through software products and services. Developer Experience is about maximizing that impact by increasing the effectiveness of engineers. We are also seeing an industry trend of flatter organizations, resulting in engineers being asked to do more than ever before. This contributes to an increase in cognitive load for engineers. How can we apply software to the problem of enabling high-velocity development while concurrently considering the human factors?

In this track, we will look at how the best organizations are tackling the challenge of reducing cognitive load on their engineers. Come to hear stories - both real world and aspirational, about how teams have combined innovations in technology, process and culture to level up their engineering effectiveness.

Track Host: Sangeeta Narayanan

Director, Edge Developer Experience @Netflix and Co-Host of the Productivity Engineering Silicon Valley Meetup

Sangeeta leads the Edge Developer Experience team at Netflix, whose mission is to ensure that engineers are focused on providing the best possible video streaming experience for millions of people around the world. She works with her team to accomplish this by building world class tools to enable a simplified developer experience and enhanced observability at cloud scale. Sangeeta has held varying roles at companies large and small, including Software Development, Test Engineering, Sales Engineering, Consulting and Leadership. Her passion for simplifying the process of developing and operating software has been the common theme across all those experiences.

Evolving CI: Applying Continuous Integration to our Continuo

Continuous integration as a practice has come to be virtually synonymous with the tools that enable it. As developer workflows grew increasingly diverse and complex, we saw the need to extend and support continuous integration beyond the commit/test/fix cycle. While our existing tooling generally worked for building commits and running suites of automated tests, we found that reliably building pull requests and simplifying the common cases while still supporting complex configurations still presented challenges.   

Inspired by developer feedback and the friction we faced with our existing tooling, we began evolving our continuous integration strategy to focus on increasing velocity, simplifying builds, and providing a more integrated developer experience. This session will explore how we leveraged the best practices and opinions of other CI-first tools, fast feedback and requests from our engineers, and an iterative approach to begin building a new suite of tools to support a diverse set of workflows. We will also dive into the technical considerations and approach we are using to minimize configuration while enabling reliable, traceable builds integrated with our existing toolchain.

Elise MacCallum, Senior Software Engineer @Netflix

Helping Developers to Help Each Other

Gail has over twenty years’ experience as a professional software developer. Her research project addresses an issue stemming from this career. Individual programmers with similar education and experience demonstrate quite different levels of ability to write ‘peer-friendly’ code. What behaviors contribute to producing work that is straightforward for other software developers to follow, and how can these behaviors be encouraged? 

This is important because computer code is not simply written, deployed and forgotten, but reused and revisited many times. Yet the difficulties of maintaining or adapting existing code have been somewhat overlooked; researchers more often focus on the technical aspects of delivering working software or, if they are considering human aspects, on end users or the behavior of software development teams.  However, technical problem solving also has a human dimension, independent of whether the program functions correctly and reliably. Gail’s research addresses individual differences in software developer behavior that affect how easily others can work on the software, and thus influence the timely delivery of a system and any future changes to it.

The first phase of the research was to characterize how programmers perceive the impact of others’ coding practices on their own work. Using qualitative interviews with experienced programmers from across the industry, this study established a holistic peer-centered definition of best (and worst) practice: the programmer behaviors which help or hinder colleagues across the whole range of their regular tasks. 

This definition of ‘best practice’ from a peer perspective can itself play a part in staff appraisals and recruitment, but it is just the beginning. Gail is working with industry partners to explore the practical applications for staff mentoring and continuing professional development. The second phase of the research builds on the findings from the interviews to develop a framework for fostering the behaviors that were identified as helpful. Workshops with software development teams allow them to pick the factors most relevant to their own workplace, reflect on their practice and identify useful steps they can take.

Gail Ollis, Researcher & Lecturer in Cyberpsychology @bournemouthuni

Tracks

Monday, 5 November

Tuesday, 6 November

Wednesday, 7 November