Yegor Bugayenko's Blog, page 7
February 1, 2021
Greed-Based Planning
You have an objective, a budget, and a team. You area manager and you want the project to be done. You get your team togetherin a meeting roomto discuss the plan. You tell them what needs tobe done and ask them how fast they can do it. Then, you do the motivational danceand beg ask them to commit. They nod and go backto their cubicles. Of course, after a fewmonths of ���hard work��� all the milestones are missed and you get back to the planningmeeting. And, yes, you pay their salariesan...
December 28, 2020
Put a Number on Your Boss���s Emotions
You got into a company that believes in
democratic
values, doesn���t measure
performance, doesn���t judge, doesn���t
control, doesn���t force, and
doesn���t blame; however, at the end of the year they tell you that
your performance was not as high as expected. Why?
���Just work better, my friend, we count on you!���
Bad luck, you are in a teal self-managing organization. They���ve already
killed the management, but still didn���t dare to kill the managers.
They don���t know how to measure, but s...
December 21, 2020
Self-Managing vs. Manager-Free Organizations
We are in trouble. On the one hand, most managers are weak and incompetent.
Their mistakes destroy our motivation,
decrease productivity, and lead to business failures.
As a result, many of us believe that managers are evil.
On the other hand, there is a new idea that self-managing organizations are
the future. Its proponents are trying to convince us that chaos is
better than management mistakes. They want us to believe that subordination,
hierarchy, control,
and order are new bad words to be p...
November 30, 2020
Abstract Objects
How do you create objects in your object-oriented language?
Let���s take something classic, like C , Java, or C#. First you define
a class, and then you make an instance of it. The first step is known
as abstraction,
and the second one as
instantiation.
A similar pair of operations
exist in functional programming: declaring a function is
abstraction,
while calling it with specific arguments is
application.
The question is:
why does OOP need classes and objects,
while FP survives with just funct...
November 23, 2020
Objects Without Methods
What do you think an object is in OOP? No matter what language you are
programming with, you will most probably agree with Bruce Eckel,
the author of Thinking in Java, who said that ���each object has a state
and operations that you can ask it to perform,��� or
Benjamin Evans, the author of Java in a Nutshell, who claimed that it is
���a collection of data fields that hold values and methods that operate on those values.���
However, hold on��� What if I told you that an object may have no ���ope...
November 14, 2020
Software Quality Award, 2021
This is the seventh year of the
Software Quality Award. The maximum prize
is still the same���$4,096.
The rules are still the same. Read on.
Previous years are here:
2015,
2016,
2017,
2018,
2019,
2019.
Here is the form
to fill out.
Rules:
One person can submit only one project.
Submissions are accepted until September 1, 2021.
I will check the commit history to make sure you���re the main contributor to the project.
I reserve the right to reject any s...
November 9, 2020
Strong Typing without Types
In 1974, Liskov and Zilles defined
a strongly-typed
language as one in which ���whenever an object is passed from
a calling function to a called function, its type must be
compatible with the type declared in the called function.���
Strong type checking,
without doubt, decreases the amount of
type errors,
which leads to higher quality. However, the question is:
do we really need types in order to strongly enforce typing?
[image error]Redirected (2014) by Emilis Velyvis
For example, this is a place where ...
November 2, 2020
The Pain of Daily Reports
A few days ago I asked
followers to vote in a
simple poll.
They did, screaming in comments that only a stupid
incompetent manager would ask programmers to send daily reports,
while everything they do can easily be tracked in tickets, Git history, and so on.
Indeed, why on earth would a sane manager ask software engineers, already very busy with coding,
to spend time on writing these ridiculous reporting emails?
Let me try to give you a good reason.
[image error]Norsemen (2017) by Jon Iver Helga...
October 26, 2020
New Metric: the Distance of Coupling
Encapsulation,
as you know, is one of the
four key principles
in object-oriented programming.
Encapsulation, according to Grady Booch et al.,
is ���the process of hiding all the secrets of an object
that do not contribute to its essential characteristics.���
Practically speaking, it���s about those private
attributes that we use in Java and C++: they are not visible to the users of
our objects, that���s why they can���t be modified or even read.
Booch et al. believe that the purpose of encapsula...
October 12, 2020
Lack of Problem Is the Problem
Do you know the most typical mistake startup founders make
when they pitch their ideas to investors? According to
Jake Mendel
from Silicon Valley Bank, they often focus on the solution they propose
instead of the problem they are trying to solve. Inability to identify
the problem is the common cause of startup failures. However, it���s not only them.
Look at your project and try to answer
���What���s wrong with the world now?��� and then ���How is this product fixing it?���
[image error]Le retour du h��ro...