I am writing my first post here to express my developer experience in my 10+ years of experience as a developer. I am trying here to explain Developer Experience that can understandable by developer 😊
Many organizations needs to think more seriously about the DX. Let’s see what is exactly mean by Developer Experience. DX is similar to UX and here User is the Developer, User who is creating a product or work for companies.
Companies mainly focuses on improving employee experience, means they provide perks like wel-come kit, good office ambiance, free beverages etc. but I think they should more spend or invest on how developer can work or finish their tasks effectively or efficiently.
Below are some of Good / Bad developer experiences.
🌐 System OS : Biggest problem these days, companies provides windows laptop to developer to work. Windows has many issues while installing dependencies. Most of the dev’s spent maximum time to resolving dependencies while setup new projects on windows system. On the other hand Linux or Mac suites best for development & that can be improve dev experience as well as product quality and it consumes less time as well.
🏗️ Project Setup: Complex architecture, over engineering or unnecessary other application’s dependencies make difficult to setup a project on local for new joiners. Another big problem is not having proper documentation to install/setup the project. After cloning project need to modify too many files inside project to get it run on local & keeping in mind that those changes should not be a part of your PR 😖.
🛠️ Tools: Many Developer dev’s uses VS Code these days but there are other many dev’s uses WebStorm, sublime text, atom etc. company should allow them to download this kind of IDE’s and also provide them paid license if required. Same with other tools like BrowserStack, Udamy, Coursera etc.
🤖 Automation: Architect/Senior team must think about automate deployment process. Jenkin pipeline jobs should be auto triggered, like after creating PR or after merging PR to branch, deploy changes to dev environment & easily can deploy changes on QA/Stage/Prod environment. Manually triggering Jenkins job with too many parameters is not good DX.
🛡️ Release Process: Release process should be very well aligned, automated & should not include any manual changes needs to be done while releasing. Developers are humans and they have ability to forget 😊, Sometime they forget to run one of script on stagging/beta/production environment while deployment is nightmare 😢. Sometime I experienced to release one feature which needs to deploy multiple changes on multiple servers (buckets) or manage many scripts to run on difference DB manually is not a good process. This gives headache to developers as well as time consuming. Organization should invest sufficient time to automate this kind of process. 😊
👨🏽💻 Role & Responsibilities: Many organizations assign tasks to developers who don’t have that skills. Like assign some backend task to Frontend dev and vice versa. Or give some technical task to non-technical person. This is very bad developer experience and that task will not be completed properly.
Organizations should take a survey to collect the feedback from developers whether are they happy or not with current development environment & what exactly they want or how can that be improvised.
Please feel free to add your thoughts or good / bad experiences as a developer in the below comment section.
Latest comments (2)
Checkout my conversation with Tanja Buch from Thoughtworks, how to identify bad developer Experience?
Some of the problems you mentioned can be solved with Backstage.
For System OS issue we are seeing raise of tools like Gitpod to solve this issue.
Thank You @anilbms75