Jiri Lundak

Archive for the ‘Mastery’ Category

On The Dangers Of Managerial Incompetence

In Collaboration, Competence, Leadership, Management, Mastery, Personal Development on July 16, 2012 at 12:06 am

As I have become a manager myself in the last two years, I experience manager’s life, but do still have a (vague) memory of being a developer. I struggle to maintain a close contact to our developers in the company and to our code base. The latter becoming more and more difficult.

I recently had a talk with my boss about being professional as a manager (as head of development, to be precise). He urged me to be closer to him and thus he urged me to appoint deputies in teams, that I trusted, so I would have to spend less time with our people. At first sight, this might be a proposition that makes sense, there being the need to be able to scale. I am part of the management team after all. So as a team we must work closer together than with our subordinates, right? Wrong!

Introducing a level of indirection might be a good idea in software design, but with people this is more than harmful. It actually introduces a bunch of new problems in any organization. But more about this in a later post.

What is currently eating me, is my obvious personal devaluation. Although my management peers might tell me otherwise, insisting, that we – as managers – now have more power and possibilities to steer and decide things. I also was told, that somebody has to structure how the company works, somebody with experience, that looks farther than the mere developer, that just sees the next line of code. This also is sensible advice. Things work like this in a “professional” company, don’t they?

Hmm…why do I think, we are betraying ourselves, thinking and acting like that? For the moment it is just a gut feeling. I still struggle, trying to formulate my preoccupation with what I hear and see around me.

I know we need to grow as a company, to be able to satisfy our customer’s many needs. But how can we still maintain an agile and effective way of doing things? I am at a loss of seeing a solution, without sounding like a mere naysayer.

I just want to list some things, that bother me personally, regarding my own competence:

  • I do not want to make decisions alone at the top, thinking I know better, just because I am older than my peers. Like young people tend to overrate their abilities, old people underrate young folk’s abilities and interest in contributing to the big picture.
  • I do not want to loose my past knowledge and capabilities, as a programmer, as a ScrumMaster and as a Product Owner, even while I am acquiring new skills, for example in mediation or in taking care of a business.
  • I think the pure manager, seen as a grand seigneur, that understands the big picture and thinks it to be his job to model the company and make it more efficient, is a thing of the past and a brick stone in the yellow brick road to corporate mediocrity.
  • Don’t misinterpret me, I know that seeing the “big picture” is necessary, but I just don’t believe a single person is able to see it, and just validating with your fellow management team members does not cut it.
  • I believe that a management team just limits its possibilities, thinking, that it should make the grand decisions, without involving the mere “foot soldiers”. A company is full to the brim of partial knowledge. Involving the right people is key. But who are they?
  • I do not want to create an efficient organization, instead I would like to make it more effective. Introducing slack and sharing information to all people in the organization might often be seen as waste, but not doing it makes people act on dubious grounds and this leads to desaster.

I know it will be hard to continue to maintain a sound competence level. But I am sure it is worth it.

Competence Development

In Career, Competence, Job, Mastery, Personal Development on April 5, 2012 at 11:49 am

Sometimes I feel hopelessly losing grip on things I mastered in the past. And this frustrates me. The more I am pressed in the manager role, the more I feel uncomfortable. I know I should not. This is social ascent after all. But I am not satisfied. But before taking any action that goes in the wrong direction, I need to asses why I feel this way.

So I tried to put my thoughts in a graph. Let’s call it a competence development chart:

It shows 5 kinds of competence:

  • Social: This is the type of competence we begin acquiring in kindergarten. Most of it is ingrained in us, before we even start working. This is also a quality we train every day. For me this includes talent to be a leader and a good communicator.
  • Technical: As a software developer, this is your primary and most important field of expertise. It is also the most easy to loose. Technology evolves quickly, your code base moves on and your coding skills rust. Without constant exercise and application you immediately fall behind and it’s hard to make up lost ground.
  • Domain: Domain knowledge is an asset, that can make you invaluable in turning business needs into working software. It helps you asses the necessity of a given feature and lets you make informed design decisions. You will not just be coding away on something somebody else specified, but your are truly able to help creating the product the customer really wants. Usually you will immerse in multiple domains during your career. And although you will be able to transport part of your knowledge of one domain to another, you will be mostly starting over.
  • Business: Ability in the business domain does not come naturally to everybody. Not all people have an affinity for doing business on their own. But when you aspire to a holistic view of software development or you believe to have that great product idea or just want to sell you service, or when you feel that business is limiting you as a developer, then this can become a driver for acquiring some business knowledge.
  • Holistic: This is the ability to connect all the dots. You have a natural feel of how things should work, why things go wrong and what could help. This sets in, when you acquire competence technically, socially and at least in one domain. As all competences “seeing the big picture” can be lost over time and peeks, when you are a master in the three previously mentioned areas.

What happens, when you have just competence, that is limited to one field? Let us have a look:

  • Technical: When you have development skills only, you can develop anything based on a specification. You can not know whether what you implement is fit for the customer’s task at hand. You need somebody else to tell you. Some middleman or the customer himself. If you add a middleman, then you can not be sure, the what you implemented will really match the customers’ needs. Rework is preprogrammed. Something you do not like to do.
  • Domain: If you have only domain knowledge, then you might be able to describe to a developer what things you would like to have implemented. You are not necessarily able to explain how it should be implemented. But as soon as you are shown a solution you immediately can tell if it fits your needs. You might build over time an opinion on how the current system you are using works under the hood, but you never can be sure. Especially if developers are allowed to alter the system. So you ever so often will have to adjust your mental picture. And you will need a developer to inform you on how it really works.
  • Business: If you have business knowledge only, you are good at making financial decisions, at formulating contracts, at negotiating with customers, partner companies and vendors. You might have a flair for leading people, but many do not. You are not able to judge the work of developers or domain experts. Even if you had previous technical or domain knowhow, it can quickly fade away. You depend a lot on other people creating value. A problem you definitely have is, that you depend mostly on other peoples’ information, that often was already altered, adjusted and watered-down, so that it does often not represent reality anymore. And you do not even posses the ability or time or both to analyse or validate that information.
  • Social: If you are good only at connecting (with) people, you might be able to use this ability to be the glue to bond teams or groups within an organization, but not much more.
  • Holistic: This kind of competence can not exist in isolation. The more competences we are able to maintain (nearly) simultaneously, the closer we can get to seeing the whole, the better we are able to develop and maintain a global understanding, that does not get lost in detail.

Now I do not want to underrate any person having an ability just in one of these areas. There are only a few people having deep knowhow and understanding in all of the areas at the same time. But most of us do have some knowhow in all of them. And we can try to maintain that knowledge crisp, clear and current. How is it possible to maintain a sufficiently deep knowledge in more than one area?

Below are the ways I currently see. You might have other possibilities you want to share.

  • Concentrate on one area: I should do one job and do it well, at any one point in time. Trying to be a “jack of all trades” usually does not scale and does not benefit anybody, not even myself.
  • Do things in parallel: Filling in multiple roles at the same time is not for the faint of heart. Although you might be able to have a bit of a synergy (when you have a management role like head of development and Product Owner at the same time). But much more you will be torn between roles and you will be a mediocre boss and a mediocre PO at best. And if you go down that path, but are a responsible person at the same time, you will be doing lots of overtime, and your private life will suffer.
  • Rotate jobs in shorter time periods: There should be no fear to loose status or clout or position. If I rotate into and out of jobs, like Product Owner, Software Developer, Head of Development or Business Person, then I acquire only additional leadership potential, because I know more than others at the place I work. I will be able to fill many roles, that need to be filled. I can leverage my knowledge to lead in any position. And best of it all: I will be a person, that can not be easily replaced, and should I be replaced nonetheless, I will not have a hard time finding another job.

You might have noticed, that I did not include a leadership or management area of competence. Here is why: I see leadership and management skills always in context of real work. Situational leadership is key. Anybody in an organisation is able to lead, if he is an expert in his field and is interested in making a substantial contribution to the whole. Managing should also be situational and at the same time very collaborational, no one person should think is is able to manage the whole.

So what about mere management positions? They can exist in an organisation. But should the person holding such a position have mainly management skills and not much more? I believe the contrary: they should have primarily active competence in any of the other fields and management skills should be only seen as an add-on. Management competence falls for me in the holistic and social competence areas. Standing on its own, it tends to develop a life of its own, which often is not healthy for the organisation in its entirety, although the one managing might be convinced that it is.

I just made this up for myself. I am quite sure, that my thoughts are still kind of ruff and incomplete. I might elaborate on my actual choice in another post.