The Future of Software Development: Will Coding Fade Away?
Written on
The Evolution of a Junior Developer
Let's envision the journey of a junior individual contributor (IC) just starting out in their first software development position. Tucked away at her workstation, she diligently produces thousands of lines of code each month, delivering high-quality work and gradually building trust among her colleagues. As time passes, she finds herself receiving more invitations to meetings with project stakeholders, and her manager entrusts her with more complex and ambiguous problems.
A significant transformation occurs. Instead of merely executing well-defined tasks, she is now asked to draft design documents that address problem areas and suggest potential solutions. As her coding time diminishes from 90% to 80% to 70%, she realizes that she is no longer a novice.
Her skills expand; she manages her own projects while becoming increasingly involved in the design aspects of her teammates’ initiatives. As her expertise grows, the new features and enhancements she envisions accumulate faster than she can implement them. Noticing this, her manager offers assistance from another teammate, but with a condition: all design and planning must be finalized beforehand. She agrees and prepares a dozen tasks for the teammate to execute.
Where has the coding gone?
Though she still enjoys coding, her focus shifts from writing code in VSCode to drafting documents in Google Docs. This experience, whether positive or negative, reflects the path many programmers take. As I gain experience, my contributions are evaluated less by the volume of code I write and more by my capacity to manage extensive projects, influence technical decisions, and mentor peers.
Even if I choose to remain an IC and avoid management roles, it's improbable that I will ever spend 90% of my time coding again. The increasing complexity of responsibilities necessitates more collaboration and clarity among teammates, stakeholders, and cross-functional partners. It's clear that no one can handle everything alone.
Why You Might Code Less
Coding will never occupy 100% of your time. Even junior ICs have meetings to attend and non-coding responsibilities to fulfill. As you ascend the ranks to senior roles and beyond, these non-coding duties will only increase. Here are a few key responsibilities that come with this shift:
Writing or Updating Documentation
Start this task at any point and continue indefinitely. No one is "too inexperienced" to contribute; even new hires can fill in conceptual gaps or "gotchas" they encountered during onboarding.
Creating Design Documents
As the scope, ambiguity, and complexity of your tasks increase, you'll need to write design proposals that gather requirements, analyze or research, and share findings with stakeholders and collaborators. Juniors, don’t rush this step; while it may be tempting to dive into coding, sometimes a little planning can save a lot of time later.
Adopting Adjacent Roles
Software engineering teams often face skill gaps. You may need to develop skills in roles like project management to set deadlines and oversee project completion. For instance, Meta’s "bottom-up" culture means that engineering ICs make decisions about what work gets done, often needing to act as their own project managers.
Mentoring Junior Developers
As you gain experience, you'll often find yourself responsible for onboarding new hires and mentoring junior developers. This role will enhance your communication skills and strengthen your promotion portfolio.
Conclusion
Recent advancements in AI, like ChatGPT, have led programmers to wonder if they will soon be replaced. However, the reality is that we are already steering our careers away from coding through the software development cycle. With each new level, ICs move further from the code editor and closer to conference rooms.
Consequently, today's software developers may soon find themselves coding less frequently. While this evolution may evoke nostalgia for simpler times, it ultimately paves the way for the next generation of developers. It’s a privilege to work in a field that allows me to mentor others, hoping they will surpass my achievements.
As I take on more responsibilities, I appreciate the coding days of my past. The support from my more experienced colleagues enabled me to focus solely on implementation with confidence. Facing new challenges has required diverse approaches.
Progress is rarely linear, but by cultivating a growth mindset, the "senior shift" will occur when you’re ready for it.
Thank you for exploring my reflections on software development culture in 2022. Connect with me on Medium, Twitter, or LinkedIn for updates on future posts.
Further Reading
- My Early Software Engineering Career Success Plan
- 3 Writing Exercises Guaranteed to Make You a Better Engineer
- Don’t Just Ask Someone to Be Your Mentor
- Dear Junior Developer, I Don’t Care About Your Portfolio
Is Coding Still Worth Learning in 2024? - A discussion on the relevance of coding in today's tech landscape and what developers should consider.
Coding won't exist in 5 years? A look at the future of coding and the evolving landscape of software development.