I've been promising you sneak previews for the book. Today, an outline of the whole book (neither final nor complete).
What do you think: Is this one book, or more than one?
Hit reply and let me know your thoughts (about multiple books, about the outline in general, or whatever's on your mind).
Book recommendations and citations noted throughout.
Here we go!
Background
This isn’t part of the outline, it’s here to keep me focused. If I’m not talking about the problem, the solution, or the questions, it’s off topic.
Problem statement
You’re a good developer. But you want to grow in your career and have a bigger impact.
Solution statement
Learn key skills developers need to achieve excellence and do your greatest work yet.
Questions this book answers
- How do I find the right career path for me?
- What do I need to understand beyond the code?
- Why are leadership skills important – whether or not I’m a manager?
- What will set me apart from my peers and help me excel?
- How do I go about getting those skills?
- Are there better ways of working? How do I introduce these to my team?
Outline
Here's the actual outline. Items are not necessarily in order of appearance.
Part 1: Introduction
What is this book
- What’s the problem?
- What’s the solution?
Who is this book for
- Larger organization developers at all levels
- Managers of developers benefit too
Who is this Leaf person
- my story, which is about why you should take my advice
What this book is not
- it’s not a tech book, it’s not going to teach you APIs or something
- it’s got limitations: I’m talking from my own experience and readings (medium to large enterprise, US-based)
How it is organized
- chapter overviews
-
within each chapter
- my learnings, experiences, readings
- recommendations for further reading
- possibly questions for reflection
Part 2: Career Paths
What do you want?
- When I first started in tech, I didn’t even know what I wanted to be. Network engineer? Sysadmin? Developer?
- Then as a programmer, I didn’t know what I wanted either. Low level and compilers? Higher level languages? What do I want to work on? Front end, back end, both?
- Try things out
- Do what you enjoy and you’ll get better at doing things you enjoy
- If I can find that job thing of analyzing your time in a typical week, that'd be amazing here...
How do you know what level you are?
- What does the job description say?
- How long have you been doing this?
- What can “you-now” do that “you-then” couldn’t?
- How independently do you work?
- Are you mentoring? Teaching?
- Are you contributing to the larger community?
- Are you the resident expert on ___?
- How much are people turning to you for your leadership and input?
- And how much do you have the knowledge and skills from the sections that follow??
What’s after (senior) developer?
- It's okay to stay put - advancement doesn't have to be your goal
- Management
- Staff+ Engineer (tech lead, principal, distinguished, "any engineering beyond senior"; Tanya Reilly’s The Staff Engineer’s Path)
- TPM
- Architecture
-
Adjacent:
- Could change tech stacks (e.g. mobile),
- Security
- Cloud computing
- Data
- Data science
- Governance
- Automation/QA?
- DevOps??
- Callout: let’s talk about what that term means :)
- Go solo - Entrepreneur?
- Consulting?
- Move away from tech??
- Callout: Let’s talk about ageism because people post about how not to be obsolete if you’re over 40, uggh are you kidding meeeee
- Callout: Understanding fit (Andre Martin’s Wrong Fit, Right Fit)
Part 3: Context
Understanding the technical landscape
- What else is out there? What does your application integrate with?
- What is the status of the technology you’re working on?
- Are applications like yours considered cutting edge, standard fare, legacy but important, overdue for removal?
- Are there technologies you should be adopting
Understanding the organization and the team landscape
- Who does your team collaborate with?
- Who does similar work?
- Who is making the decisions?
- (Team Topologies, Skelton & Pais)
Understanding the business
- What goals are important to the business?
- How does your work touch those goals?
- How are these goals measured?
Understanding the financials
- How is work financed at your company? (Read that book…)
- Possibly: project and product models (Project to Product, Mik Kersten)
Part 4: People Skills/Leadership Skills
Here’s the secret: the higher up you go, the broader your influence, the more it’s about People.
Also. Should this be broken out? If so, how? (Probably not.)
Soft Skills shouldn’t be devalued
Networking - what it is and what it isn’t
- Not schmoozing
- No Enemies
Using your privilege
Mentoring
- it isn’t Sponsoring but that’s nice too
Collaboration skills
- how do you work together to achieve something
Communication: Sending
- explaining things
- being concise
- how to talk so people will listen (Julian Treasure TED talk, or his book by the same name)
- clear action items
- appreciation
Communication: Receiving
- listening
- asking clarifying questions not leading questions like: “well don’t you think that…”
- repeat it back
Communication: Writing and documentation
- On one hand, write some doc already
- On the other hand, if you’re the doc hero, it’s a problem when you move on and nobody owns the doc
- Callout: “self-documenting code”
"TDD for people"
- The Ladder of Inference: Agile Conversations track 5 at 20:00
Influence/Persuasion
- Sorry, it’s “what’s in it for them” when we say “WIIFM”
Empathy, Kindness, Helping
- understanding what someone else’s experience is
- Jason Cox ETLS talk
- Some words about respect “respect must be earned” - different kinds of respect why be unkind when you can be quiet
- Callout: swearing at work
Let It Go
- Your project got canceled
- Someone else (or no one, eek!) is holding your “baby”
- When the decision’s been made
- When shouldn’t you let it go? (When someone is harmed)
Problem Solving
Critical Thinking
Patience and Persistence
- things may move at a different pace
- but also how to keep things moving
Meeting skills
- Yes, I could write a whole book just on this, and I might :)
Presenting
Other Leadership thoughts
- Leading without authority
- (Turn the Ship Around!, Marquet)
- (Good to Great, Collins)
Other thoughts
- Nobody appreciates a comparison
- Help people save face
Part 5: Ways of Working
Things I’m considering for this section:
Waterfall, Agile, Scrum, Kanban
Lean (Possibly Lean Startup?)
DevOps (Phoenix Project, Kim et al)
Limiting WIP (Flow Engineering, Pereira et al)
(Accelerate, Forsgren et al)
- What is developer productivity?
- Good measures, bad measures
Observability
- Observability Engineering, Majors et al
Learning fast
- Callout: about “move fast and break things”
Slowification / Simplification / Amplification (Wiring the Winning Organization, Kim & Spear)
- maybe Making Work Visible, DeGrandis
Theory of Constraints (The Goal, Goldratt)
Callout: firefighting
TDD
Pair programming, mob programming
Tests
- Why developers should test (why cucumber made me sad)
- writing unit tests
And... we’re gonna hafta talk about AI
Conclusion
Something here to wrap it up
Drop me a note
I would love to hear from you. Hit reply and let me know what's on your mind.
Know someone else who would enjoy this? They can subscribe here: https://www.beyondwritingcode.com/connect/
Thanks for reading!