Skip navigation.

Archives

eTraxis 1.19.0 is released.

eTraxis is a web-based bug tracking system written on PHP. Some of the main features are: fully custom templates, advanced filters, LDAP support, email notifications, subscriptions, reminders, flexible permissions management, graphical project metrics, etc. New features integrated in this release: new-749: Guest access for unauthorized users. Bug fixes integrated in this release: bug-759: /src/dbo/filters.php: Variable $id was used before it was defined

Software Craftsmanship 2009 Request For Session Proposals

So I finally got around to putting out the RFP for the - now confirmed - conference on Feb 26th next year. If any of you out there in eyeball land are considering running a session, here's the invitation that went out today.

(Registration will start on Dec 1st, BTW)

----------------------------------------------------------

Dear Software Craftsman,

(Or should that be "craftsperson"?)

No Good Deed

Very often I break a simple rule of consultancy, I fix something I wasn't asked to do. For example, I may be drafted in by a company to bring a project back on track or, sometimes, to teach object technologies (I like this type of work). However, if you are working with a group of people and one of them is incompetent or destructive then that, by definition, is the problem you have to solve first. What this means is that you end up doing a little bit of behaviour changing or some management consulting.

My Unified Theory of Bugs

by Miško Hevery

I think of bugs as being classified into three fundamental kinds of bugs.

  • Logical: Logical bug is the most common and classical "bug." This is your "if"s, "loop"s, and other logic in your code. It is by far the most common kind of bug in an application. (Think: it does the wrong thing)

  • Wiring: Wiring bug is when two different objects are miswired. For example wiring the first-name to the last-name field. It could also mean that the output of one object is not what the input of the next object expects. (Think: Data gets clobbered in process to where it is needed.)

  • Rendering: Rendering bug is when the output (typical some UI or a report) does not look right. The key here is that it takes a human to determine what "right" is. (Think: it "looks" wrong)


NOTE: A word of caution. Some developers think that since they are building UI everything is a rendering bug! A rendering bug would be that the button text overlaps with the button border. If you click the button and the wrong thing happens than it is either because you wired it wrong (wiring problem) or your logic is wrong (a logical bug). Rendering bugs are rare.

Typical Application Distribution (without Testability in Mind)

The first thing to notice about these three bug types is that the probability is not evenly distributed. Not only is the probability not even, but the cost of finding and fixing them is different. (I am sure you know this from experience). My experience from building web-apps tells me that the Logical bugs are by far the most common, followed by wiring and finally rendering bugs.