How to handle programming tools.

Many are the tools that have been created by programmers for programmers, we tend to have very specific tastes when it come to languages, paradigms, text editors and IDES that it is hard to track the really useful tools. But after reading this chapter I can deduct that there are some tools that never get old, vi, emacs, are the ones that stand the curse of time the better, but there are also new tools that are worth mention. For example atom, and sublime text can be very powerful on their own and can handle many kinds of language while keeping the simple plain text for everyone to use, even better atom already comes with source code control integrated in the form of github. Github tracks the files you are working on and  keeps track of the changes you make to said files. pgcif7h


Hunt, Andrew, and David Thomas. “The Pragmatic Programmer.” Addison Wesley 15


We now move on the chapter 9 of the Software Project Survival Guide where we take a peek at what is inside the project to make it from average/bad to outstanding/good. This chapter made me think about the many times I have acknowledge the power of the technology that I use from day to day, some of my favorite brands are dropbox and drive, incredible easy and intuitive tools that allow me to move without fear of losing the information I carry with me, ever since I use them I know that I can change my computer without fear of losing anything and I believe that is a great quality of the product, the fact that without saying it just makes my life easier and easier. The cost of the software goes even after the software is released. Software quality has a bottom-line impact on the cost of doing business. Low quality software increases the burden on end-user support. Leading companies like Microsoft.

Survival requires a commitment to quality assurance which involves the following elements.

  • Software quality assurance activities must be planned.
  • The plan for the software quality assurance activities must begin during software requirements activities or earlier.
  • A separate group for performing software quality assurance must exist. Depending on the size of the project that group might consist of one person.
  • Members of the group must be trained on how to perform software quality assurance activities.
  • Adequate funding must be provided for performing software quality assurance activities.

An effective quality assurance plan will call for several quality assurance activities: defect tracking, unit testing, source-code  tracing, technical reviews, integration testing, and system testing.

Defect tracking runs throught these quality assurance activities. The project team keeps records of each defect found, its source, when it was detected, when it was resolved, how it was resolved.

Unit testing is informal testing of source code by the developer who wrote it. The word “unit” can refer to a subroutine, a model, a class, or an event larger programming entity. Unit testing is usually performed informally but should be required for each unit before that unit is integrated with the master source or turned over for independent review or testing.

The “V” Concept of Software Testing


Life cycle testing involves continuos testing of the system dureng the developmental process.

At predetermined points, the result of the development process are inspected to determine the correcness of the implementation.

Source-code tracing is stepping through source code line by line in an interactive debugger. This work is performed by the developer who wrote the code. Many developers have found this to be an invaluable means of detecting coding defects, and my own experience bears this out.




McConnell, S. (1998). Software Project Survival Guide. Microsoft Press.