There has been a gigantic shift in attitudes between development and operations, the devops movement, to create a streamlined, automated and high performing team of developers and infrastructure techs which has really helped transform many operations and projects.
It occurs to me that when building a development team or planning out a project we should include resources for developers to write tools and improve processes for the other developers in the team. I have seen this work very well in a small team which constantly had one developer on rotation spend a week just writing tools for developers.
The reason that I think that you should dedicate the resource to this is that, often on larger projects you find developers wasting time away on common things such as:
- Setting their machines or build machines
- Troubleshooting bugs which could be found quicker with custom tooling
- Investigating possible frameworks / tools
All of the things are vital but take away from the real goal of delivering work.
Scheduling in a specific resource means that you can focus on making the development environment better, which consequently helps the deployment and support environment for free and keeps developers focused on what is important.
I have sometimes seen projects commit a sprint-zero to writing tools and such but it is hard to anticipate what tools would be needed before the project had begun which is why it is preferable for the work to be ongoing.
Overall, I would love to see development teams including a resource to make their lives better and more productive, if we saw even a fraction of the improvements that have been made with devops with devdev then I would be extremely happy!