Thursday, December 23, 2010

Freemind and other mind mappers as a Use Case tool

This is just a quick post to say how effective I find doing use cases in a mind mapping tool. I keep thinking there should be something better or more "professional." I use Freemind, which is both free and open source.

I find mind maps to be effective for creating use cases because I am able to think freely, being unconstrained by format and structure. When your are ready for it the structure and formatting can be added.

I also find that I can easily make links to alternative flows within a use case using node to node hyperlinks. For example, in the main flow I can create an internal jump to another node that represents alternate flow #1 and so on.

Freemind is great because it supports an extensive array of export formats, and since it's free there is no reason that teammates and colleagues can't read your maps.

Here is a screen shot of a use case document which is about 10 minutes old and still a work in progress.

Saturday, September 25, 2010

Watch those names...

I was refactoring this code:

StreamDto dto = iStreamMgr.GetStream();
if( dto.IsNotNull() )
{
...
}

Resharper was underlining the StreamDto declaration telling me to use var. I told resharper to go ahead and make the switch and ended up with this:

var dto = iStreamMgr.GetStream();
if( dto.IsNotNull() )
{
...
}

In my view, this was a big mistake, not because of the refactoring but because it exposed a weakness in my variable naming. When the "StreamDto dto" syntax was there the reader could easily see what type dto was by looking at the declaration. After the refactoring this is hidden and can only be determined by "insider knowledge" or inference.

Recognizing this I immediately changed the code to read as follows:

var streamDto = iStreamMgr.GetStream();
if( streamDto.IsNotNull() )
{
...
}

This may seem a small point but the longer I code the more convinced I am that one of our great short comings as a profession is that we constantly "drop context." If you're going to code better oop code, you need better abstractions, when you have better abstractions, context becomes all important. This often explains why some of the most brilliant code is so hard to understand.

The great programmers include context naturally; for them it flows. Me, I have to work at it.

Saturday, September 18, 2010

A better DOS command prompt

Command Prompt especially useful where you have deep / long filepaths:

prompt $p$_$g

Wednesday, February 10, 2010

Mapping to the past considered helpful...




Thursday, January 14, 2010

Lucky number seven should be taken in context




Outformations in 2009




Don't do me like that




This blog entry was self-written, by me




Every project needs a project logbook




Are you happy learning? Probably not, but you should do it anyway...




Hmmm, that smells nice - not a hint of a conditional in the air...




Please, oh gosh please, help the debugger...




Avoiding the knowledge transfer bottleneck

My friend Steve posted a nice commentary on Avoiding the knowledge transfer bottleneck on the Outformations blog.

Outformations at work...

tweetthisbutton


2009 Outformations Book Project



This slideshow catches the Outformations team and a few friends hard at work. Enjoy.

These pictures are part of a project I'm working on to make a small photo book of our adventures. I'm just waiting on some content and I hope to publish it soon. Watch here for an announcement.

Update: The book was finished. You can view it here.

Customer feedback & ideas captured with Twitter-like interface...

Below is an example which shows the folks from GTDInbox using a service called UserVoice to collect feature request and feedback about there product. The interface is almost Twitter-like in that messages are all very short and the interface is extremely simple. It occurred to me that if you were to create a simple service for collecting this type of info you might be able to use it all over the place.

GTDInbox feedback forum using UserVoice Service

Are we learning anything yet?




Form Does Not Follow Function, They Dance Together




On going faster, aka: "the Steve problem"




Wednesday, January 13, 2010

SSD drive revisited...or "How i swap my 7,200 rpm hard drive with an SSD drive for under $400"




Sketchflow Seems to be Microsoft's Answer to Balsamiq




Welcome to my blog

Hello and welcome.

I have been blogging for a while on the Outformations blog. We mostly talk about dotnet and Agile topics. The experience has been great, but I want more control over the content. It's likely that I'll end up posting a lot of the content on both blogs with the addition of personal opinion posts on this blog.

Please let me know what you like and what you'd like to hear more about in future posts.

Thanks, Scott