Another metaphor for Technical Debt: Deferred Mainentance

There are a number of blog posts, books, and articles that discuss the idea of “Technical Debt” in a software project. One good (and short) article on the subject is Technical Debt at Martin Fowlers bliki. (He attributes Ward Cunningham with coining the term in 1992, so this is nothing new). I’ve also heard various presentations at conferences and developer group meetings that covered this idea as well, and I find it useful as a way to think about a harmful practice that is prevalant in software development.

Here is my attempt at a description of Technical Debt:

Technical Debt is the accumulation of bad code and design that degrades the quality of a project in such a way that it is harder to maintain, enhance, and support. (That is, the code has become more rigid, fragile, opaque, and so on - which are design smells as presented by Robert Martin in his Agile Principles, Patterns, and Practices books.) Continue reading ‘Another metaphor for Technical Debt: Deferred Mainentance’ »

Mock Objects at XPSD - April 3rd, 2008

Jason Kerney and I are going to once again present our NMock2 Exploratory techniques presentation.   This time at the XPSD meeting on April 3rd.

See their site at XPSD.org to get the details on the group… or just read this which I just copied from their site:

Meeting Information & Location

XP San Diego meets the first Thursday of each month to informally discuss and exchange ideas. We feel we learn best from our peers, the merely curious, active practitioners, as well as experienced consultants, when they share their skills, knowledge, concerns and experiences. We encourage everyone to participate in our monthly forums and learn something new. We meet on the SAIC Corporate Campus from 6 PM to 8 PM; 10260 Campus Point Drive, a.k.a. Building C, in the fifth floor conference room. Please find parking on the street and check in with security in Building C before heading upstairs. See our mailing list (http://groups.yahoo.com/group/xpsandiego/) for more information.

Here is the synopsis of our talk:

“A Little Taste of NMock2 For That Smooth, Relaxing, Unit-Testing Flavor”

We’ll explore how the NMock2 library makes it easy to remove dependencies and test behaviors in unit tests, allowing you to quickly set up tests that confirm your code does what you want it to be doing.

This code-intensive presentation covers the motivation for using Mock Objects, and once we have covered the basics, we’ll show our unbelievably effective technique for using dynamic mock objects as an exploratory discovery tool for introducing characterization tests for “legacy” code (that is, code without sufficient tests as described by Michael Feathers).

NMock2 is a free, open source dynamic mock object library for .NET that can help you isolate the target and test only the localized functionality. This is very easy to do, and you can be up and running in just a few minutes. Mock objects can give you years of trouble-free pleasure that you otherwise miss out on if you don’t come to this presentation.

I hope that you can make it, or to some future meeting of the XPSD.  I always learn a lot at the XPSD meetings - the people that show up are among the best XP/Agile folks in the country. 

 

The Task Board Animation

Task Board SimulationWhen I do my “Quick Introduction To Scrum” presentation  the most popular feature is a little Sprint task board animation that I put together in PowerPoint.  I got the idea from a slide from the ScrumMaster training that Ken Schwaber provides.  My main goal was to try to give a visual “time-spanning” representation of what a Sprint task board ”looks and feels” like over a two week Sprint that is operating in a more or less healthy manner.    If you aren’t doing Scrum, but rather some other Agile methodology,  just replace “Sprint” with “Iteration”, and “Scrum” with “Agile” and you’ll do fine. 

I’ve converted the animation to Flash and added a little running  commentary to cover a few things about how we

Continue reading ‘The Task Board Animation’ »

Speaking at San Diego Dot Net Developers Group

Jason Kerney and I will be making a presentation on the basics of using NMock2 with C# at the San Diego Dot Net Developers Group tonight, Feb 5th, 2008.  The meeting starts as 6:00pm.  They have a new meeting place, so if you haven’t gotten the emails, please check the site for information and directions.  They are now meeting at the AMN buildling in the Del Mar Heights area.  Pizza and soda is being provided by the Eastridge Infotech staffing company.

This is essentially the same presentation from Code Camp, but slightly tuned and tightened up.  We had very good response for this presentation from the code camp crowd.   This talk is mostly code, with just a short introduction of slides to set the stage.

Hope to see you there. 

SoCal Code Camp - Excellent Weekend

The Fullerton Code Camp was a big success, as far as I could tell.  I attended at least 4 or 5 presentations (besides the ones that I as presenting myself) and was impressed with the quality of both the speakers and the content.  Unfortunately I could only attend a few of the dozen or so I wanted to see.  Here are a few short reviews of sessions I was able to see: Continue reading ‘SoCal Code Camp - Excellent Weekend’ »

NMock2 Presentation at Code Camp

NMock2 Presentation at Code Camp

In addition to the other presentations I posted earlier (Speaking at SoCal Rock & Roll Code Camp) , I’ve added one more session for Code Camp.   Jason Kerney and I are pairing up to do a session on using dynamic mock objects with the NMock2 framework, which is something we’ve recently been using quite a bit.  The talk is titled “A Little Taste of NMock2 For That Smooth Unit-Testing Flavor”. 

Mock Objects are a great tool for testing the behavior of your system in a very focused manner. This presentation covers the NMock2 open source dynamic mock object library and shows how you can easily put it to work for you.  Continue reading ‘NMock2 Presentation at Code Camp’ »

NMock2 as a code exploration tool

A co-worker (Jason Kerney) and I have been messing around with NMock2 in C# for a while now, and we’ve put together an introductory presentation on the basics of using NMock2 that we are going to give at the upcoming Code Camp at Cal State Fullerton.  [January 25th & 26th, 2008 - Code Camp is a free conference put on by developers for developers].

This article is not our presentation, but rather a little introduction about using NMock2 for doing exploratations into existing code.

You are probably familiar with using assertions in NUnit tests.  Assertions reveal in what way the object and/or some other collaborating object has changed during an operation by cheking state, and are also used to verify the result returned from an operation. Mock objects, on the other hand, provide a way to test the behaviors of code. That is, mock objects test what the object is or isn’t doing.  Mock objects are often used together with assertions to better pin down the code under test. Continue reading ‘NMock2 as a code exploration tool’ »

Speaking at SoCal Rock & Roll Code Camp

I’m doing 3 talks - maybe more - at the SoCal Rock & Roll Code Camp this year January 27 & 28th, 2008, at the Cal State Fullerton Campus. 

Agile Development Basics  - In this presentation I cover the Agile values and principles, as well as the a little about why we need something like Agile.

A Quick Introduction to Scrum - Here I’ll present the who, what, and how of Scrum.  Scrum is one of the most common methodologies for managing an Agile effort.

Agile Coding Techniques for Legacy Apps - This talk shows various techniques for introducing unit tests and micro tests into an application that has insufficient tests. 

Last year the Code Camp was a lot of fun with a lot of great presentations and get-togethers with fellow developers.  I’m looking forward to seeing everyone again and learning a lot of new, useless stuff.

Waterfall - The Evil Empire

Many of us have worked with a defined process such as “The Waterfall”, and it seems like it should work - but there are numerous shortcomings that can be attributed to following this developemnt approach  and that’s what I’ll explore. Continue reading ‘Waterfall - The Evil Empire’ »

Agile, and other stuff?

Okay.  I guess I am going to have a blog, at least for a while.