Building Blocks: User and Developer Experience

0

When an IT enterprise architecture is being built, there are a lot of IT professionals working behind the scenes to make it happen, like software architects, project managers, and, of course, developers. These people keep four main factors in mind: technology and software being used, scaling of the architecture, technical maturity of the organization, and developer experience.

While all these factors are essential for building a robust IT enterprise architecture, we will discuss the last aspect in more detail and show you why it’s important to keep an eye on that.

Developer Experience 

Developer experience can be compared to user experience. For developers, the focus is on their tools and techniques, such as development environments, programming interfaces to other systems, build processes to build the tools, or the methodology of product development. 

When considering tools to improve developer experience, keeping some questions in mind is crucial. Does the tool help me do my job? Can I rely on the results of my tool? Is the tool easy to use according to the use case? Is the way the tool works comprehensible? 

In addition to considering tools, it’s important to also consider the experience of the developer using these tools. Is there too much they have to do to perform basic inquiries and processes? Has the DevOps system become too complex and is causing confusion and burnout amongst developers? How can someone as a DevEx professional make developer experience better in terms of the developer’s experience within the organization?

For a good user experience, it is necessary to know the user of the software. It is equally important to know the developer for a good developer experience.

Why Is a Bad Developer Experience Dangerous?

A possible reason for a poor developer experience could be the fact that developers are often not considered customers. So, those in charge of creating the IT enterprise architecture often don’t take counsel from those who will actually be using the products. 

Without the developer’s valuable insights, however, you cannot be sure that a product or service is easy-to-use for its respective target group. A result of this is that the service is not solving the developer’s problems but instead unnecessarily increasing their complexity. In addition, the time that it takes to throw a software onto the market increases wildly if developers are stuck in a poor developer experience. 

In order to provide efficient and reliable software delivery, developers are heavily dependent on automated tasks and integrating tools. Therefore, non-automatable (GUI) interfaces should be avoided if you want to reach the desired goal.

When looking at the early phases of any project, one can see that companies rarely manage to acquire new technologies, hardware, and the respective infrastructure for it from the start. As a result, long feedback cycles with limited experimentation phases occur, leading to poor software quality.

Furthermore, developers are often hindered by tedious training and difficult setups within their company, meaning that valuable time is lost when developers first have to navigate through a jungle of tickets until they get the needed license or approval. The period of wasted time becomes more significant when new members are added to the development team since the administrative things around it take so much time. 

Another reason why a bad developer experience might get dangerous for a company is the fact that disjointed team structures can cause unnecessary dependencies within the respective teams. A common example of this is the isolated structures between development and operation teams.

Finally, the lack of using APIs, libraries, or platforms can create a larger cognitive load on a team. Valuable time is wasted because the teams don’t have adequate guidance, best practices, or shared knowledge.m This can again cause delays in production and a poor level of product quality. A good visualization of the above-mentioned points can be seen in the following figure, where the specific context of a cloud platform was taken:

 

Example of a Bad Developer Experience within a Cloud Platform

 

Achieving a Good Developer Experience

Creating a good developer experience needs more than just connecting development and operation with one another and providing the needed tools for continuous delivery. The following points should be taken into consideration as well:

First, an overall environment should be created for developers that enables them in their work rather than hindering them with limitations. Second, one should take a holistic approach to the developer journey by taking more time to understand their workflows, touchpoints, and fundamental constraints. Third, shorter feedback loops help improve common workflows and measure progress continuously. Finally, a culture should be created where team members can feel safe and are happy to experiment and innovate with their products.

Conclusion

In conclusion, developer experience plays a significant role within a company since developers make up a great part of the development process of the product or service. Hence, it must be ensured that these developers have a good experience so they may provide the best functioning product in the end. 

A bad developer experience can cause serious problems since valuable resources such as time and money are unnecessarily wasted and can lead to a poor product or service. A good developer experience can be achieved when developers are encouraged in their work and not limited by poor tools and time management.

Leave a comment