Category Archives: Management

Why People Dislike Brainstorming Sessions

When a group of people is assigned a task they never had to deal with before, they often start with brainstorming. So you have a number of folks who typically are not exactly knowledgeable about something, but at the same time try to agree on an approach for dealing with it. So they start with a discussion on what to do, who should be assigned what activity etc.

The problem is, that this is not brainstorming. It is group of people talking about something that they do not know much about. So a lot of assumptions are made, often not even consciously. People will simply extrapolate their past experiences into the new topic. But this approach does not deliver particularly good results.

The relatively obvious problem is inefficiency. Instead of the whole group talking 15 minutes about something, prior research by just a single person would have produced at least the same result. (Well, probably a better one.) The bigger problem, though, is about effectiveness. In other words: The result of the group discussion will usually not be a truly good solution. Again for lack of research and knowledge.

From a team dynamics perspective there is another problem. There are people who tend to dominate such free-floating discussions. Apart from personality, the folks talking most are usually those that know least about the subject. Because those that understand things at least partially, know that it is not so easy. But there is no time for careful deliberation during such a meeting. So decisions are made based on the least helpful content and the people who know best go out of the meeting frustrated.

Luckily, it is very easy to overcome this. Just task people to do some research on their own before the meeting. You will have a much more thoughtful discussion.

“You are not done, when it works”

The title is a quote from Robert C. Martin during a conference talk on clean code. For a long time now (I am getting old) I have followed this approach and it has produced remarkable results. For a bit more than four years I had been responsible for a corporate integration platform. I had built and run it following DevOps principles so that everything was fully automated. No manual maintenance work had been necessary at all, log files were archived, deleted after their retention period etc. This had freed up a lot of time. Time which I used to keep my codebase clean.

Particular focus was put onto the structure. And that had been a really tough job. Much tougher than I anticipated, to be quite frank. But I had paid off. Instead of writing a lot of conventional documentation, the well thought-out structure allowed me to find stuff in a completely intuitive way. Because, believe me, six months after you have written something, you do not remember much about it. But if you need a certain kind of functionality and do not only find the corresponding module immediately, but also from a first look make a correct guess how the parameters are meant to be used, that is truly rewarding.

Having experienced this first hand has greatly influenced my work since then. And I am more convinced then ever, that this is not beautifying for the sake of it. But instead it is a mandatory requirement and a prerequisite for business agility.

Giving Space to New Team Members

What is management about? According to my favorite podcast, Manager Tools, as a manger you need to achieve results and retention. Pretty obvious on the one hand. But terribly difficult to implement, especially if you want to balance things. One aspect is how to integrate new members into the team. If you have not read my post on what actually makes a team, please go here first.

When you join a team you are the “freshman”, at least in terms of team dynamics. Not so long ago I had switched teams myself and after quite a few years found myself in that role again. I had gone through this process quite a few times, either within an organization or combined with a complete change of employer. Different this time was that from day one I was officially in charge of two knowledge areas (architecture and DevOps) in a global function. 

This was an interesting experience, given the combination of being team freshman and subject matter expert at the same time. So I had to balance what I consider appropriate behavior for someone new to a team, with demonstrating thought leadership in my areas of expertise. I knew most folks from previous interaction and regarded them very highly for what they had delivered in the past. And seeing how they treated those team members that I did not know yet, I was quickly convinced that those were top performers, too.

From the receiving end, I was welcomed very friendly and that included the same amount of teasing everybody else received and gave. It was clearly a warm welcome for me and I truly appreciate(d) it. My colleagues also gave me the distinct feeling that my input was seen as valuable to the team as a whole. Or in other words: They gave me space to define and fill my role, which is much more than your official job description.

The tone for this was set by management and, as with so many other aspects, followed by the others. This is classic leadership by example. Of course, if you have a jerk on the team it will probably not help very much. But it is absolutely the manager who sets the tone. A few years ago I first hand experienced how a new boss literally killed a weekly team call that had gone successfully for years in just a fortnight.

An additional aspect for people who just started their career is letting them establish themselves in the organization. Especially for engineers who tend to be more reserved and have a somewhat introvert personality, which from a scientific perspective is different from being reserved (for more details, I have linked a video in this post). These people need to be given opportunities where they can demonstrate their capabilities in a “safe environment” and then be recognized for it. They will flourish in such a setup and typically deliver much more than you expect.

The worst thing you can do with such folks is to shout them down in meetings or conference calls. Very quickly they will go silent, suffer quietly, and start looking for somewhere else to go. This is one of the reason why leading a group of software developers is very different from e.g. marketing folks. But that is for a different post.

DevOps and Ownership

“You build it, you run it” has been my mantra for many years now. A number of times I was approached by management and they asked who should be operating stuff that I had built. Because, allegedly, my time was too precious for doing such a mundane task like operations.

This is to all managers: Operations is neither mundane nor something for junior staff. It is in fact exactly the opposite. Operations is what keeps the organization alive. Operations is where the best people should be, because here the rubber (the developed software) hits the road. Operations is your last line of defense, when (not if) something goes catastrophically wrong. Operations is a key influencing factor on your organization’s ROI. Operations determines your ability to be agile on the market. Operations is key for customer satisfaction. I could go on and on, but likely you long got my point.

Of course there are some aspects to operations that, when things are done the wrong way, are repetitive and far from challenging. But that should mostly be behind us. Yes, in the 1960s we had people who did nothing but enter data. And until not too long ago a lot of operations was just ticking off check boxes on a to-do list. But with things like infrastructure as code (see my recent post on starting with Chef Infra Server), this should really be something from the past. What you need today are people who take pride in running a lean, highly automated, highly resilient IT organization.

And that is where it should be clear to everybody, that DevOps is much more about organization, knowledge, and collaboration beyond traditional “borders”, than about technology.

By the way: My response to management about who should run my stuff, has always been “me”. Because the applications were built to be as maintenance-free as possible. Only the occasional support ticket had to be answered and with proper logging/auditing that is nothing that takes a lot of time. And fixing the occasional bug was not a big deal either, thanks to Clean Code and test-automation.

This allowed me to support 6 business-critical applications as a “side-project”, i.e. no time was officially allocated. Comparable applications operated by other departments had at least three people full-time for support only.

Winning at All Costs

This is a bit of a follow-up to my recent post Don’t Promote for Performance .

After decades with an ever increasing focus on success, not only in commercial environments, we have all become so accustomed to it, that it feels strange to even take a step back and reconsider the approach. To be clear: I am not advocating a model where competition in and of itself is considered bad. Having seen what socialism had done to Eastern Germany, I am certainly not endorsing this or any similar model.

You may have heard the expression Pyrrhic Victory, which stems from an ancient battle (279 BC) where the winner suffered extreme losses that affected their military capabilities for years. Today it basically means that there had been too high a price for achieving a certain goal. And we see this all the time in today’s world.

Inside organizations it usually manifests as so-called “politics”, whereas I think that back-stabbing is a more suitable term in many cases. Someone tries to get something done at all costs, burning bridges along the way. This happens pretty much on all levels, and all too often people don’t even realize what they are doing. They are so focused on their target (usually because there is money for them in the game) that all “manners” are lost.

You probably had that experience, too, where someone treated you really badly, although they actually needed you in the process. This either means they are not aware of their behavior, i.e. there is total ignorance or simply a lack of self-reflection. Or they believe that by virtue of hierarchy you will have to do as they want now and also in the future.

Overall I think that such actions show unprofessional behavior. Firstly, these folks are basically advertising themselves as ruthless egomaniacs, which is becoming less and less acceptable. Secondly, as the saying goes, you always meet twice in live.

This is not to be mixed up with making an honest mistake that upsets people. Everybody does that sooner or later and I am no exception. If it happens to us, we are angry for a while and then move on. Also, in those cases people will mostly apologize once they realize what happened. For me this is simply civility and it is a vital component for an efficient (and probably also effective) way to interact socially.

The bottom line is that people who don’t treat their coworkers in a decent manner, inflict a lot of damage to the organization. If superiors then look the other way because “the numbers are ok”, they send a clear message that such behavior is actually desired. The outcome is what is called a toxic organization. Would you like to work at such a place?

A Techie’s View on Marketing

As a very technical person I have a somewhat unusual view on marketing. I do not buy into the “utterly useless” verdict that some technical folks have on marketing. But I also think that, probably just like us techies, some marketing folks overrate the importance of their domain. And I should probably add here that this post is written with enterprise software as the product category in mind. So naturally, a lot of the details will not match low-price consumer products.

In a nutshell I think that it is marketing’s job to attract (positive) attention of potential buyers. This can happen on several levels, e.g. brand or product marketing, online and print media, etc.  It also often includes special events and being present on trade shows. And last but not least, a relatively recent thing is called developer relations, where hard-core technical people are the specific target audience.

All these activities have the common goal to present a coherent and positive message to the (prospective) customer. The different stakeholders have vastly different demands, because of the perspective they take on the product (in this writing that always means services as well) and their background. So, put simply, they all need a message tailored to their need, which, at the same time, must be consistent with all the other versions for the other target channels.

On a high level that is not such a big deal. But at a closer look the different messages should not only be consistent but also be linked together at the correct points. Imagine a conversation where you just told a VP of logistics why your product really provides the value you claim. If you are then able to elegantly look over to the enterprise architect and explain why the product fits nicely into their overall IT strategy, that is a huge plus. And if you can then even bring the IT operations manager on board, with a side note about nice pre-built integrations with ITIL tools, you have done a really great job.

Some people will probably say that the hypothetical scenario above goes beyond marketing. I would say that it is beyond what a typical marketing department does. But the interesting question is where the content for such a conversation comes from. Is it the marketing department that employs some high-caliber people that are capable to bridge the various gaps? Or is it the sales team that has prepared things as an individual exercise (which often means that it is a one-off)?

The choice will greatly influence at least two critical KPIs. Cost of sales and lead conversion rate. The former is rather obvious, because it is about re-use and efficiency. But, as it is so often, the latter is much more critical because here we talk about effectiveness. Or in other words: It hurts much more if the deal is lost after having spent thousands of Euros or Dollars, than if we had to pay an additional 500 bucks to have an additional presentation be made that secures the deal.

This is in fact one of the things where in my view too many people have a predisposition for the wrong thing. Many will gladly jump onto how something could be done better, cheaper, etc. But relatively few will take a step back and ask whether it is the right thing to do in the first place.

The critical thing is that the various marketing messages are consistent with one another and, much more importantly, with the post-sales reality. Putting “lipstick on a pig” is not good marketing but somewhere between bullshitting and fraud. And the most precious thing in customer relationship is trust. So unless you need a deal to literally survive the next few weeks, you should resist the temptation to screw your customer. Word gets around …

Corona Virus: Disable Video in Calls?

With so many people working from home these days, the use of video calls has exploded. I personally think this is a good thing, because it changes the nature of calls dramatically. They move things closer to a personal interaction, which is a huge plus. The downside of this is an increase in the use of network bandwidth. Hence some people suggest to disable your video while not talking.

I would like to propose a slightly more nuanced approach. To me disabling the video while listening can be appropriate for meetings that are about content. If someone is sharing a screen so that people can discuss the current state of some work item, there is indeed little value from six small faces at the bottom of the screen.

But increasingly folks use video calls for social purposes, like the famous virtual morning coffee round. And here things are different in my view. As in the physical equivalent, there are people who dominate the discussion and those who mostly listen. The second group is just as important as the first, and not seeing their faces would be a great loss for the purpose of the call. So for this kind of meeting I recommend to leave video turned on at all times.