Is creating reliable software hard?