Yegor Bugayenko's Blog, page 6
June 13, 2022
The Principle of One
When I make a slide deck for a new presentation, invent a new domain name, think abouta name for a new Java class, itemize bullet points in an academic paper, evenwrite an email���I try to follow a simple principle which helps me makemy content more solid. Well, at least I believe it does. Maybe it will help you as well.The principle is simple: at all costs, try to squeeze the content intoone word, one sentence, one paragraph, or one page.
[image error]True Story (2021) by Eric NewmanA more formal ...
June 4, 2022
Reflection Means Hidden Coupling
Reflective programming (or reflection) happenswhen your code changes itself on the fly. For example, a method of a class, when we call it,among other things adds a new method to the class(also known as monkey patching). Java, Python, PHP, JavaScript, you name it���theyall have this ���powerful��� feature. What���s wrong with it? Well, it���s slow, dangerous,and hard to read and debug.But all that is nothing compared with the coupling it introduces to the code.
[image error]Wheelman (2017) by Je...March 28, 2022
Bugs Occam���s Razor
For each accepted explanation of a phenomenon, there may be an extremely large, perhaps even incomprehensible, number of possible and more complex alternatives. The principle of parsimony, also knownas Occam���s razor, suggests we prefer the simplest one. For example, ���I can���t open the door and can���t attend the meeting��� is a descriptionof a problem, which could be reduced to ���I can���t open the door���without losing any information, which might be important for thosewho are wai...
February 15, 2022
Fallacies of AI Driven Coding
A few days ago, DeepMind (acquired by Google in 2014) releasedAlphaCode and self-publishedapaperexplaining how their artificial intelligence (AI) can ���understand���a programming contest task written in English and then write a Python, Java or C++ program, whichwould work in about 30% of cases.Earlier last year OpenAI ($1B-funded by Microsoft in 2019)released Codexand published a paper, claimingthat their AI can also solve around 30% of the programming tasks it wastested with.Wire...
November 30, 2021
Academic Teaching is Hard
A few months ago I got an opportunity to teach a single course for3rd-year BSc students at Innopolis University (Russia). The title was ���System Software Design.��� The size of the group was about 150 people and the duration was8 weeks. I was supposed to give them sixteen lectures, two lectures per week. And I was asked to examine their knowledgeby the end of the course. Pretty much a normal job for a universityteacher. And you know, in my opinion, I failed most parts of it. Here is wha...
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...


