Changing the status quo and adopting new technologies is never easy. Whether we are talking about a new database, library or even way of approaching your problems, you should know what your are in for.
Of course, your difficulties will be very different depending on the size and culture of your team!
Do you even want to get started?
- What are the Benefits? Whether it is ease of development, transparency, adaptability, performance… A case has to be made.
- Knowledge: you should know the manual/tutorials inside and out. For bleeding edge projects, you should have read some of the source.
- Experience: before you make everyone adopt something, you really should have toyed with it and it should have proved itself in a non-critical project. Ask around what people think.
- Trust/Authority and commitment: can you push this through?
What will make the project successful?
- Running code and rough consensus: do things, write code, take responsibility, and steer discussions away from uninformed opinions and towards what brings the most value.
- Don’t break things without reason. Provide guidance and automation to update/migrate downstream clients/users. Backward compatibility is boring but everybody will thank you for it.
- Onboarding: give assistance setting things up. Give advice about best practices. Offer solutions, do the work.
- Support: if you’ve built a consensus and brought people on board, don’t waste everything. Proactively check-in with your colleagues, ask how things are going. Treat your your coworkers as clients.
At some point you will need to evaluate your project:
- Be unbiased: consider all options, give fair assessments, be transparent, and always keep in mind what is most important to your team or users.
- Feedback: is huge. Only if you listen can you improve your work, or cut your losses early.
Personally, in every new project I try to do two things like I’ve never done before. Never more, rarely less than two. It’s great for learning, and soon you learn to judge things better. Changing existing projects and workflows is much more challenging: be gentle 😌.