I just read an article in Software Development Times. It talked about the continual failure of big software projects. This article had some authority as it included quotes from Grady Booch. It called attention to the fact that despite all kinds of new technologies, projects continue to fail at a critical rate.Failure is defined broadly. The project may be late. It may cost more than anticipated. Or it may not contain everything that was needed. Given this definition, most software projects are probably failures.
What are the causes of such failures? It might be requirements problems. Specifically teams are not validating requirements. There may be programmers who do not follow the designated architecture. Or there might be poor contingency planning. We continue to fail, and don’t learn from our mistakes. There is a lack of best practices being used in the industry.
Here is a pattern for disaster. Keep adding requirements piecemeal. Then try to deliver a system that implements them all. Fail. The overall source of software project failure is human communication errors. Here is how you tell whether your software project has high quality. Check whether the software does the job it was required to do. Furthermore, test whether it does this correctly. If not, you can add you software project to the list of failures.

Today I got a call from my team lead. He needed help. We have functionality in one of our apps to filter out spreadsheet rows based on values in the columns. He added a new column. But he could not get the filter working.
We are a little behind schedule on our latest software delivery at work. I told the management that we will not make the dates unless we get more help. It took a while for that to sink in. The managers kept coming back asking me how we could make the dates. I kept repeating that we needed more people or it was absolutely impossible. Finally we got another resource.

This time I wrap up the lessons learned by reading Programming Interviews Exposed. Although I have never personally be asked any drawing questions in an interview, I suppose you might get some if you are trying to get a game developer position. I can't go into a lot of details of computer drawing. But it is good to know that high performance drawing relies on using integer math.