Working Effectively with Legacy Code

The title of this book is actually deceptive.  The book is really about adding unit tests to a legacy code base!  It is a very technical book with lots of examples used by the author to illustrate various design patterns.  These design patterns each have an application in understanding a legacy code base and encoding this learning into unit tests.  

There is also something else that becomes clear after the book gets to the more challenging problems encountered in adding unit tests.  These chapters are some version of “I can’t get this code under test.”  You see very quickly that writing unit tests teaches you to write better quality software, more maintainable software, and more modifiable software.  Moreover, you soon see why Michael recommends writing tests first.  This is the first source I have encountered that does a good job of teaching test driven development (TDD).

Managing Humans

Managing Humans is a set of guides to managing software engineers written by a practicing software manager.  It is organized into several sections dealing with  managing, process, and people.  The insights are simple, though I am not sure that everyone is ready for them.  Five years ago I don’t think I would have.

I got stuck at the chapter “What Does a Manager Do All Day?” for a couple of weeks.  The answer to the question?  A manager listens to stories all day, tries to fit them into his internal “design patterns” (AKA, experience) and look through the spin.  I stopped because that seems to be a lot of what I do these days, and I didn’t realized I had become a manager.  Argh!

I’m back on track reading the rest of the book…

Talent is Overrated

This book is based on the same research as How to be a Star at Work.  There is quite a bit of hyperbole in the beginning that seemed like standard journalism – taking an outlier and suggesting it supports the writer’s hypothesis.  Things got better in the section on research on expertise.  The author collates several studies that confirm that particular fields have “a number,” that is, a number of years of hard intense study that it takes to be a ranked expert in that field.  What they find is that “child prodigies” such as Mozart or Tiger Woods had father’s that were teachers, and they started learning before age 5.  So by the age of 17, they had over 10 years of experience.  And even then, Mozart’s best work was years latter.  Also among research findings was the concept of deliberate practice – that practice on things you are not good at, that to you “are hard,” is what separates experts from the tier below.  The author’s try to extrapolate the concept of deliberate practice to management and leadership – this section feels rather hollow.

Tips for Noogler Engineers

Tips for Noogler Engineers is an article on Piaw’s Blog.  Apparently a Noogler is a new Google employee.  The article points out how to climb the Google ladder.  Seems to apply to LM and other large companies.  Sad that mentoring and 20% time are possible bad things – they may get you no credit.  This also agrees with content in How to be a Star at Work on getting on the most important projects, skip the grunge work.

Other good articles:

  • Culture.  He talks about innovation at Google, and speed of innovation.
  • Twitter Presentation.  Lesson’s from Google and Facebook as you face hyper growth.  Covers technical issues, people, and process.  Most interesting technical comment: don’t build your own general infrastructure stuff.  Most interesting people comment is on promotion systems, and how peer based review systems fail after Dunbar’s Number (~150).  On process, reward the grungy painful work!
  • Google and Facebook.  Or more appropriately titled “5 Google Engineering Management Mistakes” – a presentation that Piaw put together for Facebook.  HB needs to read slide #6.  Slide #8 talks about how non-engineers used the peer review bonus program to get engineers to do things for them.  How about tying hiring to management incentives?  Interesting observation on slide #13 – you need to work with “staff engineers,” that is senior engineers, in order to get promoted at Google.

Why Is It Always About You?

I finished reading Sandy Hotchkiss’ book upon which the Wikipedia Seven Deadly Sins section is based:

Why Is It Always About You?: The Seven Deadly Sins of Narcissism [Kindle Edition] by Sandy Hotchkiss

In a word, fascinating.  Part 1 covers the 7 deadly sins, Part 2 is on the origins of a narcissist, Part 3 is on survival tactics, Part 4 on the narcissists in your life (family, love, work), and Part 5 on narcissism in society and preventing it.  I’m still thinking about Part 2 – the theories (dating back to Freud) on how children develop from age 3-18 months.  Its in this window that a child’s future as a normal person or narcissist is determined, where a narcissistic parent or other caregiver can create another narcissist.  A drug users drug of choice is related to what goes wrong with this stage of development and represents an attempt to go back to that wonderful time of 3-18 months.  Just fascinating – how did Freud and others figure this out?

The Devil’s Derivatives

The Devil’s Derivatives: The Untold Story of the Slick Traders and Hapless Regulators Who Almost Blew Up Wall Street . . . and Are Ready to Do It Again – it follows Nicholas first book, and in this book he has a much better ability to articulate the significant of financial technology in lay terms.  For example, derivates are essentially loan mechanisms.  As new loan mechanisms, they initially competed with the old style of actuarial loans, e.g., mortgages, bonds, etc.  He also discusses LTCM in hind sight – that they were so big that they were the derivatives market.  Thus, there performance could not be derived from past historical data (since that data did not include their influence).  Moreover, as the market started to learn their techniques (become efficient), it actually started to guess LTCM’s moves and arbitrage them!

A Random Walk Down Wall Street

This book covers a lot of the history of financial markets – covers a lot of the history of finance, from tulip speculation and the East India Trading company, to today’s models.  Updates in the revised edition include CAPM, its rise as a fad, and its decline when studies by (I believe Fama) showed that its predictions didn’t all hold up.  It also covers the Fama-French model.  The part I found most interesting about the discussion is that CAPM concludes that no premium should be paid for non-systematic risk because it can be diversified away.

While America Aged

Roger Lowenstein, While America Aged: How Pension Debts Ruined General Motors, Stopped the NYC Subways, Bankrupted San Diego, and Loom as the Next Financial Crisis – an interesting read on some of the worst pension abuses.  It reaffirmed my believe in balance – the worst political situation is when any interest group gains a foothold which allows them to run their agenda at someone else’s expense.  The NY teacher’s at one time would retire at 130% of salary!  Can you imagine that?  And this was after 30 years of service.  Do you think anyone would not retire on the first day possible?

Inventing Money

 Inventing Money: The Story of Long-Term Capital Management and the Legends Behind It – a technical take on LTCM compared to Lowenstein’s version + bibliographic information on the main players.  Unlike Lowenstein, Nicholas doesn’t let the reader ease into, even guess, how the assumptions of volatility, liquidity, and normality impacted LTCM.  He is quite direct.  I also liked the explanation of derivative trades as off-book since they are effectively highly leveraged.