Yegor Bugayenko's Blog, page 6
October 20, 2021
Objectionary: Dictionary and Factory for EO Objects
Since the time of Kernighan and Ritchie we share binary code inlibraries. You need to print some text with printf() in C ? You get libc library with700 other functions inside.You need to copy a Java stream?You get Apache Commons IO with copy() and 140 other methods and classes.The same happens in all languages I���m aware of, like Ruby, Python, JavaScript, PHP:you need an object, or a class, or a function, or a method���you have to addthe entire library to your build. Wouldn���t...
October 11, 2021
Calibrated Achievement Points
It���s a well-known problem nowadays: how can we measure the performance and productivity of individual contributors who do non-routine creative work? The best examples are research and development (R&D) teams, which usually consist of software engineers, designers, scientists, architects, quality experts, product managers, and so on. Such professionals deliver results that are hard to get down to simple numbers. Many authors arguethat the very idea of measuring individual performance is ...
Calibrated Achievement Points (CAP)
It���s a well-known problem nowadays: how can we measure the performance and productivity of individual contributors who do non-routine creative work? The best examples are research and development (R&D) teams, which usually consist of software engineers, designers, scientists, architects, quality experts, product managers, and so on. Such professionals deliver results that are hard to get down to simple numbers. Many authors arguethat the very idea of measuring individual performance is ...
September 8, 2021
SIMBA: Simplified Management By Artifacts
Here is a very simple management framework, which we have used in our teams for the last two years. We came to it experimentally,trying to merge some Agile principles, PMBOK ideas, andcommon sense. Our experience so far is positive, even thoughthe proposed rules of work are not really about project management, but more about keeping an eye on the situation and making sureit���s not falling apart. This is the best most modern teams can afford anyway.
[image error]Lion King (2019) by Jon Favreau...August 10, 2021
Logging in Unit Tests, a Bad Practice
Logging is an inevitable part of debugging. Well, at least in modernhigh-level programming languages and architectures. It wasn���t thirty years ago, in Assembly, but it is now. Sometimes we trace variables, but rarely. More often we just print them to console. Moreover, we don���tjust print them using println or whatever it is we have for consoleprinting; instead, we send messages to a logging framework, which deals with the console or any other logging destinations, like files. The beau...
August 3, 2021
Prestructors
Making constructors pre-process the arguments before encapsulating them seems to be bad practice. However, very often it���s necessary to do exactly that: perform some manipulationswith the objects provided as arguments and only then assignthem to the attributes of the constructed object. For this purposeI suggest using prestructors, which could be methods or stand-aloneobjects.
[image error]Huge in France (2019) by Gad Elmaleh et al.Say, this is your code:
import java.util.List;import java.uti...May 31, 2021
A Few Tips for Recruiters
Recruiters, you know what we programmers think about you, don���t you? Read thisand this, to get the full picture. You are still here because we stilldon���t have good tools and we still enjoy being enslaved. One daythis will be over and you will stop exploiting our drawbacks,will lose your ���Senior Recruiter��� jobs, and start doing something useful and meaningful. However, until this day comes, here is someadvice, to help you be a less annoying better head hunter.
[image error]The Fifth Elemen...April 13, 2021
How We Organized the First ICCQ
First, let me clarify what kind of conference we are talking about. There are two types:professionalandacademic.The difference is huge.My understanding is that professional conferences are for practitioners, while academic ones are for researchers.ICCQ, which we organized this year, was an academic conference.I haven���t had any expertise in organizing such things, and had to go through it all for the first time.Here is a more or less detailed description of the journey.Feel free to l...
March 2, 2021
Imposters to Win!
The time of objectivity is fading out. Meritocracy is now a rude word.Metrics in management will soon be considered as harassment.Productivity is already a false objective.It���s time to start taking advantage of this era of nonsense.The era of imposters is coming!Don���t miss the opportunity to become a great one.Here is a quick summary of key techniques to make you highly successful in any argumentyou may have in your flat democratic organizations of the future withoutany skills, kno...
February 9, 2021
Dataization
There are three things in EOLANG (and the ����-calculus which webased it on): data, atoms, and objects. There is a dataizationfunction, which puts all three together in order to make an EOprogram alive. Here is how it works together with Java,for example.
[image error]Space Force (2020) by Steve Carell and Greg DanielsLet���s say we are making an online shop where items arebeing shipped to different countries and we must calculateshipment costs based on the customer���s location. We createan abst...