Back to DX Manifesto

9 Principles of great Developer Experience

  1. Embrace the principles of the chosen development framework

    • Choosing a development framework will help you establish a standardised set of practices from the get-go. Despite Agile being the most popular option, it is most definitely not always the right go-to framework. Preferably, always try to analyse the situation before picking a framework based on the context of the solution that is being developed. Doing so will result in a better tailored developer experience for you and your team.
  2. Automate the repetitive and error-prone tasks

    • Automation will bring you more efficiency in terms of time & other resources. Not automating tasks, such as the ones stated above whenever it is possible, will likely induce additional recurring costs to your project. Furthermore, it will negatively affect the overall developer experience if your team members are constantly concerned by the same error-prone tasks, have to deal with the same issues, or are routinely carrying out the same tasks redundantly.
  3. Validate the requirements before starting development

    • Business requirements will demand a set of new features to be developed and implemented into your solution. However, it is strongly recommended to firstly question the proposed features and to validate them properly before initiating any further action. Doing so will prevent you from implementing senseless features which only waste your resources and affect the developers’ motivation & mindset as they might feel that their work is counterproductive, if the new implementation does not bear any valid results.
  4. Focus on short feedback loops

    • Short feedback loops will help you to fail faster. This is essential for saving your resources from being further invested into solutions, which might have not been validated properly. Therefore, the short feedback loops will significantly reduce the amount of iterations that your product or solution might have to go through. Failing faster also helps to prevent a decreasing team morale & motivation as your developers will not be compelled to code another pointless feature.
  5. Adopt the industry wide code style conventions & solutions

    • Standardising as many things as possible will have a positive impact on your workflow & the product itself. It makes exposing your documentation more understandable to the outside world, which in turn might increase the adoption of your product or solution, and it also makes many of the administrative tasks, such as onboarding people to your project, significantly more efficient and faster. Therefore, you should think about adopting the industry wide conventions before doing it your own way.
  6. Avoid reinventing the wheel in your solutions

    • Reinventing existing solutions is not recommended as it is time & resource wasteful, and your own solutions may not always work as well. Simply, if you need something then chances are that someone has already done it, and they possibly had enough time and experience to iron out all the kinks and edge cases for you.
  7. Update your tools, refactor your code, and revision workflow periodically

    • Maintaining your code base and your tools periodically will have an immense impact on the productivity and speed of your development. A well maintained code allows you to safely change it and shape it in many ways with significant flexibility. The more you neglect your periodic maintenance tasks, the more difficult it will become to refactor it safely and adjust it to keep up with the ever changing business specifications in the near future.
  8. Adopt code quality practices to establish trust

    • Trust not only in your team members, but also in the code itself is of high importance. Humans are susceptible to many errors, however, a great amount of these errors can be easily eliminated by setting up proper practices such as code review. It enables your developers to establish a common consensus system based on trust which in turn helps you to improve not only the quality of your code, but also the general welfare and skills of your team members.
  9. Encourage individuals to take up responsibility by providing the right conditions

    • Taking up on responsibility should be fully encouraged. Individuals who are responsible will make sure that their assigned tasks will be completed in a timely manner. Therefore, your development will not stagnate which again, will boost the spirits and the overall team morale. However, to encourage your team members to take up on their own responsibility will firstly require the right conditions in the work environment. It is recommended to start with absolute information transparency, and to continually support individuals in their own right & treat them with respect.

Back to DX Manifesto

If you agree, feel free to sign

239
people signed this manifesto
See the list

COLLECTIVE OF AUTHORS

Prokop Simek, Pavel Michalík, Cuong Nguyen, Vratislav Kalenda, Filip Kirschner, Jan Minárik

Suggest improvements