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
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