Thursday, January 25, 2024

Domain Knowledge First

 Since the appearance of computer software there have been ongoing debates about software development approaches.

When I started to use MS Visual Studio, the product has already offered support both for  the "database first" and the "code first" approaches. 

The proliferation of websites, web applications, and then the mobile apps have created demand for rapid software development tools, and have contributed to the acceptance of the "UI first" software development approach.

While the "database first" approach is still relevant to industries with slowly changing technological and business processes, the "UI first" approach is the best bet for agile teams.

Interviewing users, keeping in touch with the aim of refining the user interfaces, and then getting the client's approval require both soft skills and specific domain knowledge. 

When I was collaborating with an agency specializing in bespoke software, I was encouraged to ask questions about the business logic, in order to uncover possible gaps in the UI drafts and flows.

Missing a task, a parameter, or a criterion from the user's processes leads to issues during software design and implementation. Catching and resolving those issues as early as possible is important, fixing them later in time requires more resources (waste), and produces frictions between developers and users.

"Domain knowledge first" is about preventing the mentioned waste and frictions. Whatever software a team is going to develop, at least one of the team members needs to take up the business analyst's role, to learn about the business processes, to stay in loop with users, and to review the UI drafts and flows.

10-15 years ago the high demand for websites and apps have produced high demand for front-end developers, and in short time a diversified market offer of education in the field of front-end development. Up to a point, the newly certified or graduate task force has been absorbed by the job market. 

Then the second generation cloud technologies have contributed to the proliferation of the SaaS products. Due to the competing offers of cloud-based office tools, visual designers, and other utilities, these products have become affordable to most companies. 

Consequently, these days a front-end developer needs to diversify his/her skills to stay employed, and learning more about the company's processes (domain knowledge) might be a perfect starting point.




No comments:

Post a Comment