Home > What we need > We’ve become complacent

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

  1. John
    September 11th, 2008 at 07:55 | #1

    We started XP about three years ago… today we have over 13000 automated tests (DUnit). Continuous builds and testing harness triggered 30 seconds after code submission and complete testing feed back in 4 hours (we are trying for 2.5 hours). One week iterations, story cards, pair programming.

    It takes commitment, but the payback for the company and the development staff is very high. I would never go back to the old waterfall days.

  2. September 11th, 2008 at 08:13 | #2

    @John
    That’s awesome! What were some of your big challenges?

  3. mike p
    September 11th, 2008 at 10:09 | #3

    for the most part, i agree (test cases for everything is more than i can do for my software). you didn’t mention revision control software.

    john: you have an impressive achievement there. what kind of software are you writing/maintaining?

  4. September 11th, 2008 at 20:51 | #4

    Have to admit the best things in Delphi are not free.

    CodeHealer is great just like FxCop, NDepend (Together for Delphi inside the IDE is also capable).

    TestComplete and do more TDD stuffs than DUnit.

    FinalBuilder can help automate your builds, although you may use MSBuild and other free stuffs to setup a basic CI (for Delphi 2007+ only) - I know WANT, but it is inactive now.

    The only thing missing is an NCover alternative for Delphi. Although there are some, I never evaluate any.

    What I believe is that most Delphi developers now intend to upgrade their process to an agile way. But it takes time. According to my old memories, there were more and more sessions on Borland Conferences in the past about agile processes, but now there is no BorCon, or CodeRage.

    Sad :(

  5. Ken Knopfli
    September 12th, 2008 at 01:57 | #5

    Delphi programmers tend to be old experienced hands, have seen it all before, and can see hype for what it is.

    Most of us have years of experience and have developed our own way of working. A young chap here is a big fan of D/NUnit and now we have two people that do nothing but create and maintain unit tests. Uh huh.

    My customers want results and don’t care if I am “behind the times”.

  6. Philippe Watel
    September 12th, 2008 at 02:13 | #6

    I agree with ken
    may be for commercial software but for in house programming they want a feature yesterdays and if there is a slight booboo you can fix it on the spot. I cannot see myself spending 50% of my time writing tests programs. they would have a fit.
    we are not talking about contoling a nuclear plant here, but corporate databases applications.
    These new buzzwords are great academic topics but for real life??? anyways the buzz will have another name next year

  7. anonymous
    September 12th, 2008 at 05:36 | #7

    At work we practice Agile development, we have an engineering testing and validation department, we are required to write test cases and we embarked in the Agile development boat. We still produce bad software filled with bugs.
    Until we change what we do, changing how we do it will not have any effect.
    Delivering good software starts with a good understanding of what needs to be done and good plan on how to get there. Everything else is to sell books and promote the man of the hour.

  8. September 13th, 2008 at 05:16 | #8

    I was reading a comment in reply to this post on DelphiExtreme, by Ken Knopfli, and I quote…

  9. Giel
    September 14th, 2008 at 06:16 | #9

    Discover (http://www.cyamon.com/discover1.htm) does code coverage, it works great for me.

    AQTime can do it as well, but it slows down you app more than Discover. This may not be a problem for you of course.

  10. September 14th, 2008 at 23:24 | #10

    @Lex Y Li

    Guess want is finally active again. I though it was dead, but now Andrew is putting a lot of effort into building the next version.

    See http://want-tool.org/news.asp for details.

  11. John
    September 15th, 2008 at 07:43 | #11

    jdawkins and mike p

    I apologize for the delay…

    The past challenges have been: How do we start? What parts of of Agile should we adapt first? Getting support from all ‘players’.

    The biggest challenge was and continues to be ‘people’. We are a bunch of complacent creatures. That is why I concur with your title. People need to have courage to get out of their comfort zones.

    So the boss or team does not want DUnit tests. TDD on your own pc. Your quality and style will improve. If you have a challenging problem, don’t lone wolf it… ask for someone to ‘pair’ with you. People will notice. The successes will draw support naturally.

    Tools: TortoiseSVN, SVN, Cruise Control, Ruby scripts, Trac, and some minor custom tweaks to make them all work together. Large magnetic white boards, workstation pods (4 pcs per pod)
    PC test farm that is integrated with a dashboard on a TV that displays the status of the tests at all times.

    Keep up the great work with this blog.

  12. September 17th, 2008 at 20:29 | #12

    Thanks John.

  13. Michal
    September 19th, 2008 at 10:17 | #13

    Hi,

    I have published Fit for Delphi port. It is available at http://code.google.com/p/fit4delphi/

  14. September 19th, 2008 at 10:55 | #14

    Thanks Michael,

    We’ve recently moved out fit server implementation do SourceForge. We should talk about consolidating projects.

    Well done, btw.

  15. Michal
    September 19th, 2008 at 23:01 | #15

    I haven’t seen any news about your implementation. We definitely need to talk. My implementation is more flexible as it is not requiring to use always Variants in properties and methods and is calling methods when it is required. I don’t see any unit tests in your version.

    Thanks
    Michal

  16. Jink
    December 3rd, 2008 at 13:30 | #16

    Alas, the ego thrives on distraction, dissatisfaction, and the never ending search for acceptance. It deplores simplicity and clarity. I’m happier to stay “behind the times” and chances are that you will be too. Truly “getting ahead” is rarely more and typically less.

    “Nothing beats a wood stove when it’s a 40 below blizzard and the power poles have dominoed.”

  17. March 26th, 2010 at 02:24 | #17

    Good post..here’s some additional related info.

  18. July 2nd, 2010 at 13:22 | #18

    This is a good or nice information.

  19. July 9th, 2010 at 18:25 | #19

    I don’t see any unit tests in your version.

  20. August 3rd, 2010 at 18:14 | #20

    I appreciate yout report.

  21. August 21st, 2010 at 05:22 | #21

    I found your website perfect for my needs. It contains wonderful and helpful posts. I have read most of them and got a lot from them.

  22. August 23rd, 2010 at 02:49 | #22

    Thanks for those advice i’ll bring them on!

  23. August 23rd, 2010 at 05:42 | #23

    Looking forward to another great blog. Good luck to the author! all the best!

  1. November 30th, 2009 at 02:01 | #1
  2. March 20th, 2010 at 05:20 | #2
  3. April 17th, 2010 at 05:29 | #3
  4. April 17th, 2010 at 05:29 | #4
  5. May 12th, 2010 at 11:05 | #5

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word