Joshua Kerievsky invites developers to start thinking as entrepreneurs, writing code that is “good enough” for the purpose it is supposed to serve rather than write elaborate code that is beautiful.
Joshua Kerievsky has been programming professionally since 1987, and is the founder of Industrial Logic, a company specializing in Extreme Programming (XP). Kerievsky is the thought leader behind Industrial XP, a state-of-the-art synthesis of XP and Agile Project Management. He has been an active member of the XP and patterns communities, and he wrote a book called Refactoring to Patterns.
Software is changing the world; QCon aims to empower software development by facilitating the spread of knowledge and innovation in the enterprise software development community; to achieve this, QCon is organized as a practitioner-driven conference designed for people influencing innovation in their teams: team leads, architects, project managers, engineering directors.
Recently they seemingly hired someone, and there were some advances in UX (honestly, sorry: it was a pain to use, I have no better word for it, and I'd have been never a customer, simply because of UX), yet it's still a very rough-cut page, and the legs of the beasts are shining through under the nice costume.
The only reason I see that IL is successful is that noone else does a better job in their market.
I remember an ad from the 90s, that was about a guy showing with a handwriting on a piece of roughly cut cardboard the address of his store. It's actually here:
(It's an updated version with printed paper, the previous is even worse)
This guy became a millionare. Not because his ads were so professional, but because he had a good sense of business.
If the IL website has no hindering amount of technical debt in it, than nothing on the world has, and we should outsource 100% of development to India tomorrow on.
As an architect of a near-sourcing company (operating from Hungary to customers in the UK, 2 hours of flight), I've seen really nasty code, and they hired the brightest minds (well, maybe they did a hiring mistake with me, but there were really top guys, book authors and everything) exactly to cut through those.
We were able to put code in surprisingly better shape than where IL is standing. And that code was REALLY nasty, it was written by people who literally, honestly, openly didn't care. There were codebases of cancelled projects, because the outsourcing company didn't care to the level that they lost the customer We put them into a usable shape.
So, while I admire Joshua as a great business man, as IL is profitable it seems, and I have nothing wrong to say about his pre-IL work, whenever I hear him speaking about code quality, I go to the website, go through the album, try to imagine it using as a user, watch loading speeds (they increased greatly actually!) and his credibility is multiplied by zero unfortunately.
Good developers, slow?
That's as saying that a good car washer keeps washing a same car over and over and must be told to stop and move on to the next car by a car washer manager.
I wouldn't call him a good car washer.
As Bjarne Stroustrup says: "The best programmers apparently effortlessly produce code of a completely different level of quality at a rate that is very much higher (i.e. you get both quality and quantity - and they tend to solve each problem with far less code than the average programmer)." (mentofacturing.pdf)
Often good developers are seen as unproductive aesthetes because their clueless coworkers and managers can't see nor understand all the problems they didn't do or helped avoid, or, ironically, precisely because their creativity and entrepreneur-engineer side is inhibited by a clueless management that only see them as stupid handworkers, and limit their actions to some very narrow part of the code, which they keep making better and better.
That said, I agree that developers could be given more responsibilities regarding business decisions, and work closer to customers and end users, because in a world of innovation, what must be done is closer to what developers see can be done, than to what business think could be done.
What about first impressions?
I often wonder if we software developers forget why we get paid. Your presentation brings the focus back to the business which is the thing that pays the mortgage.
I love the message that good quality does not need to be universally "beautiful", but rather sufficient. I'm not sure if a great developer would have produced a better result that the $40 script. They would have certainly taken a lot longer, especially when you factor in hiring time etc. And unless you can hire great developers by the half hour, they would have been significantly more expensive.