The Full Spectrum Developer
This week I was invited to attend a talk by Michael Feathers at the offices of News UK. The topic was “The Full Spectrum Developer”.
Taking inspiration from Laurence Gellert’s post “What is a Full Stack Developer?”, Michael talked about how we should broaden our horizons. Don’t just master one small domain; try to understand a bit about every aspect of your industry, from business needs, to hosting, to user experience. That way we can contribute intelligently and reduce the communication cost between separate teams.
It was a thought-provoking talk, so I wanted to share my notes:
- There’s a wide span in skills across the industry. What motivates people to go beyond?
- Curiosity? What does it mean? How do you nurture it?
- “The Full Stack Developer” understands the whole stack, as well as the business
- Silos don’t work well due to the communication cost
- The socio-dynamics of different teams can make things go crazy - “the designers don’t understand about development” - “the developers don’t understand about design"… We have to move away from that
- Don’t get yourself caught in a silo
- The Full Spectrum Developer knows about:
- Server, network, and hosting environment
- Data modelling
- Business logic
- API layer / Action Layer / MVC
- User Interface
- User Experience
- Customer and business needs
- Know it all the way up and down the chain
- David A. Thomas is a great example of a full stack developer - knows everything from microprocessor coding to employee retention
- Bjarne Stroustrup built C++ for himself and became the father of a language
- Robert Fripp continuously reinvented himself
- Be distracted sometimes
- “I can see this barrier. Can I go around it? No, I’ll break through it”
- “Be the stupidest person in the room” - if you’re going to transition to new things, get used to this
- Start asking questions early on in the conversation
- Never underestimate what you know - we all have things to contribute
- “The people who do well are people who read” - reading is fundamental
- Cells were the inspiration for Object Oriented Programming
- In SmallTalk, everything is an object, all the way down
- Alan Kay, creator of SmallTalk, is great with metaphors - take a metaphor from one part of the world and apply it to another
- One that didn’t really take off is Lucid, “the dataflow programming language” - uses the metaphor of fluid dynamics - powerful
- APL is a programming language that uses non-ASCII characters. Funky!
- J is derived from APL - Quicksort in one line!
- Challenge yourself - cultivate 3 conceptual interests outside of work
- E.g. Functional programming - pick something outside of your expertise
- Push the edges - try it out
- Different languages - build a repertoire
- Recommended books:
- Learn what you need to do your job well, but take distractions - be curious
- Time-box it - don’t think of it as a chore