1.7 Software Project Goals Key software project goals include: Functionality This is the number one driver in most software projects, which are obsessed with meeting functional requirements.Security often comes with significant overhead.The problem is, security mechanisms, including most uses of cryptography, elaborate login procedures, tedious audit requirements, and so on, often cause usability to plummet.Usability People like programs to be easy to use, especially when it comes to conducting electronic commerce.Usability affects reliability too, since human error often leads to software failure.Efficiency People tend to want to squeeze every ounce out of their software (even when efficiency isn't needed).Solving the problem invariably involves getting something done in a particular way.Usability is very important, because without it software becomes too much of a hassle to actually work with.Security people often deride cookies, but cookies are a great user-friendly programming tool!Efficiency can be an important goal, though it usually trades off against simplicity.Security concerns regularly impact convenience too.Waiting around while a remote server somewhere authenticates you is no fun.Software is a tool meant to solve a problem.And for good reason too.But it can be necessary.