What do I wrong that the other person fails?

Published on and tagged with failing

The entire discussion caused by my previous post is a great source to learn from.

One comment was especially insightful for me. In that comment someone pointed to failures I made. It is nice if someone provides such feedback and you can learn from it. But that’s not the point.

After rereading the comment and thinking about it, I realized something more important. If you work together with another person and you point to a failure this person makes, you provide feedback for this person. But that’s only half of the work. You also have to ask yourself: “What do I wrong that the other person fails?” I know, it sounds a bit counter-intuitive to ask yourself this question and you may think it is enough if you provide feedback. Well, sometimes it is enough, sometimes not. Let me give you an example:

During my time as an apprentice there was an appraisal interview twice a year. One topic discussed and rated was “order at the workplace”. It was a topic where I got always a bad rating. On my desk, there was usually a creative chaos with books and papers ;-) Even though I was told by my boss to change that and there was a financial incentive, after some time the creative chaos was back and I failed. Maybe I would have been more successful if my boss asked himself this question and noticed he was a bad example with his much more chaotic desk…

So the next time someone in your team/family/whatever fails with something, you may ask yourself: “What do I wrong that the other person fails?”

22 comments baked

  • Brendon Kozlowski

    Perhaps a more effective grammatical form of that question would be:
    “What do I also do wrong that the other person fails at?”

    …presuming I understood what you meant by that. ;) It’s all an introspective AND retrospective question, which is pretty neat.

    I’m sorry the previous topic got so much stressful responses, I was hoping you’d get a bit of a restful break with the release. I somewhat foresaw this occurring, which is why I figured it’d be best left alone. When people create something they love and pride themselves in, it’s in their nature to be protective of it. Seeing things from that point of view, I see nothing wrong with what the team’s actions were – though I do agree that perhaps formal communications should be made in the future when people are added, removed, or access rights are changed in different areas of the project itself – as you said there was little or no mention of you losing access, it just…happened.

    But yeah, let’s see…getting back to your question with what I just wrote. I’m horrible at writing letters – actual letters. Eventually I get bad at replying to emails as well, at least on personal levels, when it comes to work I’m methodical. I do try to learn from my mistakes, though I am sure I repeat mistakes over time, as anyone does.

  • Chris Hartjes

    So let me see if I understand this correctly:

    1) your boss said if you have a clean desk you’ll get more money
    2) you tried to do it but failed
    3) but your boss is to blame because his desk is messy

    How *dare* he ask you to be better than he is!

    I’m sorry, but this is just the biggest display of passive-aggressive behaviour and lack of willingness to accept responsibility I have seen in a long time. Stop blaming others for your problems, and have the courage to be honest with yourself about what happened.

    Acting surprised when something happens that you KNEW was going to happen is just another form of self-denial.

  • walkerhamilton

    No no, I don’t feel this is passive aggressive behavior. It’s simply psychological thinking being presented by, in the case, perhaps, someone whom is not in the (outside) position of a psychiatrist.

    Most teams can function together only if expectations among team members are understood. Generally, the biggest failure of teams is:

    * Failing to communicate expectation properly.
    * Failing to communicated consequences of failure to meet expectations.

  • pablasso

    just get over it, you are making a whole soap opera out of a meaningless title

  • Chris Hartjes


    You make a great point about “failing to communicate expectation properly”. It seems to me that Daniel was well aware of what was expected but instead chose to not live up to those expectations vis a vis contributing code back to the project such as helping to fix code that tests revealed was failing. Expectations were communicated to him, and I’d love to see evidence that they weren’t.

    The attitude that says “I know it’s broken and I can fix it, but demand that others do so because I don’t want to do it” strikes me as being passive-aggressive. Perhaps I’m using that term in the wrong context.

    I’m not a psychiatrist or psychologist but it seems to me the behaviour displayed by cakebaker that led to his removal from the CakePHP development team and the “why should I clean my desk when my boss has a dirty desk” incident seem to match what Wikipedia says about passive-aggressive behaviour. Not the perfect source, but a pretty good one.

    Anyway, I’m straying off topic here. I resent the implication that somehow everybody but Daniel is wrong for what happened to him here. That’s nonsense and he knows it.

  • Brendon Kozlowski

    @pablasso: There’s always something to be learned from any disagreement. In fact, there’s more to be learned from any form of confrontation more-so than there is from a “magically” well-oiled machine that never actually was given any oil. Wow, that’s a really poor metaphor. Either way, people can usually learn more from mistakes than otherwise. So…let’s learn.

    @Chris: I hope you plan to take up some slack from Dan’s blog, I’ve just added you to my feeds list at work (already had you from home). :)

  • cakebaker

    @all: Thank you for your comments!

    I have the feeling you didn’t get the message of this article :| Maybe I explained it wrong and/or the example was misleading… I will explain what I meant in the answer to Chris.

    @Brendon: Your sentence describes something slightly different. But I am not sure my grammatic is correct, and whether it should be “What do I wrong that…” or “What do I do wrong that…”. Maybe the first is swiss english slang ;-)

    @Chris: Please forget for a moment the discussion of the other article, this article is not meant as an attack on the CakePHP team. Why should I do that? I would disqualify myself. See it as feedback (and inspiration) for people (including the CakePHP team) pointing to failures (not meant in a negative sense) of others. And what I describe in this article is a lesson I learned.

    My example was probably misleading as it was from the point of view of the person who failed (me), and not from the point of view of the person who points to a failure (my boss). So let’s change the point of view, we are now the boss:
    1) I notice that Daniel fails with having a clean desk
    2) I say to Daniel he has to have a more clean desk in the future
    3) I see he still fails
    4) I mention it again
    5) but he still fails
    6) hm, maybe I am doing something wrong, I mentioned it twice, but he still fails. This approach is obviously not successful. What else can I do to help him not to fail? Maybe I should be a better example, and clean my own desk first. Or I could lend him a book about this topic. Etc.
    7) …

    I hope it is now more clear what my point is. Take some time and think about it ;-)

    @Walker: Hm, I am not sure that this article is about expectations ;-) Anyway, good points about expectation in team work.

    @pablasso: Was your comment directed to me?

    @Chris: You say my attitude is: “I know it’s broken and I can fix it, but demand that others do so because I don’t want to do it”. That’s wrong. My attitude is: “If someone breaks a test, he should also fix it”. If I break a test, then it is my task to fix it, but if you break a test then you cannot expect I will fix it. Because you are the person who knows the context and knows best how to fix it. It makes sense, doesn’t it?

  • unbeliever

    @cakebaker Which one 1.2 core test is failing? Or are we talking about your own test case which you didn’t publish yet and continuing complaining about failing test case which you never released to public?

  • cakebaker

    @unbeliever: No, I am talking about the core tests which are available in cake/tests. With version 5613 I have failing tests in dispatcher.test.php when running the “no_database” resp. “routing_system” group tests, the “model” group test causes a missing table error, and the “lib” and “all tests” group tests run for some time and fail then silently in FF (resp. cause a “connection lost” error in Konqueror).

  • unbeliever

    @cakebaker Did you discuss those issues with your colleagues in team (other core devs) before your statement about your trust to CakePHP? Are you sure that it is not part of changes in core code which are on the road and you just missed some post in dev channel? Or is there something else what caused that you loosed your trust to CakePHP? From my perspective, what you did could be considered at least as ‘not polite’ – IF you have some serious reason why to state such as thing. But I am sorry Daniel – you didn’t convinced me – everybody knows that development branch may be unstable sometimes – and fact that it is rare in cake repository doesn’t matter. What EXACTLY was what maked you behave so mad? Excuse me please, I don’t want to attack you by some way, I just don’t believe that ‘just failing test in development branch’ (by the other words: just thing to discuss with colleagues) could make core developer (I’m not here to judge your commits to repository) start hate software library so much, that he will start campaign like you did – even without reasonable arguments?

  • cakebaker

    @unbeliever: Thank you for your comment.

    Yes, I mentioned it in the dev channel.

    I think you misunderstood my statement I made about not trusting CakePHP. I agree with you that on a first look it may seem like I put CakePHP in a bad light. But on a second look you will see a developer writing his own tests because he is aware he deals with an unstable framework by using the version from the development branch. So the message was in fact: write tests! I don’t hate Cake and there is no campaign against it.

    I hope it is now more clear ;-)

  • Larry E. Masters


    Discussing them is not the same thing as mentioning them.

    I think unbeliever asked if you discussed them. Seems I got a similar answer from you in our private chat when I asked a similar question…

    I am going to say the same thing in this thread as I did you other one.

    Post our private chat log.

  • Chris Hartjes


    What I see from your example about the messy desk is a person who (a) is giving up on trying to be tidy and (b) blaming the boss for not showing him how to keep a clean desk. In the end, you are still trying to blame your boss for your failures. I fail to see why it’s your boss’ fault you couldn’t keep your desk clean, unless he was piling so much paper on it you couldn’t.

    If you saw a broken test, why not at least look into it to discover why it was broken? Or did you adopt the attitude that if you did not write the code in question, it is not your responsibility? We are going to have to agree to disagree on what accepting responsibility for your actions really means.

    Daniel, best of luck with your future efforts. Don’t worry, a lot of us will still be watching what you’re doing even if you’re no longer a member of the core CakePHP team.

  • BikePilgrim

    So… what does this have to do with Cake again?

  • BurntSushi

    Ah, but you see, the whole approach the boss is taking in your example is completely wrong.

    The boss is naive in a sense that he believes a clean desk increases productivity, when in fact, it is perhaps counter-productive if the person who is using the desk spends too much time cleaning it, when they operate perfectly fine with a messy desk.

    Botton line being, the boss in your example should take a much more open approach to the problem instead of blindly enforcing a route to success, because when in fact, there are many routes to success.

    However, all of this is moot if the person at the desk was operating poorly with a messy desk.

  • RealityCheck

    OK, don’t take this the wrong way but everyone arguing about this is coming across like 10 year olds. The cake team should have issued a formal statement then every time cakebaker whines simply say they have issued a formal statement and point people to it rather than keep ineffectually defending their choice, saying things amounting to “NO YOU DID IT!” and whining about Cakebakers actions. Cakebaker seems like a whiny kid trying to embarrass them but whilst having some success at this, simultaneously making himself look ten shades of lame too. Nobody is winning here…

    You’re all coming across like grouchy little brats who dropped dolly out of the baby carriage. Take a LONG hard look at yourselves and THINK about it. Take it on the chin – then jog on and be a bit smarter next time.

  • cakebaker

    @all: Thanks for your comments.

    @Larry: I think we can discuss here endlessly whether I should have done more than simply mentioning that some tests fail, but it won’t fix those failing tests. And as you may have noticed if you read my comment to unbeliever, the situation is now slightly different than it was at the time I first mentioned it. At that time I simply got some failing tests when I run the “all” group test, but now the “all” group test no longer works (it fails silently), and the “model” group test ends with a “table not found” error…

    @Chris: Well, this is not about the person who fails, but about a possible mindset the person who points to a failure can have.

    If we stay with the example, then I am always responsible to have a clean desk. If I fail, then I have to blame myself. But if I am the boss, then I can say, “I said it to him he should have a clean desk, but he failed”. Or I could say (with that mindset): “I said it to him he should have a clean desk, but he failed. Maybe I should have done something different?”. I (the boss) can now answer this question either with “No, what I did was correct” (-> I didn’t fail), or with “Yes, I should have done …” (-> I failed)

    I hope it is now clear what I meant ;-)

    Whether I look at a broken test depends on the class where it happens. If I am familar with the class, then I may have a look at it and try to fix it. But else it is not worth to invest time into something others are much more efficient to fix.

    @BikePilgrim: Nothing ;-)

    @BurntSushi: I fully agree with you. I think this topic, “order at the workplace”, was only discussed because it was on the form for the HR department. And there a clean desk had to be rated as “good”, and a messy desk as “bad”. But as you said, if that is useful, that’s a different question ;-)

    @RealityCheck: I agree with you that nobody is winning in this conflict. And as you say, I try to learn from it, as this article hopefully shows. If you see some concrete things I could do better, please let me know :)

  • Brendon Kozlowski

    “@RealityCheck: I agree with you that nobody is winning in this conflict. And as you say, I try to learn from it, as this article hopefully shows. If you see some concrete things I could do better, please let me know :)”

    Although a blog is meant as a public place for communication and collaboration, certain things should be kept private – especially once they come to a certain plateau, or climax, or what-have-you. Once they reach a certain level of confrontation, it should be dismissed from the public view *politely* and taken back to private matters, in my humble opinion.

    At work, a woman was emailing myself (developer), her boss, the director, and two other administrators. She was asking questions specifically related to something I had built on behalf of a request from the administrators and her boss – the director ended up being a part of the decision making process near the end. I answered as best I could, ALL of the questions posed. She responded that her intention was NOT for me to answer all of the questions, only the one *seemingly* directed only to me – the others, policy questions (related to the use of the application) were directed towards administration. Because I am familiar with our administration, I was quite sure they would not respond (which they didn’t), and tried to give as best a response as possible without actually saying “this is what will happen”. The emails, continually sent with REPLY ALL quickly became more confrontational as she was upset that I answered these questions when in fact, she wanted someone else’s response. When I tried to inform her that I simply wanted to try to answer all questions posed to me with the best of my knowledge (to be helpful) and she was not happy with that response, I simply said – to all, that I reserved the right not to respond any further. If matters require it, I can discuss this in person.

    Conversation over. Conflict resolution completely skipped, but none-the-less, just as effective in this case. Sometimes, it’s important to simply let people say what they need to say and not respond. I think this has reached that point. You’ve made your decision, they’ve all made theirs. Although certain questions have been posed, it doesn’t seem that either side will find answers that are deemed reasonable. Time to let it go, and hope no one has hurt feelings at this point. “Time heals all wounds.” It’s too bad “time” isn’t defined in that saying. ;)

    Seriously though, sometimes a non-response is better than an actual response.

    P.S. – I like your analogy of looking at a different point-of-view in your example. It shows that in a group dynamic, there’s never a single point of failure. There may be differing degrees of points of failure, but never a single one.

  • unbeliever

    ‘I think you misunderstood my statement I made about not trusting CakePHP.’

    @cakebaker: Are we still talking about your first comment at http://www.littlehart.net/atthekeyboard/2007/08/21/trusting-magic-methods/ please? If yes, then I am pretty sure that JUST little correction of what you stated there was a nice&short solution. I think that you can’t say anything in your blog post/comment what will fix taste of your personal opinion “Personally, I don’ trust CakePHP”. It seems like you as a coder are messing with code at several places instead of fixing one single line where something bad happened. IMHO – if you still trust CakePHP, one more comment in above mentioned blog post can clear this thing (misunderstood by me and surely by plenty others also) in proper place.

  • cakebaker

    @Brendon, unbeliever: Thanks for your comments!

    @Brendon: Thanks for your example. And I agree with you that it would have been better if we had put back this discussion to a private level at some point, even though it is difficult to see this point.

    @unbeliever: Yes, we are still talking about that comment. I think it is not necessary to comment there again, as my statement didn’t cause a discussion on that blog, the discussion happened here (mixed with other stuff *g*).

  • scotto

    I’ve read this whole thread. Don’t know why exactly as I have a lot of other things more important things that I needed to do on my project tonight.

    As I reached the end, I realized that there were crucial lessons here for me to learn and I hope for everyone else as well.

    In a project that I am working on using Cake and climbing the inevitable learning curve, with resources spread over so many different blog posts and hidden nuggets in the API, I’ve come to rely on the blog postings of cakebaker as one of the definitive and reliable sources for digestible and usable information. In reading this thread, I’ve realized that many in the Cake community felt the same way and even the core developers acknowledge the value of this blog.

    Personally, I’ve had a few people split off from my project recently, as my definition of their ‘level of contribution’ didn’t match with theirs and after reading all these comments I have to admit that a large measure of the problem lies with me and ‘my definitions’. The way I see it now is that I was fortunate that they were contributing at all and each in their own way brought a unique value to the table. That is not to say that splitting may not turn out to be the best decision, but I do take responsibility for my part.

    Respectful communication and appreciation of what they did do, could have avoided some of the ugliness, and maybe if I had sought to find a place where they did contribute as their talents and motivation allowed, however ancillary, a total break could have and may still be able to be avoided.

    That is lesson one.

    The second lesson I know all too well as in my 9 to 5 I am am a member of the media. That lesson is ‘do not insult the man with bullhorn in his hand’.

    People will strike out and express themselves in the outlets they have available to them. Are you really surprised that cakebaker wrote a blog post about this incident? Hello? That what he does, and does very well I might add.

    There might have been a bit of tunnel vision and overlooking human nature involved in the way the ‘cutoff’ was handled.

    Bottom line, Cake Team, you’ve just bought yourself a bunch of bad press and for those of us looking to build large commercial websites with Cake as the framework and who have little tolerance for instability, this damage is potentially substantial.

    It will pass though, if you learn the lesson and don’t keep peeving the poster boy.

    You need passionate and vocal advocates, but mind you, it is a two-edged sword. Those who sing your praises today, can turn the phrase tomorrow and spew seeds of scorn.

    Mainly, the lesson is that contribution is to be encouraged in all its forms. We simply cannot do big and great things entirely on our own. We need people and their talents, time, and toil, in whatever form they can offer.

    Thanks, cakebaker for a great blog, I appreciate and learn from it daily. Thanks, Cake Team, for a great framework. When I go global, I’ll throw you a brontosaurus bone!

    And thanks everyone for your comments and the lessons they contain!

  • cakebaker

    @scotto: Thanks for your long and insightful comment!

    I agree with you that splitting is sometimes the best solution. And in this case it is the best solution for me, especially when you see that what you did for the project was not really appreciated by other team members.

© daniel hofstetter. Licensed under a Creative Commons License