In This Chapter
Understanding the professional approach to software development
Building a software development toolbox
Seeing why component-based software is superior
Peeking at how programs are executed in .NET
Discovering automatic memory management
This chapter offers an abbreviated history of software development by discussing where the process now stands and how it got there. You also find out about some of the inner workings of .NET as it relates to modern development approaches.
Even if you've never worked in software development, you've no doubt heard about many of the problems associated with software development projects, such as
Frequent schedule and budget overruns
Software that doesn't do what it's supposed to do
Software that's obsolete by the time it gets finished
Software that ships with security flaws
Over the years, the software development industry has created a number of approaches and tools to help better manage software development. I discuss several approaches in more detail in the upcoming section "Have process, will repeat." However, some of these approaches can be categorized in one of these two main approaches, although most real-life situations are a hybrid of the two:
Ad hoc, or hotshot: In this approach, characterized by nonexistent development practices, no standard exists for how software is developed. Hotshot programmers often work all night and come in at noon the next day. You ...