Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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