This category contains 11 posts

Preserve my data forever – one payment for life

I buy a notebook and I expect my notes will survive longer than I will. I print a photo of my family and I trust that even with colors fading, the people will still be recognizable 30 years from now. I back up my data to Google Drive, Microsoft OneDrive or any other major online … Continue reading

Automate away the SDET role – reusable domain expertise systems

Removing humans from the task of testing software will benefit from expert systems that encode domain expertise for various types of software. Software engineers will be able to reference from their computer-readable specs (crspec) various modules in those expert systems, and write a small amount of code to encode the specifics for their cases. The … Continue reading

Automate away the SDET role – English optional in specs

The previous post “The last automation – let software take over the SDET work” introduced the idea that software systems could take a large and increasing amount of the work on testing software that is currently done by people. The current post will describe at a high level what the feature spec work would look … Continue reading

The last automation – let software take over the SDET work

“Never send a human to do a computer’s job” Unknown, circa 1990 During the past 20 years, software engineering has benefited from tremendous improvements.  We have more powerful tools than ever for writing and testing software.  The training materials and books are better than ever.  Frequently, solutions on a wide variety of subjects are readily … Continue reading

Security through ignorance

After posting the blog “Mint.com asks the unthinkable – my bank account password“, I got a number of replies trying to justify why Mint’s asking for the username and the password of every bank account is not a big problem. The justifications go along these lines: They have top notch, bank-level, biggest-and-baddest security and protection … Continue reading

Mint.com asks the unthinkable – my bank account password

Recently I started evaluating Mint.com as a tool to better track my family’s finances.  As I expected, Mint asked me for the user IDs of my bank accounts and credit cards.  What I didn’t expect was that Mint would ask for the passwords to these accounts and – even worse – that Mint would store … Continue reading

Apple CEO Tim Cook wrong on Google Glass

“There is no reason anyone would want a computer in their home.” Ken Olsen, founder of Digital Equipment Corporation, 1977 Tim Cook may well have been Steve Jobs’ right hand man and the operations genius at Apple, but his prediction that Google Glass – and augmented reality glasses as wearables – will “not likely to … Continue reading

The essential tools for writing readable specs

The common cliché is that software engineers are not very good at communication, and by extension don’t write good specifications.  In my experience, I have found that failure to create good technical specifications is caused by one of two reasons – engineers are not aware or cannot use effectively the basic tools for writing specifications, … Continue reading

Why write software specifications?

“Failing to write a spec is the single biggest unnecessary risk you take in a software project” Joel Spolsky In certain cases, there is no alternative to writing specifications about the software to be created.  When contracting out software development, one party obviously has to describe in some details the requirements of a project or … Continue reading

What is a software design specification?

You are working on a product which has shipped prior versions, or at least has been in development for a few months, and you are part of an engineering team which has one or more program managers, a few developers, and a few testers. The planning effort has identified a number of requirements that the … Continue reading