Progress over perfection
Hey!
Welcome back to another week of musings.
Was this forwarded to you? You can subscribe here!
Things I discovered in the past week
- Tools for Systems Thinkers: The 6 Fundamental Concepts of Systems Thinking. I liked this summary of tools for systems thinking. I've been writing a piece on systems thinking for my blog and came across this. I hope it's helpful.
- Natalia Lafourcade y los procesos detrás de sus canciones (spanish). I've been enjoying listening to creative people describe their creative processes. Another good example is this video from FINNEAS and Billie Eilish.
We're starting review season at work, which means reviewing documents and notes about what happened during the year.
Thankfully, I've intentionally documented my projects and daily musings via daily notes. Regardless, what I wanted to talk about is that in most of the projects I've taken over the year can be summarized as me taking decisions that favor progress instead of perfection.
Incremental improvements
In past experiences, I've seen decision by consensus as challenging to achieve if you don't have a specific type of culture at your organization.
While having stakeholders and open conversations for feedback is a positive thing to do, at the end of the day, a single or few people have to make a choice. In these cases, you need to make decisions that make incremental improvements instead of delivering the complete solution from the get-go. Especially with cases of new tools coming into play, you might need to add it in "evaluate" mode, then start making results or output visible to customers, and lastly, close the feedback loop by having customers use the output back to improve the experience.
Even with big bang adoptions, prep work needs to happen incrementally.
Inspect and Adapt
As with many things in software engineering, we cannot "just" adopt them and think we're done with them. As with everything we integrate (frameworks, languages, tools, etc.), we must keep our feedback channels open, gauge how customers are doing, and adapt what creates friction for them.
We need to become long-life learners, a learning organization,Peter%20Senge%20and%20his%20colleagues.), as mentioned in The Fifth Discipline, or as people in the DevOps space would like the rest of the company to be.
Habituation
One thing in our favor when making decisions that make change is that humans habituate to anything pretty much. I use this to my favor to expose the teams to the new process or tools as early as possible, even if not perfect, because that will get them used to the latest thing.
One thing to watch out for is that while feedback might not be provided after people get used to the tools, they might also be fatigued and see no point in giving feedback.
Always keep an eye on your customers!
Not everyone will be satisfied
One last thing when taking the lead in projects that introduce a new tool or process to the rest of the teams is that you'll receive a lot of positive and negative feedback. You need to be ready for it, both from the perspective of being open and receptive to course correction and from the perspective that your teammates might want more verification to have been done or to have everyone "be ready."
Sadly, time constraints are also a real thing that exists for projects, so do your best to welcome all the feedback and give clear answers to why or why something happened.
Your turn!
Do you have any thoughts when you've chosen progress over perfection? Or if you follow perfection, have you thought about what would have made things move faster while still being "safe" for everyone? Reply to this email to let me know your thoughts!
Happy coding!
website | twitter | github | linkedin | mastodon | among others