Code Complete

Code Complete by Steve McConnel (2004)

code-completeIntro: I remember buying Code Complete in 2009 – this was before I gone to college. This was one of the books I saw recommended over and over again. Now, 5 years later I want to embark on the journey and read this tome of software construction.

After reading it I can say that it’s still a good book. I think for beginners (< 2 yrs) it’s really valuable. You can pick up some good habits through this book. You can learn things that others learned hard through experience. Definitely worth a look.

For more experienced people there isn’t that much new stuff in it.

The chapter on metaphors was interesting. I never realized how prevalent they were. Since the time of reading the book and writing this article I’ve read some other books who focus more on metaphors but nonetheless interesting. The question is how useful they are. Not in the sense of having a metaphor but in the sense of learning new insights.
So far (Chapter 3) it reads like a programmers guide to talking to managers; which I think is great for beginners into the job world but not that interesting for me personally. I think it has to do that I did quality management for some time so I know about the importance of requirements and uncovering needs and cost of errors in different stages, etc.

Problem description should be in user language

This is a great advice. I like it because it prevents you from jumping to solutions too fast. If you write – we need some PostgreSQL DB with these primary keys, and … – you think in solutions. And often the problem the customer has isn’t the problem you should solve.

5-15 productivity gain of high (Java, Smalltak, VB) over low-level languages relative to C

Not surprised. Interesting is that the gain varies by language. Java is about 2.5 times productive, Smalltalk 6 times and SQL 10 times. It shows to me the strength of Lisp because it allows you easily to build bottom up and thus basically build your own DSL for every problem you encounter.

Interpreted faster than compiled

Also not surprising. It boils down to faster feedback. Some interpreted languages offer a REPL which allows you to get even more timely feedback.

Habits of good programmers

This was a key insight. Good habits make a good programmer. I’ve written about habits ages ago – I sadly don’t have that post anymore. It was about written communication and writing correctly. Back then I talked to friends and some said that they are going to write correctly if they have to. I argued that you’re not going to learn it if you don’t practice – make it a habit. Same thing here.
Most of the stuff in this book wasn’t new to me but I’ve read tons of other books and have some experience in software development. What I noticed while reading the last quarter of the book how great functional programming can be. The author pointed out several problems and pitfalls which are solved if you use functional programming language.

The last interesting fact was:

Average programmer reads less than a book on programming/software development per year

That’s insane. He recommended to read 12 books a year and you will be pretty quickly above average. I know a lot of people read blog posts and online tutorials or stackoverflow. But a book is just different.

All in all, a good book for beginners. I would recommend it to them.

Hacker And Painters

Hackers and Painters by Paul Graham

Hackers_&_PaintersI read this book December 2008 the first time. I don’t remember a ton of it. I wrote one blog post about the book. But I remember that I enjoyed it.

After rereading it I can say that it’s still a great book. One thing I noticed that he talked about a lot of things I later learned through experience. It’s hard to translate some words into wisdom but imho if you can take away one good idea from a book for around $20 it’s a good investment.

Why Nerds are Unpopular

The first essay  has a different vibe. Back then I felt good about hearing that it will be better in the future. But reading it now I feel sad for pg. It sounds horrible what happened in his high school years and I applaud him for opening himself.

In general, people outside some very demanding field don’t realize the extent to which success depends on constant (though often unconscious) effort. For example, most people seem to consider the ability to draw as some kind of innate quality, like being tall. In fact, most people who “can draw” like drawing, and have spent many hours doing it; that’s why they’re good at it.

If you read my posts for a while you probably know that I’ve started to program half-way seriously when I was around 15. Eventually I got pretty good – with around 19. I remember that some people told me that this was my destiny and I was born to program. But I wasn’t really.

When I was younger I began to play the drums. I think I started at 13. When I was 16 some people said I had a natural talent for playing them. When I started I was horrible – just like my programming. But I put a ton of work in it. I played around 2 hours every day at the drum kit, spend time listening to music and played it the beat with my fingers, I read stuff online, etc.

But this investment was small compared to that into programming. When I started half-way seriously at 15 I spent about 1.5 hour per day into programming. This lasted until I was 17. This was the time I switched school. This meant that Monday – Friday I had about 3 hours per day school-related exposure to programming / cs. Furthermore, around 1 hour talking to friends at school, learning or writing code around 2 hours at home and maybe talking another 1 hour on irc. This makes on average 3+2+1+1 = 7 hours a day. This was 3 years, so I spent around 7000 hours engaging to programming.

I would even say that I took longer at the beginning to learn the fundamentals. Or when I first learned Haskell it took forever. I sat there trying to write code to reverse a list (which is super easy). It took me I think about 4 hours. That’s why I like Lisps / functional programming general because you don’t have to be so clever to understand it. It’s pretty simple and less complex imho.

Hackers and Painters

What hackers and painters have in common is that they’re both makers.

I describe the maker as a creator. It’s the same concept, it’s about making something from nothing.

You should figure out programs as you’re writing them, just as writers and painters and architects do. […] It’s unrealistic to expect that the specifications for a program will be perfect. You’re better off if you admit this up front, and write programs in a way that allows specifications to change on the fly.


When it comes to code I behave in a way that would make me eligible for prescription drugs if I approached everyday life the same way. It drives me crazy to see code that’s badly indented, or that uses ugly variable names.

This is something I developed over the years. Aesthetics plays a role for me. I want to look at code and it should already say what it does just by the form of it. This why I like Python because it forces you to at least indent correctly.

What You Can’t Say

Although fashions in ideas tend to arise from different sources than fashions in clothing, the mechanism of their adoption seems much the same. The early adopters will be driven by ambition: self-consciously cool people who want to distinguish themselves from the common herd. As the fashion becomes established they’ll be joined by a second, much larger group, driven by fear. This second group adopt the fashion not because they want to stand out but because they are afraid of standing out.


Taste for Makers

But if your job is to design things, and there is no such thing as beauty, then there is no way to get better at your job. If taste is just personal preference, then everyone’s is already perfect: you like whatever you like, and that’s it.

A relativistic viewpoint becomes more and more prevalent. pg talks about a more objective standard to beauty. I agree and so does most of science. Even something subjective as the beauty of a face is consistent through cultures and people. I don’t know enough about the subject, yet. So take this with an extra grain of salt.

When you’re forced to be simple, you’re forced to face the real problem. When you can’t deliver ornament, you have to deliver substance.


GOOD DESIGN IS TIMELESS. In math, every proof is timeless unless it contains a mistake. So what does Hardy mean when he says there is no permanent place for ugly mathematics? He means the same thing Kelly Johnson did: if something is ugly, it can’t be the best solution. There must be a better one, and eventually someone else will discover it.

Related to this is Occam’s razor. It’s rather funny that you can look at some piece of code and think “that’s looks way too complicated” and you work on it and finally you found that you can make the code easier and in most cases less buggy.

GOOD DESIGN LOOKS EASY. Like great athletes, great designers make it look easy. Mostly this is an illusion. The easy, conversational tone of good writing comes only on the eighth rewrite.

I thought I’ve written about that but I hadn’t. This is a famous concept in Taoism called Wu wei which translates approximately to non-action. However, there are several interpretations of non-action. Here’s a video which explains these as levels:

  • concisely not acting – you observe
  • Patience – you’re not actually doing something actively
  • Flow / Effortlessness – it’s looks easy because the person mastered it
  • Doing without wanting – very spiritual

GOOD DESIGN IS REDESIGN. It’s rare to get things right the first time. Experts expect to throw away some early work. They plan for plans to change.

n.c. – see Borland Software Craftmanship

Nothing is more powerful than a community of talented people working on related problems.


Design and Research

Design doesn’t have to be new, but it has to be good. Research doesn’t have to be good, but it has to be new.

I love this. I will just comment on the design part. Reusing good design is a good idea. If we apply that to software development there are obviously design patterns or better OOP patterns. I know there are some database and architecture patterns but I never looked into it. Definitely something I will look into it in the future.

And yet, making what works for the user doesn’t mean simply making what the user tells you to. Users don’t know what all the choices are, and are often mistaken about what they really want. It’s like being a doctor. You can’t just treat a patient’s symptoms. When a patient tells you his symptoms, you have to figure out what’s actually wrong with him, and treat that.


To get good design you have to get close, and stay close, to your users. You have to calibrate your ideas on actual users constantly.

This is was bad graphic designer often do. They do aesthetics instead of design. Design follows customer requirements in a sense of ‘what the customer needs’.

In the software world, this idea is known as Worse is Better. Actually, there are several ideas mixed together in the concept of Worse is Better, which is why people are still arguing about whether worse is actually better or not. But one of the main ideas in that mix is that if you’re building something new, you should get a prototype in front of users as soon as possible.


Building something by gradually refining a prototype is good for morale because it keeps you engaged. In software, my rule is: always have working code. If you’re writing something you’ll be able to test in an hour, you have the prospect of an immediate reward to motivate you.

I agree and edw519 had an other great way to say this:

I love this example:

  * EnterOrders 08/31/10 edw519

I now have a working program[sic] – Woo hoo! You say you want more features? No problem. Let’s start enhancing it.

The Art of Client Service

The Art of Client Service by Robert Solomon

art-of-client-serviceAnother beautiful book. It’s basically ‘How to talk to your client’. The author worked in the advertising industry and explains important bits of client service. If you work in the advertising industry in a customer facing position, e.g. account manager this book is perfect.

In other words, patients don’t file lawsuits because they’ve been harmed by shoddy medical care. Patients file lawsuits because they’ve been harmed by shoddy medical care and something else happens to them.

I found that a great example. He obviously talk about medical errors and that not all errors result into a lawsuit. The difference is that the patient forgave the doctor for making in error.

It’s no surprise that most agency people figure that if they do great work, everything else will take care of itself, including the relationships they build with clients.

There’s just one problem with this assumption: it’s wrong.

I used to think that great work would lead to a great relationship. Now I think the opposite: a great relationship leads to great work.

Great work entails risk. Most clients do not want to take risks; they prefer a safe retreat into the world of the merely good or, worse, the dismissively average. Still, if they are going to take that risk, they are much more likely to do so with agency people they trust. And trust is the very foundation of a great relationship. And that’s why I say a great relationship leads to great work.


you should pay attention not just to your clients’ company goals, but also to their personal goals.

This is one of the neat tricks. Or like Kent Beck said it: ‘Your method doesn’t work if it doesn’t appeal to human short-term thinking’.

Generally, the right number of concepts to present is three.

I heard that over and over again. Normally, there are either two good concepts and one average one. Or two average ones and one good one. But I think there should be at least two ideas otherwise there is not informed tradeoff.

You and your colleagues won’t always agree. You will argue; this often is part of arriving at the right solution.

It’s fine to fight about the work in private, but once you’ve agreed on what to present to the client, get on the bus. When you are in front of the client, never throw the work, or your colleagues, under the bus.


“The agency is going to work incredibly hard on this, but we’re going to ask you to work hard with us. We need you to be actively involved. We can’t do great work for you unless you help us.”

Then I ask the clients to outline what they expect from the agency and how they would like to work.


While it takes emotional commitment to make creative work, it takes emotional detachment to make it better.

One thing said about creative types is that the difference between the good and great is accepting feedback. You need to detach yourself so much that you can accept critique. I’ve heard creatives defending their work after user tests. It doesn’t matter what you thought. If you want to make art, go to an art school. If you want to make ads you have to accept what people like.

Rehearsal helps you discover holes in your argument. It helps you anticipate the questions and concerns the client might raise. It polishes your delivery. It allows you to work out the hand-offs among the team members. It gives everyone in the group an opportunity to help strengthen each member’s part. It can build your confidence.

That’s something we did a lot. I loved to critique people’s arguments and ask them uncomfortable questions. Most hated it at the start but after around 30 minutes the liked it. And they started to love it after they could confidently answer a client’s hard question.

You are not only presenting work, you are representing the agency. Every presentation offers an opportunity to validate the client’s confidence in the agency, or conversely, to undermine it.


Well before you make a presentation, check it for any claims it makes. If there’s an opinion that won’t stand up to a client’s challenge, make sure you go back and build a case for it. If you find you can’t build a case for that opinion, you’re better off keeping it to yourself.


If you’re worried about getting the credit, I suggest you think about another line of work. As an account exec, your job is to give the credit—to your clients, to your colleagues—not to take it. Often, the only people who truly appreciate what you do are other account people.


Account work is fieldwork. You need to visit your clients regularly, no matter if they are on the next street or in the next time zone. Phone calls and e-mails don’t replace face time.

Also culture, appreciation, etc. It shows that you actually care.

Don’t wait for trouble before you get off your butt. Spend time with clients when things are going well. Most clients have little patience for account people who only show up when something goes wrong. If that’s the only time you see your client, then you won’t have forged the relationship you need in order to fix the problem you’re there to address.


“I love your work; the agency is very creative. But you guys are just too hard to deal with; everything is a fight. If I have to choose, I’ll take an agency a little less talented but a whole lot easier to work with.”


When a client makes a request, let alone a demand, your first, and understandable, instinct is to say yes. The more senior the client, the more urgent the need, the more strident the tone, the more you want to comply on the spot. Don’t do it.

Remember: Lead your client.

Even with seemingly simple requests, a unilateral yes is not the right answer. It does a terrible disservice to everyone—your colleagues, yourself, and most of all, your client.


“Here’s what we can do; it’s not a perfect solution, but does it address your need?”


“Give us the problem, not the solution. Ask the question; don’t give us the answer. Let us solve the problem. That’s what you hired us for. We want to help you get to the right place.”

Root cause analysis.

I made a commitment to myself that I would always advise clients up front about the cost and timing implications of their decisions, so they could make fully informed decisions.

Also sometimes called Request for Change. It’s basically a feedback about a client’s option. If he wants X then you reply ‘Sure, we can do X and it will cost Y and put the deadline to Z’.

Here in the words of the author:

When a client calls with a change or a request, it can make you feel a little uncomfortable to say, “Let me figure out what the change will cost and if it will have an impact on the schedule, then get right back to you.” But you owe it to your clients, and to your agency, to do exactly that. By doing so, you avoid the perils of “scope creep,” when a project grows beyond what initially was planned. And you avoid any after-the-fact surprises that result in painful consequences, ranging from a loss of money, to a loss of trust, to a lost account.

When something goes awry, get to your client with a full explanation of what happened and why. Whenever possible, be prepared to outline one or more ways to address the problem. Move quickly; you want to deliver the bad news to the clients. You don’t want them to hear it from another source.


The lesson? Do not assume anything, and never, ever be as glib or as cavalier as I was about money. Check and recheck your claims, then check them again. Above all, remember your own advice. And by God, follow it.

I said it. I won’t stop repeating it.

Managing The Professional Service Firm

Managing The Professional Service Firm by David H. Maister

manging-the-psf-coverThis book is a gem. I have over 430 highlighted passages in this book. I remember reading it and I was in awe. Probably the one book if you want to structure, improve or build a professional service firm.

Again, most of my comments will be related to the work I did in the advertising industry.

most professional services have a strong component of face-to-face interaction with the client. This implies that definitions of quality and service take on special meanings and must be managed carefully, and that very special skills are required of top performers.

In contrast to production companies who can control quality without customer interaction. This is actually a bigger difference than you may think. The variance is bigger thanks to customer interaction, i.e. less standardization.

Both of these characteristics (customization and client contact) demand that the firm attract (and retain) highly skilled individuals. Because of this, the professional service firm is the ultimate embodiment of that familiar phrase “our assets are our people.”

This goes into the same direction. Production companies have a lot of value besides their people: processes, machines, inventory. This all is neglectable small for PSF (professional service firms). Even if you have a superior process it can easily be copied and more likely the difference isn’t that big.

One of the most interesting discoveries in my consulting work has been the fact that (apparently) every professional service firm in the world has the same mission statement, regardless of the firm’s size, specific profession, or country of operation.

To deliver outstanding client service; to provide fulfilling careers and professional satisfaction for our people; and to achieve financial success so that we can reward ourselves and grow.


Consider three kinds of client work: Brains, Grey Hair, and Procedure projects.

Brains is new solutions to new problems. It’s basically: We’re smart, we can solve any problem. Many one-off projects, lots of learning.

Grey Hair are customized solutions to old problems. The client buys experience.

Procedure projects are old solutions to old problems. It’s basically: We’re doing this all day we know what we do and do it fast.

You can easily see how the personnel differs in each case. Procedure projects can easily be done be juniors and may give a higher leverage.

The professional service firm may be viewed as the modern embodiment of the medieval craftsman’s shop, with its apprentices, journeymen, and master craftsmen.


By leveraging its high-cost seniors with low-cost juniors, the professional firm can lower its effective hourly rate and thus reduce its cost to clients while simultaneously generating additional profit for the partners.


The firm thus makes its most money by “leading the market”: being able to sell as a fully customized service (at a fully customized price) what increasingly becomes a service with reproducible, standardized elements.

If you watch any industry with PSF closely you can see this over and over again. E.g. if you work in IT you probably saw this with Agile and Scrum.

In any professional service there are three key benefits that clients seek: expertise, experience, and efficiency.

However, accommodating the varying needs of these different types of clients within a single practice group is an almost impossible task.

Also very important and not that seldom neglected. You can’t really operate on two levels or even three. It comes down to specialization in the end. Specialize and win.

True to the professions’ traditional self-image of being elite practitioners, the staffing requirements of this “expertise-based” practice would be such that the firm would need to seek out and attract only the top percentile graduates from the best schools, in order to generate top-notch apprentices who could meet the quality needs of the frontier practice. Training would best be accomplished through an informal apprenticeship system and, since standards would be high, a rigorous up-or-out promotion system would ensure that the firm retained only the best and the brightest.

The firm would make its profits through high billing rates or some form of value billing, justifiable and sustainable because of the criticality, complexity, and risk in the client engagement.

An example for one way to manage a PSF. The books presents each of these different businesses in-depth but I won’t go into detail. Read the book – it’s worth it.

In my experience, many low-margin practices are more profitable, on a profit-per-partner basis, than higher margin practices with low leverage because of the effective use of leverage.

This is also something you see. Low cost, high efficiency practices can apply more leverage and scale easier. The problem solving in such PSF switches from the domain of practice (e.g. software development, accounting or law) to the domain of efficiency.

Only increased fee levels or leverage move the firm forward. All else is hygiene. It is the nature of the work brought in, not just its volume, that contributes to profit health.

Also important. It often get’s into this line of thinking:

Many firms are revenue driven, or “top-line” oriented, taking the view that “any new business is good business.” This is patently false.

I’ve seen companies which had very good revenue but didn’t exist one year later because their margin wasn’t existent.

Professional firms do not sell time (although they often bill that way). Rather, their stock-in-trade is skill. Anything that compromises the rate of skill building (which systemic underdelegation does) hurts the firm.

Also something which isn’t often done right. Generally you want to grow your replacement as soon as possible. Because there are two cases in which your replacement is necessary. a) If the work-load is to high and b) If you are promoted or switch to an other position.

Also there is an other side-effect:

If underdelegation exists, that is, if juniors are being given additional responsibilities less rapidly than they are capable of handling with good training and supervision, the result will be poor morale and motivation.

the lack of challenging (“growing”) work will be the single biggest contributor to turnover/retention problems.

And even more seniors often complain that they don’t have enough time to delegate or mentor their employees:

In firm after firm, I encounter senior professionals who know the importance of client service, business development, supervision and coaching, methodology-building, and personal development. In all of these cases, however, they report that they are not doing as much as they would like because they are “too busy”—and they are.

My observation of professional firms in general is that they tend to overinvest their nonbillable practice development time in categories mentioned first on my list (broadcasting and courting) and, as a rule, underinvest in those activities lower on my list (superpleasing, nurturing, and listening).

It seems that the research which shows that acquiring new clients is way higher than getting business from existing clients still isn’t believed.

Listening—soliciting clients’ evaluation of current services and getting them to describe their unfilled needs—has two interrelated purposes: (a) improving the competitiveness of current services and (b) identifying opportunities to develop new services.


As the Japanese manufacturers say, a “defect is a treasure.” In other words, by eagerly seeking out your “defects” and studying them carefully to identify why and how that performance failure occurred, you get the opportunity to improve.


“People don’t care how much you know until they know how much you care”—

Remember the definition of trust: competence + carefulness

Discuss at the earliest possible point all potential roadblocks, detours, and contingencies that may arise, and make it clear how your firm will handle them.

More generally: Don’t surprise the client – especially not with bad news. You will also notice how less problematic dealing with problems become if you are upfront.

“The most depressing day in the office is the day after we have won a new client. We all look at each other and say, ‘How on earth are we going to deliver all we promised for the budget we agreed to?’


The firm that demonstrates its trustworthiness by advising clients on how to avoid fees by doing some things themselves, or that demonstrates its integrity, either by admitting areas of weakness and recommending other professionals or by refusing work when it knows it is too busy.

I liked to call it ‘full disclosure’. Most of my coworkers thought I was insane. Two of my coworkers did the same. The clients appreciated it insanely. It’s basically the application of honesty is the best policy. Sadly, most people are afraid of it.

Improving the quality of work can be costly and hard to demonstrate. Improving the quality of service can be as cheap as instilling more responsive attitudes in professional staff, and it tends to be infinitely more visible to clients.


It cannot be stressed enough that achieving excellence in client service is not an “educational” issue (i.e., enlightening staff and training them). Almost all client service training programs, taken by themselves, fail to be implemented in the press of daily business. Most firm personnel, if asked, could easily describe most of the activities that would represent good service. We must ask why they don’t already do these things.


The bad news about achieving excellence in client service is that it is made up of hundreds of little, trivial actions, not a few grand gestures.

It takes an attention to detail, an attitude, that is essential if individuals are to find the self-discipline to handle all of their client-contact activities with empathy.

Just as with a lot of practices self-discipline is the key. Most people know what they have to do but the lack of self-discipline often undermines that. And all that results in inferior service.

By measuring client satisfaction on every assignment, and doing so in a way that can be monitored, it commits the members of the firm to inescapable implementation of good service.

This is something I learned in my quality manager position. Measurement has the highest payoff. When employees noticed how slow they are, or how many errors they made, or how unsatisfied their clients were, they suddenly improved that metric. They were aware of those measurements. If the management only highlights revenue they will focus on revenue. It starts with management & measurement.

In many firms, there may be a need for training programs in client-contact skills. These should include training in classic client situations such as “How do you tell a client he is wrong?” and “What do you do if the client doesn’t like your ideas?” Accumulated wisdom in the firm on these and other client contact situations should be built into training programs so the firm disseminates its best expertise quickly.


If all time spent on existing clients must be accounted for, then things done in the name of pursuing more business from existing clients often show up in the accounts as extra costs (and hence lower profitability) on the existing engagement. As a consequence, the desirable marketing activities are not done.


Unless their skills are truly unique, unmatched by any competitor, professionals are never hired because of their technical capabilities.

I am no longer asking “Can you do it?” but rather “Do I want to work with you?” I am no longer interested in the institutional characteristics of your firm, but am now trying to form a judgment about you.

What all this reveals is that, among the set of qualified candidates, I am looking for the one I can trust. The act of hiring a professional is, by very definition, an act of faith. I must, inevitably, believe a promise.

There isn’t much 100% rational judgement if any at all. The decision is emotional but later rationalized by facts. That is, you have to be good enough but that’s all. The rest is social skills and chemistry.

Give me an education. Tell me about alternate ways the common problems of my industry might be dealt with. Help me understand the advantages and disadvantages of some of the things I have been reading about. Ask me how I am doing things now, and use that as an opportunity to help me understand some options I may have for doing things differently. Tell me something I didn’t know.

Also something which is quite impressive if you ask valuable questions your competitors don’t ask.

For example, most firms should invest some of their nonbillable marketing time in:
• Writing articles
• Spending time with executives of existing clients, to understand their business better and to win follow-on assignments
• Conducting publishable proprietary research
• Organizing and delivering seminars
• Giving speeches
• Gathering market intelligence on new needs by, for example, attending client industry conferences
• Community involvement and networking

The health of your career is not dependent so much on the volume of business you do, but the type of work you do (whether or not it helps you learn, grow, and develop), and who you do it for (whether or not you are increasingly earning the trust of some key clients).

This is also a mindset. I knew people who worked 5+ years in a job and didn’t know much. People with the right mindset and 6 months of experience produced more value.

However, you can rely too much on “random” experience as a teacher. To learn well, you have to set out to learn some specific something.


I have learned that the (seemingly “low-level”) tasks of diligently reading my clients’ industry trade magazines, newsletters, trade association materials, every single month without fail, has made me a better professional in their eyes.

aka. domain-knowledge

“The trouble is that some people have five years’ experience, and other people have one year’s experience five times.”

Here’s a quote to something I said above.

In what way are you personally more valuable on the marketplace than last year? What are your plans to make yourself more valuable on the marketplace than in the past? What specific new skills do you plan to acquire or enhance in the next year? What’s your personal strategic plan for your career over, say, the next three years? What can you do to make yourself (even more) special on the market in the near future? What, precisely, is it that you want to be famous for?


Every Monday morning all professional staff, senior and junior, attend a one-hour meeting. At each session one staff member presents a case his team has worked on and describes how they handled it, what new approaches were attempted, how they dealt with client problems, and so on.

I love this idea. We had internal workshops but more on techniques and less on case studies.

Subtle misrepresentations during the recruiting process (about workloads, variety of work, extent of client contact, the degree of counseling, or any of a number of issues of concern to young professionals) may serve to bring more people (bodies?) on board, but will quickly work against the firm’s interests as new recruits discover the realities of the practice: a prime example of how to demotivate.


From these observations flow some simple rules for maintaining motivation among professionals. You must provide clear goals; give prompt feedback and reward performance quickly; treat them like winners, involving them in decision-making and seeking their opinion often; give them autonomy in their work, but hold them strictly accountable for results; be tolerant of their impatience, and provide variety in their work experiences, always keeping the next challenging goal out front.

How to deal with (young) professionals in a nutshell.

One does not motivate a professional by being the “good guy” and lessening the pressure: rather one does it by helping that individual accept the pressure as a challenge to his or her professional pride.

Yep, boredom is a bigger killer than overwhelming problems.

A manager’s time can be divided into five categories:
• Administrative and financial matters
• Doing professional (billable) work
• Personal marketing and selling
• General client relations
• Dealing and talking with senior professionals and staff


If there has been one major theme in this book, it is that the key to ensuring any professional firm’s future is wise management of its two key assets: a. Its inventory of skills, talents, knowledge, and ability b. The strength of its client relations and reputation


There is perhaps no more valuable asset that a firm has than the satisfaction of its clients.