A software developer who consistently works with one, or a few related technologies has the luxury of being able to focus on perfecting that technology, and keep up with the latest changes.

But for many software developers, this is not the case. Working in an agile environment usually means being assigned different projects that involve working with a variety of different technologies. Wouldn’t it be great to have a development system that helps developers to keep up with multiple technologies?

The harsh reality of most development environments is that developers eventually take on new roles or leave the enterprise, and their code has to be maintained by other developers. Even well documented code (which is unfortunately rare) can be a challenge to work with.

What if, for all new projects, a reasonable amount of R&D time was scheduled for one or more developers to investigate available tutorials that demonstrate how to build an application like the one planned for the new project in the language planned. If practical, tutorials in other languages that perform the same function can also be considered. The tutorial must be as current as possible, of very high quality, and extremely well documented.

Once a quality tutorial is found and agreed upon by the dev team, a comment can be listed in the README indicating the tutorial ______ was used as a reference for beginning this app.

Making this a required part of the development process would have several advantages:

  • Help developers learn new technologies
  • Stay current on technologies
  • Help ensure the right technology is chosen for the project
  • Months/years later, the tutorial would act as documentation for the app
  • Help developer recall
  • Help future developers who inherit the code
  • Help provide a standard process for all similar projects

Of course, proper attribution for the tutorial would be necessary. Where ever the app significantly diverges from the tutorial initially referenced, a separate set of documentation would help future developers to understand the direction taken.

When other significant features are added to the app, it would be helpful to reference any other quality tutorials that demonstrate the new feature to likewise serve as documentation and as a starting point for future maintenance of the new feature.