I started my career as a software developer a few decades ago as part of an enterprise IT function. I was blessed to work in new development projects using state-of-the-art technologies. While I loved the technology, I also absolutely enjoyed interacting with users. I could visit their offices where they took orders and created invoices; I could walk through the warehouse where goods were received and binned; I could see the pickers moving through the warehouse with the picking slips; I could see the trucks coming into bays and loading the picked products to be delivered to the customers. The real thrill was to see the happiness in the users’ faces (not just emojis!) when a solution I conjured up ‘magically’ solved a real problem at work! I told myself – ‘I made a difference’!
Today many developers do not have the advantage of interacting directly with users of their creation. Some developers work for IT Service Providers away from the user organization; some work for a software product organization; some work for an enterprise IT function in different geographical locations away from the users; some are creating software for the cloud where the users could come from anywhere! Some of them simply work for a large organization which have separate functions that communicate with users and pass on the requirements to the developers. Many organizational structures have evolved to meet the needs of the global scale and diversity!
Unfortunately, this has increased the ‘distance’ between the developer and the user. I believe this vastly reduces the ability of a developer to visualize customer’s business and truly innovate in ways that will add value to the user!
Here are five steps that organizations could take to reduce this ‘distance’ between developers and users.
- In software product companies, typically product management would be interacting with users and user groups. Product Managers can take a few senior developers along with them to these interactions. Recording of these interactions could be shared with all the developers in the teams.
- In geographically distributed teams, proximity to users will help developers relate better to the business problems. A few developers could be allowed to temporarily work closer to customers in remote locations. Remote technologies are fast emerging and taming the distance challenge.
- Many organizations now adopt design thinking. A lot of research goes into User Persona definition and User Journey Mapping. Developers should be equipped with design thinking concepts and could directly participated in the research on their user base.
- Information on user adoption of delivered functionality is crucial for developers. Thanks to agile, many teams deliver smaller features faster and more frequently. User adoption data and specific user feedback would help the developer get continuous feedback and a sense of fulfillment. User representatives should be part of periodic demos as the solution is being built!
- Technologies are changing fast and are enabling new ways to solve business problems. Developers should have the time and freedom to create innovative solutions of value leveraging new technologies. Culture of ‘experiment and learn’ within organizations is critical to make true innovations originate from developers.
In conclusion, these steps would help realizing agile principle #4 in practice – “Business people and developers must work together daily throughout the project.”