Technical Book Club: Code Complete – Software Construction: Building Software
Code Complete is all about Software Construction. What? You probably never faced a course on software construction in school … or did you. Some key points from this chapter:
- Software Construction includes detailed design, coding, debugging, integration, unit, and integration testing.
- Construction is also known as implementation and programming.
These topics are likely a cross-section of the courses you’ve taken or the tasks you’ve completed while on the job. Construction is a core piece of software engineering. If you’ve worked on a project that started out as “just a small app to do foo” then it’s likely you started with this phase of development. If you’ve worked on a more mature product, concept, or idea, then you might have worked your way to construction through specifications and business requirements. In class, this might be a set of information provided to you before you begin a lab or homework. Steve discuss many great points for why construction is an important topic including:
- Construction is the only activity that’s guaranteed to be done.
- Construction’s product, the source code, is often the only accurate description of the software.
I love the articulation of this first point. Whether it’s a project or a product that’s running late, many corners can be cut but this isn’t one of them.
Questions for discussion:
- In projects you’ve worked on how much time has been spent in the construction phase?
- Steve’s motivation for this book was to provide a quicker dissemination of best practices among practitioners and between academia and industry. How do you learn about or share best practices to improve your skills?
I find the way I learn best is to chat with other developers, although I also like books and newsletters. I find that when I try to explain my code to someone else, I see a lot of nuances that I missed when I was looking at it on my own. When I was at IBM, I developed libraries in C. Memory debugging was quickly one of my frequent tasks and I learned how to use Valgrind and Electric Fence from my colleague Folu. This lead me use to use linux.die.net as a resource more generally. I read a lot of MSDN and DeveloperWorks articles.
Since working at Microsoft, I’ve learned about Channel9 which has a lot of great developer content. Microsoft has a number of great resources for students such as the MSDN Flash Newsletter “News for Students” column and our Facebook discussion at Microphone.
Comments
Anonymous
May 07, 2009
PingBack from http://microsoft-sharepoint.simplynetdev.com/technical-book-club-code-complete-%e2%80%93-software-construction-building-software/Anonymous
May 07, 2009
I am very interesting in reading books. If I had much time and money, I should buy and read all possible computer science books :) Also I enjoy watching videos about different new technologies, languages etc. But it's more for interest, not for real study. Last weeks I have spared more time for the construction of my programs (labs at discrete mathematics) and it's really effective. I think that results become better. Good luck!Anonymous
May 08, 2009
Code Complete is great! I recently read and also recommend http://www.microsoft.com/learning/en/us/books/12863.aspx for anyone interested in designing enterprise applications (comment from Facebook)Anonymous
May 14, 2009
It sounds like a great idea, gonna try and catch up over the next week. But on top of your blog posts, how about a weekly IRC(or something similar) meetup for some real time discussion?Anonymous
May 15, 2009
In answer to the question from last week’s section , according to Code Complete, software constructionAnonymous
May 21, 2009
The next sections are fairly straight-forward.  Here’s a summary of some of the keypoints: Without