TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Domain knowledge or a lack thereof (2013)

105 pointsby ggr2342almost 2 years ago

19 comments

PeterStueralmost 2 years ago
The worst in my days were the very large projects. Besides many other problems. The system&#x27;s funcional design was written up by analysts talking to the client&#x27;s middle managers. Neither of those groups had a grasp on how things <i>realy</i> got done on the workfloor beyond the most basic sunny day scenarios. Actual developers and actual users were not allowed to talk to each other as many times the new system would obviously involve some redundancy&#x2F;displacements in the workforce which needed to be kept under covers and some completely made up at salrs pre-existing system capabilities of the supplier such conversations would &#x27;leak&#x27;.<p>Needless to say these projects typically crashed and burned irrecoverably at first contact with production.
评论 #36292345 未加载
samwillisalmost 2 years ago
Ask &quot;dumb&quot; questions.<p>The best lesson I have learnt working in product development (both software and physical) is to ask &quot;dumb&quot; questions. The vast majority of the time they aren&#x27;t dumb. What seems to you, on fist pass, to be a dumb question is almost certainly an insightful one. The person, your customer&#x2F;client, will be pleased to hear you asking it.<p>Every answer to a question is a jigsaw piece, ask a question that fills in the next gap until you have the full picture. Each answer gives you a new edge in the picture to ask a question about.<p>Sometimes the &quot;expert&quot;, your customer, who you are asking won&#x27;t know, and that&#x27;s just as valuable as it gives you insight into them and the new field you are working in.<p>Don&#x27;t stop asking questions, start with them, then Google and read anything and everything you can.<p>An enormous part of new product development is learning about the field, then applying your learnt knowledge from elsewhere to it.
评论 #36287724 未加载
评论 #36286119 未加载
oaieyalmost 2 years ago
Domain knowledge is also the thing upper management conveniently ignores when it comes to fire and hire (I intentionally changed the order ;)), off-shoring or we-do-projects-but-are-not-a-software-shop ignorance practices. The little percentage in money you gain, you dramatically loose when delivering on this fresh people.<p>If you have a domain competent group, your requirements&#x2F;stories&#x2F;tasks are faster written, better developed, better tested and quicker delivered. In addition to hitting the market need. If not, you will see money burning.
BlargMcLargalmost 2 years ago
Unless the market is big, most employers give zero incentive to accumulate domain knowledge. Between learning the new hot framework and accruing domain knowledge, one is clearly better for the average dev&#x27;s career.<p>The advice is great in a world where people remotely cared about good software and are willing to pay for it. Not such great advice for reality.
评论 #36286831 未加载
marcodalmost 2 years ago
Any employer can increase the amount of domain knowledge in their software development teams at any time. All it takes it giving them the time of the employees who use the product. Ergo, the actual problem is that is too expensive for most profit driven organizations.
评论 #36287592 未加载
pphyschalmost 2 years ago
This is a reason why I like to use Python for more things than is strictly necessary. There&#x27;s a <i>ton</i> of domain experts writing Python for their non-SWE jobs. Contrast with e.g. JS and Ruby which are more SWE&#x2F;webdev-only languages.<p>I like to think it makes knowledge transfer at least a little bit easier across the user-developer membrane.
评论 #36288929 未加载
erehwebalmost 2 years ago
Seems like it should be completely obvious, but when I worked at $SOCIAL_MEDIA_CO there were several Engineers who refused to use the product but claimed this had no effect on their work.
评论 #36286442 未加载
评论 #36286519 未加载
Jtsummersalmost 2 years ago
(2013) with a discussion at the time: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=5263486">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=5263486</a> (110 comments)
verbifyalmost 2 years ago
This person appeared to make hardware manufacturing applications (like CNC machines). In my experience with software like CRM there&#x27;s a nuance to which domain knowledge is important (but I presume also financial software, and to a lesser extent ERP).<p>My experience is more with CRM. In these cases, domain knowledge is still important, but it&#x27;s more about the curiosities around how a specific sales&#x2F;marketing&#x2F;customer support team is structured - how do they divide up leads? Do they compete with each other within the team or are bonuses given to teams? Usually these decisions are informed by domain knowledge. E.g. the customer support of a boutique expensive watch brand would be more of a concierge service (with tickets requiring immediate attention - a delay in response could represent a big loss in sales), while for a mass manufacture cheaper line it would have more of a volume of tickets and human response times might differ. Escalations would therefore need to be programmed differently. To give another example, I can imagine seasonality having a huge impact on how a financial team want their software programmed, and that is informed by domain knowledge.<p>But knowing how watches are made wouldn&#x27;t help me with understanding &#x27;domain knowledge&#x27;. I need to understand how they are sold. The domain that I need to understand is &#x27;how does this sales team work&#x27; not &#x27;how does this product work&#x27;.<p>I guess what I&#x27;m saying is the right kind of domain knowledge to match the task.
评论 #36286663 未加载
charlie0almost 2 years ago
I&#x27;d argue domain knowledge becomes less and less important as the size of the organization grows. Eventually, it gets to the point where what you are working on is just a tiny piece of the overall work, it just doesn&#x27;t matter. Also, at that larger size, your input doesn&#x27;t matter very much either, that&#x27;s what the BA team is there for.<p>The best organizations will work to leverage the productivity of individual devs over just throwing bodies at the problem, but that doesn&#x27;t happen everywhere.
nologic01almost 2 years ago
Domain knowledge should be available in the <i>team</i>, not necessarily every member of the team. Together with good communication this solves the issue on a 80&#x2F;20 basis.<p>The exception is of course if you work solo, in which case it does indeed become a full stack problem of sorts. Individuals who can pull this of can make significant impact.
js8almost 2 years ago
I agree with the article, domain knowledge is important and under-appreciated. It&#x27;s strange that companies hire SW engineers mostly on knowledge of the tools rather than understanding the problem domain. It&#x27;s a wrong Taylorist idea that programmers should focus on how and not on why.
AdieuToLogicalmost 2 years ago
&gt; I believe that a lack of domain knowledge is the root cause of a lot of very bad software that gets developed and I think that it is up to computer programmers and their managers to deal with this.<p>This is probably the best thesis statement I have seen regarding S&#x2F;W engineering in a long time.
tanepiperalmost 2 years ago
At IKEA, we have something called &quot;Front Days&quot; that non-retail co-workers can sign up and work in the store for a few days. I did my first one three weeks ago, and it was a great way to get out from a desk and see the reality of what we&#x27;re all working towards.
评论 #36290535 未加载
aryehofalmost 2 years ago
While it would be ideal if all the software devs writing say a General Ledger application were accountants, the reality is that will not be the case.<p>I call domains where expertise lies outside of the software development team - “external domains”.<p>For these, programmers, testers and managers need additional skills in requirements elicitation and capture, and more importantly skills in modeling a system (real or imagined) based on those requirements.<p>In a software world dominated by technical requirements, how to determine and model <i>functional</i> requirements in an <i>external domain</i> can be what makes a programmer a great one.
评论 #36290574 未加载
Dave3of5almost 2 years ago
From a selfish dev side learning too much domain will lock you into to a company.<p>I prefer not to have any vendor lock in so I focus my skills on the parts that are transferable to other companies.<p>Domain knowledge to me is primarily a BA responsibility. The bits that a dev needs to know are converting that into the implementation.<p>FYI this also probably comes from someone who hasn&#x27;t had a very niche and difficult domain. The most complex domains I&#x27;ve worked in would have required decades of training and experience to understand. My job was to know enough to to my job well.
ChicagoDavealmost 2 years ago
100% agree.<p>And some domains are extremely complex, requiring an extensive learning process. This is why large consulting-led projects fail, because there isn’t enough time taken to truly understand the domain.
Domdomkusualmost 2 years ago
I loved your idea. We have to be experts in our own field. The person who tries to learn everything actually learns nothing.
jameshartalmost 2 years ago
But don’t fall into the trap, as a developer, of mistaking your hastily acquired superficial domain knowledge for <i>actual expertise</i>.<p>One particular Dunning Kruger trap that devs can fall into is fixating on the most complex parts of the domain that they understand in any depth, and the edge cases that complexity suggests, at the expense of addressing the concerns of the actual experts, that are most relevant to the task at hand.<p>This can lead to software centering domain concepts that are esoteric and obscure at the expense of the concepts needed to meet the actual requirements. Or embedding rules that to experts are more like guidelines.<p>Like: it’s great that you’ve developed a deep interest in and love for heraldry, the system of colors and tinctures, and the way flags can be described using a blazon - but it’s probably okay to just have an SVG url for an image of the flag in the database, not a full blown heraldic DSL.