TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

The Eternal Struggle Between Business and Programmers

27 点作者 reforge_reborn大约 11 年前

10 条评论

rayiner大约 11 年前
Part of the problem here is that developers don&#x27;t do a good job of creating a culture that values refactoring as a key part of the overall process. The underlying issues are not, at a general level, unique to software. It&#x27;s not like the business folks at GE aren&#x27;t asking for more features faster. However, other engineering fields have done a much better job at making things like, e.g. testing, a core part of the culture. GE doesn&#x27;t ship a refrigerator without incredibly extensive testing, not just because of the threat of lawsuits (another thing software developers don&#x27;t really face), but because the relevant engineering bodies have made testing a non-negotiable part of the process.<p>From a manager&#x27;s point of view, there&#x27;s a big difference between having to say &quot;our engineers would like some time for refactoring&quot; and being able to say &quot;refactoring is just part of the process--any other engineer would tell you the same thing.&quot;
评论 #7751578 未加载
mattgreenrocks大约 11 年前
It&#x27;s worth noting that all three parties (devs, business, board&#x2F;management) are acting out of fear. It&#x27;s little wonder that the outcome is poor.<p>* Management needs to get over itself and have a true vision beyond, &quot;omg competitors are making money...more features!&quot; that it conveys to everyone.<p>* The businesspeople need to absorb some of management&#x27;s anxiety (and their own) on behalf of devs, and communicate with customers to ensure the vision aligns with what they want.<p>* The developers need to stop whining, up their game and go a bit slower so they don&#x27;t get themselves in these situations to begin with. Give them what they need (quality code) not what they want (&quot;anything that works NOW!!&quot;).<p>The business world seems rife with people who are purely reactionary, and yet still have the gall to wonder why they cannot innovate: &quot;We don&#x27;t have money for R&amp;D!&quot; OK, you don&#x27;t have money for growth then.
评论 #7750790 未加载
jtheory大约 11 年前
This is a vague discussion that stays at a high level... I&#x27;m not sure how valuable this kind of generalization is.<p>The &quot;programmer&quot; side of this discussion certainly does <i>not</i> always have a grasp of the needs of the business in mind, and it doesn&#x27;t help that estimations of effort for new features (or refactoring efforts, even minor ones) are notoriously difficult. Some programmers are business-savvy, but most really aren&#x27;t -- not necessarily due to ignorance or inexperience! It takes significant effort &amp; time to keep a finger on the pulse of a business, to really know how much <i>this</i> contract matters in the grand scheme, what&#x27;s <i>really</i> required to land it, and when.<p>So it comes down to communication, and different people figuring out what actually needs to be communicated, but that&#x27;s so relevant to everything it&#x27;s almost useless to say.<p>Case studies would be more interesting -- real ones, inasmuch as that&#x27;s possible without making real people look bad. The author seems to consult on this sort of thing for a living, so that&#x27;s probably possible.
评论 #7750123 未加载
bowlofpetunias大约 11 年前
One major problem with this: Business lies.<p>Not maliciously, it&#x27;s just the way they do things. They think they&#x27;re negotiating instead of cooperating. If they really need feature X in 6 weeks time, they will tell the Programmers they need it in 4 weeks.<p>Programmers however will be honest, and worse, <i>optimistic</i>. When they say it can be done in 8 weeks, 10 weeks is probably more realistic.<p>That huge difference removes all the room for coming to a mutually satisfactory compromise.<p>Even if both sides agree on a compromise, the Programmers will be fucked. They only difference is that they&#x27;ve fucked themselves, but since in the end it will come out Business &quot;lied&quot; (we all know it, the moment we delivered just in time, and nobody cares for <i>weeks</i>), they will still blame Business.<p>Business and Programmers need an interpreter that doesn&#x27;t take sides, but hey, we just figured out management is useless, right?
rumcajz大约 11 年前
One thing not to forget is that if you unleash refactoring on a grand scale you&#x27;ll end up with second version syndrome.<p>Thus, management has a problem. To allow refactoring, they need to believe there&#x27;s a technical person in charge that is able to keep the refactoring in check. But, as a manager, how would you asses that?
评论 #7750508 未加载
baldeagle大约 11 年前
I&#x27;ve always wondered why, in a company that loves 6 sigma and other process improvements, we never really got behind refactoring code. I mean, cleaning the flow of books and nuts through the line is praised, but the flow of an array through logic is not. I think it has to do with the former being easily seen - physical and the latter being abstract. It could also have to do with easily proving repeatability... It is easy to see that the bolts will be installed 500 time in a week; less so about the logic. In fact, I think if we could show measurable velocity improvements from refactored code; it would show business how investing in refactoring pays off. Kinds like a Toyota production system for c++.
评论 #7750082 未加载
buckbova大约 11 年前
&gt; The Business needs to agree that the Programmers have heretofore gone more quickly than they really can, that they cannot sustain this pace, and that to do so merely hastens the ultimate decline of the entire product line, and perhaps the company.<p>Yes the business agrees, but then continues to demand new features. Nothing changes until the people change, code is tossed out, and the whole thing starts over again.
bippi大约 11 年前
My most heartening point of this post and story, is that there are only 21 comments as of this post (22 after I hit &#x27;enter&#x27;). So, while I sourly identify with this piece and want to post it outside of my cube wall... this isn&#x27;t garnering nearly the crowd of other universal HN siren songs.<p>Phew.
ale7714大约 11 年前
The timing of this post is great! So tented to send it to my boss who apparently has no clue in software engineer. Great article! Recommend it!
评论 #7749977 未加载
michaelochurch大约 11 年前
This is a pretty shallow analysis, and I don&#x27;t find it useful.<p>&quot;The Business&quot; is mostly full of non-technical people who, while they might not be analytical or even as smart, but who understand politics well and know how to solve the local optimization of seeking their own careers and power. They don&#x27;t want &quot;more features! now!&quot; Their motivations are things like (a) making their mark, (b) concentrating a power base, and (c) tying their names to an obvious, low-risk opportunity for visible gain. The reason they want &quot;features&quot; is that everyone who gets power needs to use it to make some kind of mark in order to retain that power. Programmers tend to underestimate &quot;business idiots&quot; while refusing to acknowledge that those &quot;idiots&quot; being in charge means that they&#x27;re good at <i>something</i>.<p>Programmers don&#x27;t want &quot;more refactoring!&quot; out of some knee-jerk defensiveness. The good ones want <i>technical excellence</i>, which dies in deadline culture. They want to build things they can be proud of. And there are careerist reasons for them to feel this way, because tech gets shit on as soon as things go bad, no matter who&#x27;s really at fault. If you build a system that generates $50 million per year, then make a mistake that causes 4 hours of downtime ($23,000 loss) of that system, you&#x27;ll typically be mortally embarrassed and possibly fired. So, programmers have solid,m career-oriented reasons to push back when asked to do something in a quick, sloppy way. They (and not the managers who ordered them to cut corners) will be the ones to suffer when things fall apart.<p>The hard and painful truth is that business-oriented programming is underappreciated by business and unattractive to talented programmers, and so almost a complete non-starter. The good people tend to fight for a while (for more refactoring, more autonomy) but eventually disengage or go elsewhere (e.g. consulting, where there&#x27;s an outside chance of getting what they&#x27;re actually worth). The bad programmers don&#x27;t care about &quot;refactoring&quot; per se but have learned how to parrot the good ones. Thus far, VCs have tried to overcome this problem (the complete non-viability of business-oriented programming) with the smoke-and-mirrors show of startups and paper millionaires, but the wiser people are starting to figure that one out, too.<p>For the record, there isn&#x27;t a huge mismatch between &quot;The Business&quot; and &quot;The Programmers&quot;. Great programmers are <i>perfectly happy</i> working for the business, if compensated appropriately (see: quant traders at hedge funds) or if they own it. They just don&#x27;t like working for the business <i>as a subordinate</i>, because it leads to spending a lot of time implementing <i>stupid</i> features that obviously don&#x27;t make sense or deliver value to the company, but that meet the parochial needs of a specific ambitious executive (who won&#x27;t protect them in return for their service).
评论 #7750345 未加载