What Do You Do With InterruptedException?

  • 923 words
  • four minutes to read
  • comments

InterruptedException is a permanent source of pain in Java, for junior developers especially. But it shouldn't be. It's a rather simple and easy-to-understand idea. Let me try to describe and simplify it.

What Is the Difference Between Ridley Scott and Joseph Goebbels?

  • 767 words
  • three minutes to read
  • comments

I saw The Martian this weekend, and it triggered a few thoughts. Of course, I didn't like the movie as a piece of art. It is total garbage, but this is not my point. There is something bigger to discuss, aside from the bad acting, primitive story-line, politically correct but absolutely unrealistic casting, and tons of logical inconsistencies. It's Hollywood; what should I expect, right? Not just that. I think the problem is bigger.

Competition Without Rules Is Destructive

  • 464 words
  • two minutes to read
  • comments

When your team has to choose which technical decision to make, who has the final say? When one of your colleagues asks for a raise, who decides, and what is his or her decision based on? When it's necessary to work overtime, how is it decided who will stay in the office? I'm expecting you to shrug your shoulders. You're right, these questions never have explicit answers in modern organizations. We are used to working in a more "democratic" way, where such decisions are made subjectively by managers or more senior employees. Is this how it should be?

How to Be a Good Office Slave

  • 1542 words
  • 6 minutes to read
  • comments

This is a short manual for you, my friend. I assume you are sitting in the office right now, reading this blog post. Maybe you don't like your office job, or maybe you enjoy it and feel excited to be close to your office friends. It doesn't matter. What matters is that there is always an alternative to office slavery. I'm not talking about starting your own business. There are people in this world who work for someone without doing what is described below. They do exist, as well as companies that don't turn their employees into slaves. I really hope you will eventually find one. In the meantime, this manual is for you :)

Vertical and Horizontal Decorating

  • 225 words
  • a minute to read
  • comments

A decorator pattern is one of the best ways to add features to an object without changing its interface. I use composable decorators quite often and always question myself as to how to design them right when the list of features must be configurable. I'm not sure I have the right answer, but here is some food for thought.

You're Just the Mayonnaise in a Bad Sandwich

  • 1371 words
  • 6 minutes to read
  • comments

That's what a character played by actor Bruce Willis said to Robert DeNiro's movie producer character in Barry Levinson's brilliant film What Just Happened. I second that. Producers, recruiters, managers, real estate agents, sales agents, lawyers, and outstaffers—what do they all have in common? They are middlemen standing between money and the proletariat, taking a huge percentage for themselves but adding no value. Their very existence is our mutual misfortune. We are too weak to get rid of them now, but sooner or later every supply chain will be mayonnaise-free. Look at Uber—taxi companies are dead already, and we now have only drivers and passengers with a computer system in between. The same will happen everywhere else.

Are You a Micromanager?

  • 562 words
  • three minutes to read
  • comments

Micromanagement, according to Wikipedia at the time of this writing, is "a management style whereby a manager closely observes or controls the work of subordinates or employees." Everyone knows micromanagement is evil, but what could be wrong with closely observing or controlling people's work? Nothing. Observing and controlling is not what's so bad about micromanagement. It is something completely different.

How to Fire Someone Right

  • 490 words
  • two minutes to read
  • comments

A friend of mine asked me today, "How should I fire someone the right way? What are the tricks to do it nicely, gracefully, and professionally?" I responded by saying that if you question yourself about how to do it right, you're doing it wrong in the first place. If firing is a painful and unpleasant process for you, there is a problem with your management model. Firing must be an easy and open procedure, visible and understood by the entire team.

When Do You Stop Testing?

  • 682 words
  • three minutes to read
  • comments

There is a software to be tested. There is a team of testers. There is some money in the budget. There is some time in the schedule. We start right now. Testers are trying to break the product, finding bugs, reporting bugs, communicating with programmers when necessary, doing their best to find what's wrong. Eventually they stop and say "we're done". How do they know when to stop? When there is enough testing? It's obvious—when there are no more bugs left and the product can be shipped! If you think like this, I have bad news for you. You're fundamentally wrong.