writing softwarebook idea software = solving a problem => marketing => writing programming language => writing clarity is key