Improving Developer Experience With Dev Portals
Tags: devrel, devops, api, startup
Published: 2022-10-20 11:19:15

It is essential to take developers into consideration when designing products, just as user experience influences business decisions. Even if you have the best product in the world, if your developers are having trouble using it or onboarding, it's time to revisit your product designs. 

Many people are talking about how important developer experience is to the success of most enterprises. And with time, a lot more businesses will become aware of the impacts and realize their significance.

In this article, we will have a closer look at developer experience and how it differs from user experience, the importance of a successful developer experience, what are dev portals, how to develop a working dev portal and the importance of dev portals.

Let’s jump right in!🚀
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/931usngbaz795qyrn1ee.png)
# What is Developer Experience?
The term "developer experience," often referred to as "DevEx" or "DX," is a new user persona/perception that many companies have embraced to evaluate how developers engage with the tools and systems that support their products. 

A great developer experience should enhance the workflows, environments, and procedures that developers use on a daily basis. Although user experience and developer experience are closely related, they are not the same. They should be taken into account while creating a product, but individually.

For instance, let's say that while developing an API, user experience requires taking into consideration factors like request speed to ensure that consumers do not have to wait long for the API to respond. The developer experience, on the other hand, will require taking into consideration factors like speed but also more technical ones like error handling, modularity, documentation, and so on. 

Below is an illustration showing the relationship between developer experience and user experience:
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bf86b884idm1xc20jj2q.png)
## Difference Between DevEx and UX
The simplest approach to understanding developer experience is to see it through the perspective of the common idea of user experience, but not to assume them as interchangeable. 

Yes! The concepts of developer experience and user experience are distinct due to significant differences. 

The approach used to create each experience differs significantly. User experience is more concerned with end consumers using the product, as opposed to developer experience, which focuses more on enabling developers to use the product to build solutions for other end users.

User experience strives to provide equal support to all users, regardless of technical capabilities, unlike developer experience, which aims to provide varying levels of support based on various users' technical capabilities. 

PayPal is an excellent real-world example; the user experience makes it simple for customers to make purchases with a few clicks, and the developer experience clarifies which API endpoints or methods to use and how to use API keys to make requests. 

Now that you can distinguish between user experience and developer experience, you might want to answer the question of why developer experience is important.
# Importance of Developer Experience
The growth of a company is greatly influenced by the experience of its developers. If you are unfamiliar with the term "ramp-up", it generally refers to the capacity to expand a team fast by bringing on a new developer when a project requires scaling. This term introduces us to the ramp-up problem, which arises when a team tries to scale a project by adding new developers. The organization has a ramp-up problem if it takes a long time for new developers to become comfortable with the new environment before they can contribute usefully.

Companies need to improve their developer experience when ramp-up problems are noticed. To onboard new engineers more quickly, they might need to pay closer attention to internal tooling, documentation, and developer support. 

Additionally, when developers feel comfortable and secure in their working environment, their work will be of a high quality, which results in timely releases, improved end-user experience, and a boost in the company's revenue. 

Finally, developer experience provides stability(reliability, consistency), clarity(intuitive visuals, clear displays), ease of use(quick access, shortcuts, speed), and function for your software development ecosystem(expected behavior, feature-rich).
# What are Developer Portals?
Developer portals are single sources of truth or centralized repositories where resources and tools are maintained for developers who use the software of a specific company. Developer portals can be internal or external, and they can regulate who has access to which external or internal resources. 

Developers frequently encounter challenges when integrating SDKs, consuming APIs, or contributing to legacy codebases. The developer portal, which we can refer to as the central repository for all relevant documentation and support, can be used to address these challenges.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/igzq8rlu0aogc57akobm.png)
An ideal developer portal can create an ecosystem around the developer experience of a product, as depicted in the image above. 

Most developer portals' primary objective is to provide a sufficient knowledge base free of SME assistance by offering functional and technical documentation.
# How to Create a Developer Portal
The idea of developer portals sounds great right?🤩

Since developer portals are designed to hold extensive information about a company, setting one up might take a long time, followed by regular maintenance.

[Port](https://www.getport.io) is a developer-focused platform that provides organizations with a single source of truth for all operational and infrastructure resources.  Blueprints, Entities, and Relations are the three main building blocks of Port, which can be used to establish a complete software catalog, unified standards, or governance over processes in your organization.

To start creating your portal, you might want to check the pricing and plans Port offers. There is a free unlimited plan you can use, and there are paid plans with additional features. To subscribe to any plan of your choice you need to [sign up](https://auth.getport.io/u/signup?state=hKFo2SBOSWF3Ylp2ZGRDdk5YYVNINVRlWVNrcFlXVzE4TF82M6Fur3VuaXZlcnNhbC1sb2dpbqN0aWTZIDh0UjR2cGsxSEV2UEhhUVZFWWFpcGpvdTZVNXFDbjBoo2NpZNkgOTZJZXFMMzZRMFVJQnhJZlYxb3FPa0RXVTZVc2xmRGo) on Port first by navigating to the screen below:
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hyecgqlfwlbmdqawf152.png)
You can sign up with Google or manually fill in the necessary credentials; you will be required to sign up with a work email. Verify your email and setup your organization, and you should see a screen like the image below:
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7e0091wxoy6jyl8c02fg.png)
If you reach this point, your authentication is successful, and you can now begin building your self-service developer portal. 

Next, we want to design a new blueprint for services. When you click the "Add Blueprint" button in the top-right corner of the blueprint page, a JSON template listing the microservices we can connect to will come up. A service blueprint will appear on the blueprint page after you click "Save".
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fldr07k4xmnyizr2xda7.png)
To examine all of the services included in this blueprint, expand the services pane and customize the ones you need. When the pane is expanded, a pop-up appears that looks like this:
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t05a7akue08spajeig6n.png)
As in the image above, you can adjust each service's properties in the pop-up window. Make sure to click save after editing. 

To define an environment blueprint, simply follow the steps above but set the identifier to "environment" instead of "microservice". If you require more details, please see the [related documentation](https://docs.getport.io/#environment-blueprint).

We want to create entities after creating service or environment blueprints. An entity is a module of software (microservice) that follows a specific blueprint. To create a new Entity, select "Service" from the list of options under "Software Catalog" in the left sidebar. You should then see a screen similar to this one:
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ndg75b9kvr81capwmz37.png)
At the top-right corner, click “+ Service” to create a new Entity under this blueprint. You should see a form like below, or use the JSON template to create the new Entity.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/84zev8owt3klq4uype78.png)
Click “Create” after filling in the appropriate information, and the new Entity will be added to the list of Entities under the parent blueprint.


We are nearly done. The final building block is Relations, which comes after defining our data model using Blueprints and storing data objects using Entities. 

A Relation is a connection between two blueprints and their entities. Relations are only required when multiple Blueprints depend on one another. You can have your entities without creating Relations in a case where the blueprints are independent.

In our case, there is only one service and one blueprint, but if you have more than one and need to synchronize your blueprints, you can use the [official documentation](https://docs.getport.io/#create-a-relation) as a guide to set up a Relation.

Having successfully created your blueprint, entities and relations for your software infrastructure, feel free to explore the Port environment, you can also define [self-service actions](https://docs.getport.io/platform-overview/self-service-actions/) and check out the Port [complete use case](https://docs.getport.io/complete-use-cases/) to fully set up your software catalog.

Congrats!🥳 You have successfully created your developer portal using Port.
Developer portals can be created using other tools like [Backstage](https://backstage.io), [Apigee](https://docs.apigee.com/api-platform/publish/drupal/creating-developer-portal), [Pronovix](https://pronovix.com/developer-portals), or [3Scale](https://www.3scale.net).
# Importance of Developer Portals
A functional developer portal shares almost the same significance as a good developer experience. We can highlight some other importance of developer portals like:
- **Easy onboarding**: Developer portals contain tools for easy navigation, search, code samples, or tutorials on how to get started using a specific asset. 
- **Awareness**: Developer portals make it easy for developers to comprehend specific workflows and encourage service exploration. 
- **Increased productivity**: Instead of spending time looking for information, developer portals enable developers to concentrate on executing their work. 
- **Easy collaboration**: Developer portals promote a culture of documentation that ensures all the information a developer needs to access a particular resource is properly documented.

# Next Steps
Improving developer experience can have a significant beneficial impact on a company's success. The quality of developers will increase internally and externally, resulting in a ramp-up for the company. 

Visit the [Port blog](https://www.getport.io/blog) for relevant articles if you still have questions regarding developer experience or how developer portals improve developers' experience.