"It is unwise to design your software for zero defects... especially for spacecraft software." ☛ Gerard Holzmann

The quote above is from an OOPSLA talk that you can find on InfoQ by Gerard Holzman.

I first came across Gerard Holzman in the early 90's while looking for ways to improve the quality of software I developed for distributing real-time updates across a network.   I found his book "Design And Validation Of Computer Protocols"  helpful, but what I found most interesting was the introduction chapter.   It starts as follows...

"The problem of designing efficient and unambiguous communication protocols existed long before the first computers were built."

He goes on to illustrate this point with discussions of communication problems solved with "protocol design" as far back as 458 B.C.  This chapter was fascinating, so much so that he subsequently wrote an entire book on the subject called "The Early History of Data Networks".   That is the book you should read... Communication challenges and "protocol" based solutions throughout human history.   Reading this books gives you the impression that there could be very little ground left to cover in protocol design when computers were invented. 

"Naked short selling is when an investor essentially shorts a stock that he hasn’t actually borrowed." ☛ WSJ

Naked short selling is when an investor essentially shorts a stock that he hasn’t actually borrowed. During the worst of the financial crisis some corporate executives blamed the tactic for their companies’ plunging stock prices. In the U.S., regulators put new temporary rules in place to curb the practice in the fall of 2008. That rule was made permanent in July 2009.

Uncle Bob's Rules of TDD...

Over the years I have come to describe Test Driven Development in terms of three simple rules. They are:
  1. You are not allowed to write any production code unless it is to make a failing unit test pass.
  2. You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures.
  3. You are not allowed to write any more production code than is sufficient to pass the one failing unit test.

You must begin by writing a unit test for the functionality that you intend to write. But by rule 2, you can't write very much of that unit test. As soon as the unit test code fails to compile, or fails an assertion, you must stop and write production code. But by rule 3 you can only write the production code that makes the test compile or pass, and no more.

IBM posts it's software tools acquisition strategy...

By agreeing on common specifications for lifecycle resources and the services to access them, we can eliminate traditional barriers between tools and open the door to new forms of collaboration. OSLC can bring value to software delivery teams and tool providers alike, from the most Agile to the most ceremonial of projects, and for commercially-licensed, open source, and internally developed tools.

IBM Turns to Software as It Reboots - WSJ.com

International Business Machines Corp. is trying to transform itself again, as Chief Executive Samuel J. Palmisano races to stay ahead of the technology industry's fast-changing profit curve.

The top priority this time for Big Blue—which famously dumped its personal computer business in 2004 to focus on consulting and services—is software. Mr. Palmisano wants that high-margin business to account for about half of the company's pretax profit by 2015, up from just over a third in 2003.

...

Specialized software, meanwhile, is harder to replicate and still grows at a high rate and commands high margins. Last year, IBM's pretax profit margin was 18.9%, up from 10.6% in 2003. The company's new goal is to reach a pretax margin of 20% by 2015.