Approaches as a Developer to help Improve Organizations
During my time working as a contractor/staff aug from Omnitech, I’ve observed a lot and experimented with different ways to serve. I think these have helped the whole organization improve as I show these aspects by example and share.
## Build reputation
- Get to know others, show them you care about them
- Be a servant, be humble do things others wouldn’t (even cleaning up the kitchen or emptying the dishwasher, etc)
- Enable others on the team to do work
- Take on troubleshooting
- Allow others to interrupt you with questions and help them
- Help with training
- “Let us therefore make every effort to do what leads to peace and to mutual edification” Romans 14:19
- communicate more, maybe even more then you think you need to
- you can’t know everything, be humble, admit it and ask questions
Don’t forget the power of the nudge
Documentation: OneNote or Obsidian
- Purpose: Share knowledge
- free from silos in people’s heads and emails
- save time, send a link instead of having the same conversations
- On-boarding and project setup documentation
- Acronyms
- Domain knowledge
- When you’ve learned how to troubleshoot, share how to find the issue and how to fix it
- Make sure that when you leave, others will have enough documented knowledge to run, troubleshoot and add on to what you’ve helped create
- Value Stream Mapping and Management to help visualize and improve flow of work
- Map the universe (c4model.com is a good example on how to diagram) of the system
- Identify the products
- understanding of how pieces put together
- background processes that are running
Communication and Collaboration
- Face to Face meetings (listen, but speak up)
- MS Teams or Slack if they don’t have Office365 accounts
- Get more info into Azure DevOps items
- Break down barriers between teams
Training/Teaching/Mentoring
- Lunch and Learns and Book Clubs - join or get some started
- Automated Testing, Architecture, other areas
- If you notice someone is struggling, find ways to help them
- Paired programming, check in often, talk to the leader about how to help them
- Teach Agile practices or Git. Share your expertise
- Lead meetings when needed
Automation
- Tests
- Pipelines
- Infrastructure (ARM templates/Ansible/Terraform/)
- Manual work to scripts
- Installers
- Replace manually install work with Installers
Cloud
- Can they move to the cloud? What changes are needed first?
- Incremental approach?
- Can the use it for less cost and more efficiently?
Kick start Book Studies, Lunch & Learns, learning opportunities
- The first book recommendation will depend on where you perceive the team to be
- Mature
- The Unicorn Project
- Clean Architecture
- The DevOps Handbook
- (Better Value) Sooner Safer Happier
- Needing more guidance on working legacy code
- Chaos and constant fires?
- The Phoenix Project
- Then the Unicorn Project
- Accelerate
- The Art of Unit Testing
- Weekly Dev Tips Podcast - short tips on good programming techniques
- MS Learn and Pluralsight
- DevOps Summit videos
Feature Teams
- Cross functional teams that can get the job done together with less wait times
Create these around products
Make work Visible
Reduce Feedback time
Automated tests
Feedback from the users
break down barriers between teams
Ask “What’s the biggest constraint?” and attack that first
Then move to the next one
Retrospectives often
What went well?
What didn’t go well?
What do we need to change to improve?
Constantly experiment, learn/reflect and improve