I've been through a few different companies now where I'm brought in to do the same thing - fix the devs. While the bigger problems are often in management, there are also some differences that I can bring to a dev team that helps.
Recently, I was reflecting on that and how I tend to bring the same approach to each new company. Could that similarity be a way to extract my personal values? Let's give it a shot.
- Share information in open ways i.e. google docs, slack, github
- Communicate in open ways i.e. Github issues, Google Doc comments, Slack channel rather than email, private messages
- Find opportunities to collaborate. Good collaboration both increases your leverage and improves your visibility in your organization. Advancing your craft as an engineer requires you to have an impact beyond the code you write, and advancing your career requires, to a certain degree, building a personal brand at your company. Cross-functional projects and professional, respectful collaboration are critical to both.
- Communicate proactively. Regular, well-organized communication builds confidence and goodwill in collaborators; knowledge-sharing creates an atmosphere of learning and camaraderie. Share knowledge and set a regular cadence of informing stakeholders on project goals, progress, and obstacles. Give talks and speak up judiciously in meetings.
- Keep processes open - don't build gates, educate rather than enforce
- Build the vulnerability-based trust that's required to take risks and face conflict
- Take initiative. Step up and take on the vague tasks. Own your team’s and company’s mission. Don’t wait to be told; think about what needs doing and do it or advocate for it.
- Unblock yourself. Learn to never, ever accept being blocked; find a way by persuasion, escalation, or technical creativity. Again, your job isn’t just to write the code and wait for everything else to fall into place; your job is to figure out how to create value with your efforts.
- Reason about business value. Understand the value of your work to your company and take responsibility for reasoning about quality, feature-richness, and speed. Your job isn’t just to write code; your job is to make good decisions and help your company succeed, and that requires understanding what really matters.
- Be professional and reliable. Think of yourself as a professional and act like one. Come to meetings on time and prepared, then pay attention. Deliver what you say you will and communicate proactively when things go wrong (they will). Keep your cool and express objections respectfully. Show your colleagues respect and appreciation. Minimize your complaining; bring the people around you up, not down. Everyone appreciates a true professional; more importantly, it’s the right way to behave.
- Arrange your work to make you and others more effective. Own your project management. Understand the dependency graph for your project, ensure key pieces have owners, write good summaries of plans and status, and proactively inform stakeholders of plans and progress. Practice running meetings!
- Get lots of sleep
- Be selfish with your focus
- Own your education. Be curious - pursue mastery of your craft. Your career should be a journey of constant growth, but no one else will ensure that you grow. Find a way to make learning part of your daily life (even 5 minutes/day); get on mailing lists, find papers and books that are worth reading, and read the manual cover to cover for technologies you work with. Consistency is key; build habits that will keep you growing throughout your career.
- Be resilient, keep moving forward.
- Control the controllables
- Cultivate a growth mindset
- Remember that you are "response-able"
- Improvise, adapt, overcome
- Reduce the cost of change
This is a messy process so I'm trying to keep extra notes as I group concepts and omit duplicates. I'm not sure what groupings make sense so I'm mostly keeping everything and reorganizing every so often. Good thing organization isn't listed as a value.
- Open communication, build trust, communicate often
- transparency pushed up and pushed down
- sharing of information
- say what you think; don't hold back
- team rooms
- retrospectives, project status updates
-
- Trust is required for aligned autonomy. Build systems that support trust.
- https://knowyourteam.com/blog/2019/01/15/building-trust-in-teams-what-and-why/
- 5 dysfunctions of a team link
- Don't build gates. Educate rather than enforce. Sharp knives.
- Get or give link
- Take the high road, assume positive intent
-
- https://medium.com/s/story/its-not-enough-to-be-right-you-also-have-to-be-kind-b8814111fe1
- Brené Brown's vulnerability link video
- 5 dysfunctions of a team link
- psychological safety link
- We demonstrate kindness, respect and humility when communicating
- Be the software developers that everyone wants to work with link
- Compassionate coding - https://twitter.com/compassioncode?lang=en
- Blowing out someone's candle doesn't make yours shine any brighter, but your candle loses nothing if you light more candles with it
- Make decisions, bias to action, tell don’t ask….what’s the healthy friction?
- Lead with questions, Socratic method
- http://highscalability.com/blog/2019/3/4/how-is-software-developed-at-amazon.html
- Dan Pink's autonomy
- Be dependable link
- Arrange your work to make you and others more effective
- "Those who take orders usually run at half speed, underutilizing their imagination and initiative." - L. David Marquet, Turn the Ship Around
-
We pursue mastery and are always looking for small improvements. We realize that getting shit done is the minimum expectation and aim higher. We own our impact.
-
- https://dannorth.net/2010/08/30/introducing-deliberate-discovery/
- https://lob.com/blog/understand-design-build-a-framework-for-problem-solving
- Dan Pink's pursuit of mastery
- Steps to innovation: seek diversity, share ideas early, prioritize learning
-
- Sleep! link
- Work less, have fun
- We know that enjoying our work makes us more productive
- Celebrate!
- Be resilient, keep moving forward
-
When faced with uncertainty, we have a bias for action and figure out how to deliver. Within every obstacle is an opportunity to improve our condition and keep moving forward.
- Steven Covey's "response-able" link
- https://twitter.com/lizardbill/status/1133474018521169920
-
- Control the controllables link
- Cultivate opportunities through networking - be social and improve your odds
- Roll with the punches, be optimistic, embrace change
- https://blog.reactioncommerce.com/our-core-values-and-operating-principles/
- https://thinkshiftinc.com/leadership-culture/effective-corporate-culture-core-values/
- Jobber’s culture and core values – humble, supportive, and give a sh*t.