Best Books of 2010

It is that time of the year again, just like in previous years. This is the list of the books I enjoyed most in 2010! You know that I like reading at least 6 books per year, and learning a new programming language every year. Last year’s programming language was LISP, and the books, well, here they go.

eBooks

By all means, it is clear that 2010 was the year of the eBook. Maybe it’s because of the iPad, but I’ve been consuming more and more eBooks, even if I still enjoy buying some classics in paper form. Kindle, iPad, iBooks, Nook, GoodReader, PDF, ePub, all of those names have shaped my way of reading last year.

But one of the most visible changes of switching to eBooks was the speed of reading; consuming eBooks is fast, much faster than reading normal books. I can’t say that I prefer one or the other; it’s simply different. But reading eBooks is faster than reading paper books. Probably there’s a warmth factor in paper books, which makes me enjoy them longer, I don’t know, but the fact is, in 2010 my book reading consumption has gone up in an alarming rate. Continue reading

Welcome to the company!

Many people have asked me why, when I was an employee, I used to change jobs so often. The answer stands in between my own curiosity to take on new challenges, and the various assholes I had to deal with through the ages. Just as an example of this last case, here goes a true story, one that stands between being a candidate story for The Daily WTF, or as sample material for The No Asshole Rule book by Bob Sutton. You decide.

Prologue

A couple of years ago I found a job as a PHP + JavaScript developer in a small company in Geneva, Switzerland. I remember going to their offices two or three times, and having several interviews with various people there; one of them was the lead PHP developer of the company, the other being the CEO, a relatively well-known person in the tech area in Geneva; both shall remain nameless. The last interview I had was with the CTO, who would be my direct boss, as I was told.

They finally chose me, and very happily I signed the contract. I handed my resignation for my current job at the time, but had a couple of months of work to do before leaving (this is usual practice in Switzerland, one that I despise deeply, but that you are legally forced to follow). All in all, three months passed between me signing the contract and the first day of my new job.

The First Day

So one day, I headed to Geneva to start my new job. I arrive at around 9am to the address where the interviews had taken place, and, oh surprise… there was nothing. Stay with me: there was nothing. Not a sign in the wall indicating that the company used to be there, not a single desk, not a phone plugged on the wall. Nothing. Continue reading

Tweeting without Twitter

During my flight to WWDC this year I could not really sleep, and the 12 hour flight was the source of memorable tweets that will never make it to Twitter. Because of timing and context, and also because of the inexcusable lack of wifi network in some major airlines.

Anyway.

I used Pages during the flight to keep track of all those insomniac, bilingual tweets, while the plane was a going through the Atlantic and Canada towards San Francisco. Some are about the flight itself, others about the Argentine film “El Secreto de sus Ojos”, and finally some about the Football World Cup. Project yourself in the situation, and enjoy the rants. I certainly did :) Continue reading

Best Books of 2009

047014873X.jpg Every year I’m doing the same post (well, in 2006 I completely forgot to do it) that starts more or less with the same phrase: “every year I like to read at least 6 new tech books, and to learn a new programming language.”

Last year’s language was Go, and the books, well, here we go:

Software Engineering: Barry W. Boehm’s Lifetime Contributions to Software Development, Management, and Research

Barry Boehm is a name that might not strike a chord immediately, but if you work in the software field, it should. He has been working non-stop for the past 50 years (that’s right, 50), discussing all kind of subjects related to the practice of software engineering. This book is a compilation of his most well-known papers, with subjects ranging from project management to components, from iterative techniques to developer productivity. The guy has written about all of it, and when you realize how right he was, you wish you had read those papers earlier in your career. Continue reading

Epic Interview: A New Literary Genre in the Tech Section?

Here’s a simple recipe:

  1. Contact the most important people in some field.
  2. Sit down and ask a similar set of questions to each one of them.
  3. Record all the interviews and then write them down.
  4. Publish the resulting book, usually with great reviews (such as this one).

This does not constitute, by any means, a new genre; but it’s certainly a fashionable one in your technical bookstore right now. At least Apress and O’Reilly have realized that this simple technique yields epic books.

I have already blogged about Founders at Work, thus it’s worth mentioning that Coders at Work (which I’m reading right now) has just been released. Both books share a similar structure (as well as a similar cover), and both are highly recommendable, with interviews of David Heinemeier Hansson, Steve Wozniak and Paul Buchheit for the first, and Donald Knuth, Joe Armstrong and Brendan Eich for the second.

founders_work coders_work

On the other side, O’Reilly is very well aware of the force conveyed by this kind of books: their “/Theory/In/Practice” series of books has some gems which, I think, are really worth reading:

beautiful_code beautiful_teams masterminds_programming

“Beautiful Code” features interviews with Brian Kernighan, Charles Petzold and Yukihiro Matsumoto; “Beautiful Teams” (already my preferred book for 2009!) features Tim O’Reilly, Barry Boehm and Grady Booch; finally, “Masterminds” has great interviews with Bertrand Meyer, Bjarne Stroustrup, James Gosling, Brad Cox and Anders Hejlsberg.

I think that the names of the interviewees, in each of the five books, speak for themselves. In all of them, I have found inspiration, advice, tips, humour, awe and enlightenment. The good thing being that, in most cases, you don’t need a Computer Science degree to read these books; it’s just a matter of empathy and sociology. Our world is driven by software, and the stories behind its construction are not only interesting, they are also important to understand the cost, the difficulty and the wonder that constitutes a piece of working software. These books are a way to approach the immense complexity of our society.

I really look forward to read more books of this kind! If I forgot to mention any other similar book, just leave the reference in the comments section below. I’d love to read your suggestions.

Risk Management in iPhone Projects

Let’s be frank: it’s not the best time to be an iPhone developer right now. In just one year of existence, the App Store seems to have evolved from the hottest to the lamest status, without any time to breathe in the middle, but with some warning signs every so often.

appstore

Several iPhone developers have publicly stated their opposition to the Google Voice fiasco (starting with Riverturn themselves, the developers of the application), and many have simply stopped creating iPhone OS applications altogether; just to name a few, Fraser Speirs, Steven Frank and Andrew Wulf have publicly stated that they don’t want to deal with the App Store process anymore. And I’m sure that there are many more developers evaluating this very possibility out there; when you have Om Malik or Michael Arrington bashing the iPhone, it sure creates a lot of buzz and uncertainty in the market.

However, and this is my official position, even if I do not agree with the current App Store policies, I’m not quitting the iPhone OS platform anytime soon. I’ll build more applications for the iPhone in the future – heck, I’ve got 2 already approved and 3 more on the approval process pipeline, with at least 3 more in the development phase. My plan, and what this article is about, is about managing the risk represented by Apple in this business. It might be hard, but it’s not impossible, no matter what others say. Continue reading

Wonderful uses of the Phone

maravillloso

(Image caption: “A passenger in a plane of Northwest Orient Airlines makes a phone call relayed by radio”) Wonderful uses of the Phone by Richard F. Dempewolff Reaching over a shelf in her kitchen, a housewife pushes a button in a modern device similar to a transistor radio. “One, one, five, seven, five, eight, zero,” says the woman in front of the device microphone. A light turns on in the five centimeter screen in front of the device and the image of a man appears. “Joe,”, says the housewife, “do me a favor: please bring chocolate ice cream when you leave from work.” The man in the screen smiles and through a small speaker a manly voice says: “sure, I’ll be there in half an hour.”

(Mecánica Popular – latin-american version of Popular Mechanics, october 1958 – courtesy of hernún)

Random Quotes on Business and Software

A Cooperative Organization:

(…) Gore has been a team-based, flat lattice organization that fosters personal initiative. There are no traditional organizational charts, no chains of command, nor predetermined channels of communication. Instead, we communicate directly with each other and are accountable to fellow members of our multi-disciplined teams. We encourage hands-on innovation, involving those closest to a project in decision making. Teams organize around opportunities and leaders emerge.

Continue reading

Dangers of Prototyping

Frederick P. Brooks Jr. has written about prototypes, saying that they are not only useful but strictly fundamental pieces of the overall software process, as in many other engineering activities. He gives the example of a pilot chemical plant, prepared to process 10’000 units per day instead of the 2 million units a day that the final plant would have to handle, in order to demonstrate the feasibility and uncover some unforeseen problems.

He summarizes his opinion in the famous phrase “plan to throw one away” (Brooks, 1995, page 116), underlining the problem of change management: managing change, right from the beginning of the project, instead of ignoring or avoiding it, is particularly important in software projects, since it presents a solid mindset for all stakeholders in order to avoid scope creep, schedule and staffing problems. Continue reading