There are a few metrics in common use for gauging a developer’s ability:
- Proportion of success
- Years of experience
- Speed / efficiency
- Quality of code
- Fame or reputation
- Amount of code written
- Ability to think abstractly
Different people and organizations give varying weights to these indicators when evaluating a developer for one reason or another, whether for potential employment, as part of a competition, or simply out of personal interest.
But can a developer’s skill be described by some formula composed of such figures? Is any one weighting system likely to be more accurate?
Yes to the latter; very much no to the former.
Can we feel assured that some systems of evaluation are more dead-on than others? Absolutely — there are some ways of examining a developer’s ability that strike way off. Taking “lines of code written in career” as a major metric is bound to lead to failure — any developer worth his or her salt knows that lines of code are virtually independent of quality. In contrast, a careful comparison of a developer’s career and success of his projects might provide a more accurate version of their abilities, in light of what they have accomplished.
But what are we trying to achieve when we rank this way? We’re only trying to figure out where we place a person in comparison to others. It’s at best an approximation. It doesn’t nearly explain who they are as a developer, nor what they have accomplished in the broader sense.
A young schoolteacher educating fifteen children in a one-room schoolhouse in rural Montana one hundred years ago is a good representative of the class of people we might call “not highly accomplished.” Such an individual lived in a small community, interacted with few people, had a very small legacy that lasted not very long after death, presumably. If you were to “gauge” such a person’s effect on the world in some kind of ranking of teachers worldwide, you wouldn’t place him or her very high.
And you might be right. Or you might be very wrong. The point is that from an external standpoint, you have no way of knowing the true quality and impact of this teacher.
Would you know if her students were bored and uninspired by her teaching, or if she taught with an infectious love that gave them a thrill of learning for the rest of their lives?
Can we determine if half of those students never worked a solid job in their lives, or if they raised children with such dedication to success that they went on to become movers and shakers?
And is there any practical way to say if the words of wisdom that teacher imparted fell on deaf ears, or if they were received willingly by eager students, used to guide their actions through the course of their lives, improving their choices, their own lives, and the lives of those around them?
These are imponderables, mostly — we won’t ever know, we can’t know, and that’s alright. Some of the best legacies are an undercurrent; unknown and largely unfelt, but raising the quality of our lives and our world in humble but significant ways.
Rating a developer is much like rating this teacher. In fact, rating any individual’s accomplishments follows a similar vein, but as practical creators in a decidedly hard (as in not soft) discipline, developers have their abilities and accomplishments rated, ranked, and considered much more often and more stringently than many other fields.
This discrepancy elucidates why it’s so important not to let our systems of evaluation for a developer’s effective quality influence how we evaluate their actual accomplishments. A good developer’s impact on the world goes far beyond the number of projects they’ve created, or the number of users they’ve gained for a company, or the amount of money they’ve earned — or indeed any such metric or combination of metrics. A developer’s impact is the lives they’ve affected in a thousand subtle, unknown and probably unknowable ways.
People in the software industry often say “our software changes lives” or a similar variant. It’s meant to inspire confidence in the product they maintain — totally understandable. But the ways in which software really changes lives are the ones mostly unseen.
Software changes lives when two people who might never have met use a small-market app to get together and collaborate on a project that one day balloons into something significant.
Software changes lives when a doctor makes a better diagnosis because the diagnostic software they use incorporated a library that simplified the primary developer’s task, enabling them to focus on the big picture and make a more accurate algorithm.
Software changes lives when a destructive virus is blocked by free antivirus software using a definition that was submitted by an anonymous user who discovered the existence of this new virus using white hat hacking techniques he plays around with in his free time.
And software changes lives when an educator is able to use an interactive 3D model to represent a molecular structure to a struggling student, or when an lonely child connects to the world through an online game, or when your car doesn’t crash and kill a pregnant mother because it has well-written collision detection, and in a hundred thousand other ways which go undocumented and uncompensated and likely always will.
And all these ways that software changes the world mean a developer changes the world whether anyone knows it or not, and whether the developer even knows it or not — but it lives on as an invisible legacy of that developer making people’s lives better.
That is a developer’s ability. That is what makes an accomplished developer, though we may never know it.
Practical rankings and ratings are understandable and necessary. We live in a practical world. If you need to develop software in a timeframe and scope and with a limited number of resources, you need to confirm as accurately as possible who will best meet those criteria. You can’t possibly, and shouldn’t, probably, take the time and effort to figure out just who this developer really is, and what we can expect from their lives, and all the tangential paths through which they impact the world. That’s all very nice, but has no bearing on the practicals of here and now.
So go on with your rankings; try to be fair, but be realistic. There’s no cruelty inherent in making decisions with cold, hard, verifiable facts. Good decisions breed success, and success, when achieved properly, leads to a better world in its own way.
But take some time to think about the million ways that a million developers you have never heard of and never will are improving the world every day without even knowing it, and be glad.
(Cross-posted at https://medium.com/@MartinBerlove/a-developers-impact-f2f76385c811)
生命在客观的世界里，也有喘息的时刻_散文精选_心情随笔 人的一生要经历许多的事，遇见许多的人，事有好事和坏事，人也有好人和坏人之分。总之人生，就是在一个大的环境里，经历和见证各种各样的事情，遇见和承受各种各样的人。这也仅是我们人生道路上的某种经历了。 我们许多人总是喜欢说，人生的苦，人生的艰难险阻。其实，这是他们过分地放大了社会的负面，消极人生观的他们，只感受到社会带给人生的困难。面对现实中的谎言和叵测险恶的人心，以及情感经历上的牵挂，等等，都让他们感觉到人生很累很疲惫，还有这么多的没完没了的酸甜苦辣，就是毫无尽头的千辛万苦。 一个人的生命过程，既是一个享受的过程，又是一个人的付出过程，
八月，你好_散文精选_心情随笔 时光在岁月的长河里悄然流逝，记忆的光影在心底若隐若现。 八月，月光朦胧的深夜，繁华的街道终于安静了，璀璨的街灯照耀着县城的每一个角落。忙碌了一天的人在梦乡里遨游着，隔壁房间的朋友传来了几声呼噜声，是啊，他都已经进入到了梦乡，而我还拿着智能手机。 已经是凌晨一点了，我玩得有些疲惫，可是内心还是久久地不能入睡。于是，我打开那扇防盗窗，对着窗外的月亮发呆，月光很清澈，星空布满了这个小城市。面对着月光景色，内心却有些迷茫。忽而，隐隐约约的月亮从天边猛的闪出一道亮点，并透过窗户照射到我的屋子里来，在那不经意间，我似乎变成了一位久经沧桑的老人。 记忆中有些东西总是那