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.

Prolific Engineers Take Small Bites

251 pointsby tbassettoover 8 years ago

25 comments

minimaxirover 8 years ago
This post is a good example of my current issues with modern data journalism as content marketing: you can say <i>anything you want</i> without evidence to back it up, but hey, there&#x27;s a pretty chart, so it doesn&#x27;t matter. (In this blog post, the data points <i>don&#x27;t correspond to actual data!</i>)<p>This is also the primary reason I have switched to Jupyter&#x2F;R Notebooks for my blog posts: if I make ridiculous claims, people can check my work as evidence. This post doesn&#x27;t even provide any quantifiable metrics, just &quot;we analyzed millions of commits.&quot;
评论 #13169422 未加载
评论 #13168395 未加载
评论 #13169923 未加载
评论 #13168177 未加载
评论 #13168151 未加载
评论 #13169719 未加载
评论 #13173719 未加载
评论 #13169710 未加载
trevynover 8 years ago
Non-technical co-founder of Git analysis tool writes blog post that makes assertions about all sorts of things and then justifies this with mockup charts whose axes are unlabeled. Then offers tools to help micro-manage engineers.
评论 #13168209 未加载
评论 #13168084 未加载
NumberSixover 8 years ago
Neither in the article or in the referenced article&#x2F;blog post linked to &quot;Impact&quot; is impact defined.<p><a href="https:&#x2F;&#x2F;blog.gitprime.com&#x2F;impact-a-better-way-to-measure-codebase-change" rel="nofollow">https:&#x2F;&#x2F;blog.gitprime.com&#x2F;impact-a-better-way-to-measure-cod...</a><p><pre><code> What I found is: </code></pre> Impact takes the following into account:<p><pre><code> The amount of code in the change What percentage of the work is edits to old code The surface area of the change (think ‘number of edit locations’) The number of files affected The severity of changes when old code is modified How this change compares to others from the project history </code></pre> No exact or detailed formula for &quot;impact&quot; is given. &quot;takes the following into account&quot; is extremely vague as it could indicate any relationship. Is impact higher with more files changed in the commit? Why would it be better if more files are changed? Is it lower? Why would it be better if fewer files are changed? Is it some totally unobvious non-linear function such as a trigonometric sine?<p>Based on the vague description above, nothing in &quot;impact&quot; is directly related to the actual end user&#x2F;paying customer experience or a reasonable proxy such as systematic end user testing by a QA team.<p>This lack of a direct relationship to the desired end result is the same problem that lines of code (loc or LoC) and many other metrics of software engineer output have.<p>The &quot;impact&quot; metric, whatever it precisely is, looks suspiciously like it would naturally be positively correlated with a large number of commits&#x2F;high frequency of commits.<p>Also the plot is labeled with &quot;volume&quot; on the horizontal axis and not the mysterious &quot;impact&quot; metric. The text implies this horizontal axis is the &quot;impact&quot; metric. Why is the horizontal axis not labeled impact?<p>Even more peculiar, &quot;impact&quot; is claimed to measure cognitive load:<p>Impact attempts to answer the question: “Roughly how much cognitive load did the engineer carry when implementing these changes?”<p>A good engineer will attempt to find a low or no cognitive load solution to a problem! In general this will be faster and less error prone and cheaper! Reinventing the wheel has a very high cognitive load.
评论 #13170841 未加载
rsp1984over 8 years ago
The title, well actually the entire article, is one of those things where A -&gt; B is stated, well knowing (and almost expecting) that readers will understand it as B -&gt; A or B &lt;-&gt; A. It&#x27;s the developer version of the typical <i>&quot;10 Things Successful People Do</i>&quot; clickbait.<p>Yes, a lot of (although far from all!) good coders have the habit of taking small bites. That doesn&#x27;t mean though that by taking smaller bites you are (or are becoming) a good coder. I&#x27;ve had the past displeasure of dealing with code that hit all the superficial checkmarks (small commits, unit-tested, peer-reviewed, you name it...) yet completely stunk.
traversedaover 8 years ago
Jesus that site was annoying. I go to read the article, and a popup beeps at me distracting me. I think &quot;what the hell is this crap&quot; and move my mouse towards the &quot;about&quot; page. A pop-up pops up (as they do) and distracts me from even that.<p>Both times I tried to get information out of their site they found a way to interrupt me.<p>Then I leave without reading the article.
评论 #13169615 未加载
dasil003over 8 years ago
I large agree with this, although with some provisos.<p>First of all, sometimes it&#x27;s most useful to take a step back and think about problems in a wider context. Often the biggest impact is from the code you don&#x27;t write. There&#x27;s really no way those kinds of contributions come out in any kind of metrics, but the team will sure remember them.<p>More commonly, I prefer to commit often to aid my dev process but then rebase those commits into more cohesive units before merging. How chunky to make those final commits is somewhat a matter of taste, and probably shaped by the domain one is working in. Personally I like the finest grain possible without any build breakage, that way git-bisect still works, but hopefully there&#x27;s still enough granularity to help with trickier merge&#x2F;rebase scenarios around dependency upgrades and&#x2F;or db migrations. But pardoning the digression, my point is the output seen by the rest of the team may not represent the original frequency of commits.
评论 #13168170 未加载
xt00over 8 years ago
Title of the article uses the word &quot;Engineers&quot; rather than software engineers, and if you lump together virtually anybody who makes changes to a code base (testers, sw architects, sw leads, etc), it seems like its easy to have the data obviously skewed by people who essentially spam the commit process. I think most people can look at a commit log and sort of eye-ball who are the people who really make shit happen on a project--and who is probably causing more grief than anybody else. I agree its hard to quantify, but to be honest I didn&#x27;t take away much from this article. I like the goal of the article, just think it didn&#x27;t really hit the mark.
tedmistonover 8 years ago
Extrapolating a &quot;prolific engineer&quot; from one&#x27;s commit log is no less absurd than from lines of code.<p>Their methodology fails to account for so many things, commit squashing feature branches, for example. A fundamentally flawed &quot;study&quot;.
评论 #13170562 未加载
coldcodeover 8 years ago
What are they measuring? Public git repositories? The article doesn&#x27;t say anything about whatever data is being analyzed. If its public git that&#x27;s hardly comparable to a large corporate entity.
Dowwieover 8 years ago
Analyzing churn is tricky and can be easily misinterpreted by management. This reminds me of what was revealed from studies in behavioral sciences and presented by Dan Ariely: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=Q92BqouxyX4" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=Q92BqouxyX4</a>
ninjakeyboardover 8 years ago
Can you make any claims about the number of commits? That&#x27;s another metric that changes depending on tools and processes.<p>If you&#x27;re using a code review tool well (if you are more experienced with it) then you&#x27;ll automatically be making lots of small commits vs people that may not be well versed in working that way.<p>If you&#x27;re working with large or prolific teams then you&#x27;ll be committing all the time with eg feature toggles to ensure everyone is as close to the current code with their changes as possible.<p>So making general claims about more commits without taking into consideration the ways that metric is bent and changes with tools and processes and different experiences seems to be dangerous.
kristiancover 8 years ago
Unless I&#x27;m missing something, how is &#x27;Impact&#x27; derived here?<p>Impact as a metric is fine, but you have to show what it is and how you arrived at that conclusion, and have verified that against a test set of data otherwise it&#x27;s turtles all the way down.<p><a href="https:&#x2F;&#x2F;en.m.wikipedia.org&#x2F;wiki&#x2F;Turtles_all_the_way_down" rel="nofollow">https:&#x2F;&#x2F;en.m.wikipedia.org&#x2F;wiki&#x2F;Turtles_all_the_way_down</a>
keeptryingover 8 years ago
This article and company can be safely ignored.
ns8slover 8 years ago
We have a hard rule that you do not commit code that doesn&#x27;t pass unit tests.<p>This leads to bad coders not being able to commit as frequently as good coders.<p>However, this seems like a very, very loose heuristic.
ianstallingsover 8 years ago
Huh, strange. My made up charts say something completely different.
awinter-pyover 8 years ago
concepts missing from the article: &#x27;staging&#x27; and &#x27;commit size&#x27;.<p>People who have worked in code review shops tend to stage their commits, i.e. do a bunch of work but commit it with git commit -p.<p>Article also doesn&#x27;t look at deployment frequency, and &#x27;merge&#x27; appears only once. We don&#x27;t know if these &#x27;high impact&#x27; devs are in their own branch for 6 weeks cooking up the PR from hell. That&#x27;s one way to have a high impact.
agentultraover 8 years ago
I&#x27;m curious what the general vehemence is to quantifying and understanding this information is? It&#x27;s right there in your commit history. I&#x27;ve run my own analyses out of curiosity in the past... statistics just isn&#x27;t my favourite subject. I think it&#x27;s an interesting metric and I&#x27;d certainly like to know more about how it&#x27;s calculated.<p>(Although I&#x27;m sure that&#x27;s part of the secret sauce).
评论 #13172788 未加载
nano1237over 8 years ago
We tried this. It gave us an unmaintainable code base that our platform could no longer add features unless we threw so many people at it.
alphanumeric0over 8 years ago
Well I guess I&#x27;d be labelled a poor programmer since I wait to commit until my code has passed a few core specification tests.
nano1237over 8 years ago
We tried this. Fast commits for small features gave us an unmaintainable code base that eventually didn&#x27;t work anymore.
bertr4ndover 8 years ago
This reminds me that one of the things I loved about working on server-side efficiency is that for any given diff, you can measure the performance improvement, multiply by hardware costs, and say, &quot;That diff saved $X.&quot; Makes it really easy to measure impact and feel that my salary is justified.
评论 #13168625 未加载
ticktocktenover 8 years ago
This is misleading, however I would like to point out that if Small Bites == Kaizen. Then, Prolific Engineers like any other prolific professionals may be Kizening the crap out of their codebases. No data here either to back the smart ones up though.
arnonover 8 years ago
Unfortunately know some bottom-right quadrant people. We got rid of some of those not too long ago - wouldn&#x27;t want them on my team again. Super hard to manage and work with.
z3t4over 8 years ago
How do you finish a project ? One step at a time !
clifanaticover 8 years ago
There&#x27;s a great, fun, programmer-centric website called thedailywtf.com (sorry, I just scheduled the rest of your afternoon for you). Developers can submit WTF&#x27;s that they&#x27;ve found in other&#x27;s code - as the site admin says, &quot;curious perversions in information technology&quot;.<p>One thing that strikes me about the majority of the submissions, as funny as they are, is that they mostly boil down to &quot;so-and-so didn&#x27;t know that such-and-such feature existed, so wrote reams of code to implement that feature in a complex way&quot;. It also strikes me that just this article&#x27;s sort of analysis of &quot;prolific&quot; (aka &quot;good&quot;) engineers&#x2F;programmers drives this same sort of behavior. If every developer is supposed to be committing code all day, every day, there&#x27;s no time left over to read the product documentation, try out a new feature, review a reference implementation, read a blog post: to be &quot;good&quot;, you must be spending as much time as possible _typing_, because that&#x27;s what you&#x27;re paid to do. This (ubiquitous) management mentality is how we end up with roll-your-own crypto, or five competing Javascript frameworks, parsing using regular expressions... it&#x27;s not so much that what they did was wrong - and trust me, if it works, it won&#x27;t be removed - it&#x27;s that it&#x27;s pointless.
评论 #13168488 未加载
评论 #13170317 未加载
评论 #13169027 未加载
评论 #13168491 未加载
评论 #13168642 未加载