Gary's Columns from The Rational Edge

Since January, 2004 I have written a monthly (or mostly monthly) column for IBM's The Rational Edge, an e-zine that focuses on software development. The column is called Theory and Practice. It attempts to provide observations, opinions, and information about software development trends, technologies, and other topics of interest to the practitioner, student, and academic. This page contains a list of the columns, with links, and a brief description of the topics.

Date Title Description
Mar. 2008 Robotics for fun and profit I talk about some robotics platforms available for modest prices and how one might use them to interest a young person in exploring the study of computer science and robotics.
Jan. 2008 Understanding software engineering: A student perspective I had my software engineering students write a critique of an article that suggested that we abolish the term sofware engineering. I summarized the results of the papers and explained why I thought the students did such a good job of analyzing the article and developing their own throughful conclusions.
Dec. 2007 Computing in a parallel universe This column discusses concurrency in programs and how it is a technology that will become more important in software as the hardware systems we work on add to their parallel computing capabilities.
Nov. 2007 Getting out of the comfort zone How do we develop new habits? It's hard to give up our security blankets, whether they're physical or simply habits that we've developed over the years that have allowed us to cope with problems we face. In order to become proficient with new skills, we have to get out of that comfort zone and put ourselves out into a place where we are not the confident experts, but students once again.
Sep. 2007 Where have all the CS majors gone? I take a look at how the distribution of CS majors has changed, but how CS is more relevant than ever.
Aug. 2007 Rails: The luxury line to professional Web sites A high-level overview of Ruby on Rails and how the Rails framework simplifies the development of high-quality Web applications.
Jul. 2007 Ruby: A gem of a language A more detailed look at Ruby and some of the cool features that make it a favorite among programmers today.
Jun. 2007 Dynamically speaking A brief overview of some popular dynamic languages and why they are becoming more popular for mainstream applications.
Apr. 2007 Collaboration in a flat world This article looks at the importance of collaboration in software development and describes some of the work we've done in building collaborative tools in our Webfoot project at WPI.
Mar. 2007 Agile software development: A tour of its origins and authors Here I try to address the question of "what is agile?" If you read this, you'll see that this isn't an easy question.
Jan. 2007 Anti-patterns for people and tools It's not just processes that we abuse when we try to complete a software development project. Organizations have devised several ways to misuse the people and tools at their disposal. These result in equally disastrous projects.
Dec. 2006 Process adoption anti-patterns: How -- not -- to make a process work for you We have many processes that work. Yet so many software development projects fail? Why is this? Part of the problem is using a process incorrectly. This article explores some of the more common ways that people fail to use a process properly.
Nov. 2006 Writing clean code This column addresses the issue of writing code that works and writing clean code that works. There is a penalty that you pay for writing code that no one can understand. You may not pay the price immediately, but you will pay the price.
Oct. 2006 Using mock objects for complex unit tests This is a tutorial on how to take advantage of IDE capabilities, such as in Eclipse, to easily create mock objects for unit tests.
Sep. 2006 Soft skills for software engineers Grading students in software engineering classes is similar to reviewing the performance of software developers in industry. Unfortunately, there are few true/false or right/wrong answers to real problems. What should we look for, and how can we evaluate the soft skills that are important for software developers' success?
Aug. 2006 Does process matter? I examine the different types of processes that might exist in an enterprise and pose the question whether the specific process you choose really matters as long as it "plays well" with the other processes in the organization.
Jul. 2006 Measures of success: RUP and the scientific method This article suggests some ways to measure whether a team actually follows the process they claim to use in their development activities.
Jun. 2006 Skills and tools for a flat world I discuss issues like globalization and how we need to make students aware of such issues and the tools we need in order to fully participate in the "flat" world described by Tom Friedman in his book, The World is Flat.
May 2006 Ethics and software development A discussion of the relationship between ethics and software development and why it is important that we educate developers in ethics.
Mar. 2006 Aspect-Oriented Programming: What is it good for Updates my views on AOP and presents several cases where the technology has been, and can be used quite successfully.
Feb. 2006 Software Development 101 This is almost an update of my first column. In it I describe the way I teach software engineering (software development) in a way that simulates the "real world" in a fun, practical way.
Dec. 2005 Teaching software development vs. software engineering This column describes the difference between software engineering as it is presented in most textbooks on the subject, and software development as it is really practiced. Then I explain why I believe it's important for me to teach the latter.
Oct. 2005 Beyond an objects-first approach This column looks at structured versus object-oriented thinking, explains the benefits of an objects-first teaching approach, and speculates on the possibility of transitioning to an aspects-first approach, as the practices of aspect-oriented programming become more widespread.
Sep. 2005 Teamwork: Setting up for success This column takes a more pragmatic look at the similarities of how the great art masterpieces were constructed and how great software teams work today.
Aug. 2005 Masters and masterpieces Continuing the artistic thread, this article asks the reader to consider some of the great software masterpieces, like Smalltalk, Eclipse, and others. It discusses what I think makes something qualify as a masterpiece.
Jul. 2005 Great art and the craft of software development Having just returned from almost three weeks in Italy, this is the first of three articles that looks at the similarities of software development and the artistic masterpieces of the Renaissance.
Jun. 2005 Why I teach Eclipse Eclipse has become a mainstay in my courses and several of my colleague's courses. In this article I discuss the benefits that the open source IDE offers and how I use it in my classes.
May 2005 Software engineering in China: The next big thing China is producing software engineers at an amazing rate. In this article I look at what the Chinese engineers learn. Input for this article cam from a colleague, Prof.Haiqing Liu who spent a year at WPI learning how we teach software engineering.
Apr. 2005 Joyful research: Finding meaningful metrics This article discusses the concept of research, software metrics, and my Tracer project for a metrics workbench. Tracer hasn't gotten much traction, but may be subsumed by the Webfoot project.
Mar. 2005 Books in theory and practice This column was for the special "book" issue of the e-zine. I discuss some of my favorites and the different series of computer science and IT books that the readers might be interested in.
Feb. 2005 How does academic research shape your future? A look at some of the research projects by faculty in WPI's computer science department.
Dec. 2004 How far have we come? A retrospective on the history of software engineering and a look ahead.
Oct. 2004 Agility comes of age A report on the 2004 XP/Agile conference.
Sep. 2004 Navigating with project metrics: Are we there yet? Follows up on the previous column with useful team metrics and how to apply them.
Aug. 2004 Measuring up Discusses how to better estimate your work. Introduces Watts Humphrey's Personal Software Process (PSP) and a tool that does a nice job of helping you gather the data you need.
Jul. 2004 Formally Speaking: How to apply OCL An introduction to the Object Constraint Language (OCL) and how it can be used pragmatically in software development.
Jun. 2004 Test before you code An introduction to test-first programming (TFP).
May 2004 Matching project and process What does it take for a process to be effective? If  you don't consider the project on which it will be applied, and the project-specific needs, the process will fail along with the project.
Mar. 2004 Teaching vs. training A look at the different goals of industrial training compared to the goals of the university / academy.
Feb. 2004 A look at aspect-oriented programming A general overview of AOP and some issues that might arise, especially when considering security and testing.
Jan. 2004 Software development theory and practice in the college curriculum My first column. It provides a description of my general approach to teaching at the time. It describes how I taught Object-Oriented Analysis and Design the first time.
 

Modified:21-Mar-2008
Gary Pollice