Tue, 12 Sep 2006 09:51:31 -0500Finding commonality among classes makes for effective object-oriented programming. Often, programmers express that commonality using an inheritance hierarchy, since that is one of the first concepts taught in object-oriented programming. We're going to go to the other extreme in this chapter to explore the difference between using inheritance and using interfaces. An excerpt from Interface Oriented Design.
Mon, 21 Aug 2006 11:10:42 -0500The key to maintaining a good employment outlook in IT, it seems, is to move out of programming and up into more business-oriented IT positions such as systems analyst, business analyst, project manager, or systems architect. However, a computer programmer can't just decide to become a systems analyst or project manager overnight.
Sun, 23 Jul 2006 07:10:09 -0500In this article the author explores the past and future of Computer Aided Software Engineering (CASE) tools, from the "traditional" structured tools of years long past to today's "third generation" Object Oriented modeling and CASE tools--and beyond into possible futures. Ironically, the author finds that the future lies in the past.
Tue, 04 Jul 2006 03:16:11 -0500At a breakfast seminar here June 6 on "Factors for IT Project Success and Failure," Prof. June Verner of NICTA provided a fascinating mix of surprises and predictables related to her subject topic. The findings came from NICTAâs study of 400 projects in the U.S., Australia, and Chile, using questionnaires and interviews to discuss success and failure factors with practitioners.
Mon, 29 May 2006 08:16:17 -0500When weâre testing any software, we are faced with the tradeoff of cost and benefit of testing. With complex software, the costs of testing can grow faster than the benefits of testing. If we apply techniques like the ones in this article, we can dramatically reduce the cost of testing our software. This is what we mean when we say test smarter, not harder.
Wed, 10 May 2006 03:37:16 -0500Once we realize that we are committed to a future full of testing, it is worth exploring what testing really means. I would assert that there are several flavors of testing, and that all too often when we speak of testing we consider far too few of those flavors. An excerpt from Software Conflict 2.0.
Sun, 30 Apr 2006 09:00:20 -0500A new installment in the developer.* Systems and Software series, exploring the connections between general systems thinking, cybernetics, and software development. Author Don Gray applies systems thinking principles--including "balancing loops," symptomatic and systemic solutions, and "shifting the burden"--to a recurring situation with one of his clients.
Wed, 19 Apr 2006 09:33:31 -0500So what does it mean to be a professional programmer? What does it mean to be a professional anything? Some definitions simply say to be a professional is "to make money from a skill," but true professionals also have a set of qualities often described as "professionalism." In my opinion, these qualities are...
Sat, 01 Apr 2006 10:47:57 -0500In this article I will begin with a discussion of home-grown vs. off-the-shelf persistence solutions, including areas to consider when deciding between the two, and advice for choosing the best off-the-shelf solution to meet your needs. I will also share suggestions and advice from my own experiences with O/R mapping and persistence APIs, with a focus on "best practices."
Sun, 26 Mar 2006 03:58:07 -0500The traditional, problem-oriented view of maintenance says that our chief goal in maintenance should be to reduce costs. I think that's the wrong emphasis. If maintenance is a solution instead of a problem, we can quickly see that what we really want to do is more of it, not less of it. And the emphasis, when we do it, should be on maximizing effectiveness, and not on minimizing cost. An excerpt from Software Conflict 2.0.
Tue, 14 Mar 2006 11:33:03 -0500In a way, we programmers are quite lucky. We get the opportunity to create entire worlds out of nothing but thin air. Our very own worlds, complete with our own laws of physics. We may get those laws wrong of course, but it's still fun.
Sat, 11 Mar 2006 05:11:11 -0500In his new book, acclaimed consultant, teacher, and author Jerry Weinberg introduces his approach to writing called The Fieldstone Method. This is not a book about grammar or style, but about *getting things written*--and cutting yourself some slack in the process. In today's world of blogging and "agile publishing," Weinberg's evolutionary, non-linear method is especially welcome. This excerpt explains how Fieldstoning can break the cycle of writer's block.
Wed, 15 Feb 2006 08:08:09 -0500This article presents a set of general error handling principles and illustrates them in action with a downloadable VB.NET project, including a demonstration program and a reusable .NET exception handling DLL.
Mon, 06 Feb 2006 10:26:48 -0500On the face of it, there should be a great deal of money in the software tools business, but, surprisingly, the money really isnât there for small businesses. This article will show that the ultimate cause of the deficiency is the fact that most of the large development tools are subsidized by the sales of Operating Systems and hardware. These subsidies have the effect of diminishing the profit potential of any pure software development tool vendor and thus remove the incentive to create.
Thu, 12 Jan 2006 08:12:27 -0500Automating repetitive procedures can provide real value to software development projects. In this article, we will explore the value of and barriers to automation and provide some guidance for automating aspects of the development process.
Wed, 09 Nov 2005 09:27:58 -0500It's going to take us awhile to get all the way around the world, but here we are at stop #3, with Scottish software developer Craig Murphy, who shares his experience of software development life in Scotland with interviewer Donna L. Davis.
Sun, 02 Oct 2005 04:36:14 -0500One of the reasons good management is so hard to learn is that much of management takes place behind closed doors. Weâre going to open those doors and allow you to see great management in action.
Tue, 23 Aug 2005 09:51:58 -0500Here we continue the developer.* Systems and Software series, in which we explore the topics of general systems thinking and cybernetics to discover how "systems" concepts can help software professionals in the day-to-day work of creating, deploying, and improving software.
Mon, 22 Aug 2005 10:54:55 -0500Before I became a supervisor, the very notion that someone might be monitoring my Internet usage was not only horrifying, but demoralizing. Didnât they trust me?
Wed, 27 Jul 2005 08:07:27 -0500So whatâs a programmer to do? Short of waiting for MIS managers to become enlightened, not much--except try to work around the problem as best we can.