90% of Everything is Crap

Time to bring this blog back from the dead with a little pre-WWDC controversy!

Apparently there’s a disturbing trend going on in the Cocoa development community. We old timers aren’t being excellent to each other & newcomers to the community. Marcus Zarra in his blog, “Cocoa is My Girlfriend”, declaims against the criticism his work on The Daily iPad app received when it was released and is dismayed this criticism is coming from predominately the “grey beards”.

I think I’m firmly in the group of “grey beards” Marcus rails against, because of two facts: I am a miserable old curmudgeon and when The Daily first came out I was very critical of it (and in fact a critical tweet of mine managed to get the product I work on grubered).

Marcus spends a significant portion of his blog post elaborating on this trend, explaining how the older developers are turning on one another and their creations. For the rest of the blog post Marcus explains, well defends really, his work on The Daily.

You can read it all on his blog here: http://www.cimgf.com/2011/06/03/why-so-serious/

I think Marcus is wrong. I’m not going to accept his portrayal of this portion of the Mac OS X/iOS development community. I think the veterans in the community are no more or less critical today than they have ever been. As a general rule I think developers are highly critical by nature and by training, we have to be. And as a flip side to that, developers have to learn not to take all criticism personally.

We spend all day being told (by a program no less) how many errors we’ve just made writing a certain piece of code. When we finally fix all the obvious mistakes and can run the software, we hand the fruits of our labours off to folks whose very job is to be painstakingly critical of our work. When they find problems with our work (and they do, guaranteed) we track these mistakes in databases that grow to be huge mountains of preserved failures.

This is how good software is made. We become very critical of our work and of the software itself. We have to be critical so we know what we can fix and improve. If we took all this criticism personally, software developers would all be nervous wrecks. We learn to treat criticism not as accusation of failure, but as part of the process of making something good. But sometimes it is hard to do this and you get personally attached. That’s when the criticism feels like an attack on you.

Despite the dangers of taking it personally, I actually like this process. I think strong criticism is a good thing. You can’t improve something if you think it is perfect and often the creator is too involved with their creation to be able to recognize the flaws. I want to know when something I have worked on is broken, or just isn’t that great or could be done better. This is how I improve and learn. And I actually think society could benefit from becoming more critical, it seems to have become impolite to be critical. I hate to break it to you but your child is not gifted and talented.

I think Marcus is taking these criticisms personally, it probably is hard not to. He has poured a lot of time and energy into this product and it was put into the spotlight and promptly demolished by the community. The best thing he, or anyone else this position could do at this point is to prove the critics wrong. Fix the bugs or the performance problems, fix those cosmetic issues, make the software really fucking excellent. Blaming portions of the community for being overly critical is divisive and doesn’t make you or your software look any better.

I don’t envy Marcus the job though, I’ve worked as a contractor for large, megalomaniacal corporations and you can’t always control the outcome. Sometimes you have to shrug your shoulders, smile, nod and just do as the client asks, even if you know it is going to produce a substandard outcome. That’s the nature of software consultancy.

And in the spirit of accepting criticism, comments are on for this post! (Don’t forget to criticise my indent style!)

This entry was posted in Default and tagged , . Bookmark the permalink.
  • http://www.facebook.com/preston.sumner Preston Sumner

    Ooh, I know! In the spirit of criticism, I’ll pick on your grammar. It’s “we old timers,” not “us old timers.” When in doubt, remove the second noun and see if it still sounds right (e.g., “Us aren’t being excellent to each other”).

    That felt good.

  • Anonymous

    The problem with corporations/businesses setting requirements is that they are often over-ambitious at what they can do given the time, or money, available.

    Often, this is because they’ve seen the same functionality elsewhere, and – with good reason – have no real way to distinguish between which things are easy to implement, and which ones aren’t. 

    Having seen Flash based carousels on ebay, Amazon, et al, and Coverflow, I can imagine it would be easy for a non-technical person to think it was something easy to do.

    On the other hand, I think if there is one thing that defines the Mac software community – and even Apple to a degree - is that software or hardware may be missing features – but what is there, should work.

    And perhaps that points to where the big change is – the Mac Dev blogging community is largely made up of independents. (This differentiates it from, say, the Java Dev community, where ‘enterprise’ development dominates). Independents set their own destiny – they can cut features or slip timescales as required.

    But the rise of iOS – and increasing popularity of the Mac – means a big increase in third parties setting the agenda. And if you start with a date and a list of features that must be in there, there’s only two factors that can give, cost and quality – and we know which one it often is.

    (There’s also a vicious circle where previous experience means people have low expectations of V1 – and that it’s OK to ship, because that’s what software is like. Oddly, before it was easy to update software with patches, and it was shipped on physical media, it was a lot less buggy).

  • Jonathan Wight

    But see, everyone hates a grammar nazi.

    Although in this case backing up your criticism with a little rule to help you avoid the mistake in the future is very handy

  • http://twitter.com/rcw3 Rich Wardwell

    When you build something high profile – something that is advertised during the fricking Super Bowl, it better be good.  When you have a website that looks like this:  http://www.chaoticmoon.com/  it better be good.  When it isn’t, the criticism is going to flow, and you better be prepared for it.

    I think Marcus’s mistake (and even some of the folks criticizing – such as Loren Brichter’s carousel) was to take / or put the blame squarely on the backs of the coders.  There were a lot of people responsible for the issues of the Daily, and much of it probably did not lie on the head of those actually doing the development.  Or rather, the developers were certainly not in control of the final product.

  • http://toxicsoftware.com schwa

    Having worked on literally dozens of products as a contractor I can definitely agree with you. Often you’re considered “just the contractor” and never get any control over the quality of the final product. As a sub-contractor (a position I’ve preferred to avoid) it is even worse.

    But totally blaming the client on the other hand isn’t fair either. Contractors often blame the “crazy client” for everything – that’s a cop out that is pretty common amongst contractors. I’ve certainly used “my hands were tied” line as an excuse for bad work. Maybe I could have made that product better on my own.

    I think the key to what I tried (and probably failed) to get over in this blog post is that lack of criticism is worse than too much. With out criticism everything is “awesome” and all developers are “rock stars”. No product is mediocre. Everything is amazing.

    That’s all a lie. 50% of everything is below average and 90% of everything is shit. We all know that. Pretending otherwise encourages mediocrity.

    I’d rather my peers were overly critical of me and heck snarky with it than let me wallow in crapness.

  • Guest

    I’m trying to figure out which 10% of this post isn’t crap. ;-)