Archive

Archive for the ‘What we need’ Category

The big cup problem

December 29th, 2008

It’s a strange thing about a big cup … or any large container for that matter. When you see it empty your immediate response is to fill it up. What can I put in here? There’s still some room in here, how can I use it? When you pull out a cup from your cupboard to take a drink you almost always fill it up.

I’ve found myself lately writing code to solve a problem, looking at the volume of code and being upset over how little of it there is. I think, “Wow, I really wanted to solve a big problem. This code works but I can’t use it because there’s not enough here to match up with the magnitude of the problem!”. It’s like buying expensive software that comes in just a CD case. We shell out big bucks and only get a CD in a jewel case? No, no, no; I want to feel like I got my moneys worth!

How often do we do that? We start with this big cup and try to fill it up. We write more code than necessary,more tables than needed, more infrastructure, more text in the blog post, more, more, more.

The problem isn’t the work or the stuff; it’s the cup. We start with a big cup and try to fill it. Start with a small cup. If it overflows then great! Get a bigger cup.

It’s okay to get stuff done with less. Less code, less effort, fewer hours. Scale it back. Pare it down. Do just the bare essentials and do them exceeding well.

Heres to a new year of smaller cups. Happy new year, all!

What we need, XP

We’ve become complacent

September 11th, 2008

Seems like there are very few developers out there practicing agile techniques. FitNesse is almost unknown in the Delphi community. While DUnit is the accepted standard for unit testing there doesn’t seem to be much talk about using it to to TDD. We have no equivalent to FxCop, NDepend or NCover for Delphi.

In short, we’re way behind the times.

Have we become stagnant? Did we give up? We used to be able to say that using Delphi we could develop products faster and more reliably than others. What happened? I don’t think that’s the case anymore. I don’t think it’s any fault of the language or vendor. I think we got stuck. Are you still writing code the same way? Fixing bugs the same way? Resonding to customer demands the same way?

If you’re still writing tightly coupled code (i.e.: business logic in GUI event handlers) you are behind the times.

If your product doesn’t have an automated test suite you’re behind the times.

If your code isn’t being continuously integrated, built and tested every day you’re behind the times.

If you can’t show how much of your code is covered by your tests you’re behind the times.

If when a defect is reported you can’t create a test case to prove and fix it you’re behind the times.

There are so many useful techniques and practices that will make our lives easier it’s hard to understand why we as a community have not embraced them.

Take this as a call to action. Throw off this systemic complacency. Choose to write better code. Educate yourself. Make your life easier by implementing the basics: Automated acceptance testing, continuous integration, TDD/BDD. The learn and implement all the practices of eXtreme programming.

Go team!

What we need

Why is delphixtreme here?

November 14th, 2006

After attending a recent TDD training class I realized the following: the Delphi community has fallen very far behind the rest of the world. In this class the focus was not so much on how to do TDD as it was how to use .NET and .NET related tools to facilitate TDD work.

We’ve got alot of catching up to do. Here is a list of things we are sorely missing:

  1. Information sharing
  2. FIT server
  3. Continuous integration tools
  4. Mock object framework
  5. Integrated unit testing with the IDE

Information sharing

Many of us in the Delphi community are using Agile methods. As far as I know we don’t currently have a hub for this type for information. Please use the forums here to relate your experiences using Agile practices in Delphi. Also consider writing articles on the subject for posting here.

FIT server

I work in a company in which we have used (and continue to use) Delphi and C#. In this dual personality engineering department not having a FIT server is a huge PR problem for Delphi. I imagine it must be the same for others out there. We need a FIT server.

[UPDATE] Code for a working FIT server has been posted here: FIT Server

Continuous integration tools

As far as I know there is no open source Delphi friendly continuous integration builder. If you have information on how to using CuriseControl and NAnt with Delphi please share it in the forums.

Mock object framework

I was introduced to this concept in the TDD training class I spoke about at the top of this article. We need something like this for Delphi. I’m not sure how it can be done. All I know is this would make our lives easier.

[UPDATE] Pascal-Mock 1.1 released. See more information here: Mock Framework

Integrated unit testing with the IDE

I love DUnit; i think it rocks. The more the Delphi community adopts TDD the more information the DUnit crew will have to improve the framework.

[UPDATE] Content updated on the Unit Testing page

About, What we need