How to make software: complete information