Monday, November 17, 2008

Scrumptuous?

I'm just throwing these links up for my own reference as much as anything else.

This article seems to argue that Agile is failing in many places due to misapplied Scrum:

But because Scrum works in short cycles and doesn't include any engineering practices, it's very easy for teams using Scrum to throw out design. Up-front design doesn't work when you're using short cycles, and Scrum doesn't provide a replacement. Without continuous, incremental design, Scrum teams quickly dig themselves a gigantic hole of technical debt. Two or three years later, I get a call--or one of my colleagues does. "Changes take too long and cost too much!" I hear. "Teach us about test-driven development, or pairing, or acceptance testing!" By that time, fixing the real problems requires paying back a lot of technical debt, and could take years.

...

There are a lot of teams right now failing with Agile. These teams are working in short cycles. The increased planning frequency has given them more control over their work and they're discovering and fixing some problems. They feel good, and they really are seeing more success than they were before.

But they aren't working in shared workspaces or emphasizing high-bandwidth communication. They're don't have on-site customers or work in cross-functional teams. They don't even finish all of their stories by the end of each Sprint, let alone deliver releasable software, and they certainly don't use good engineering practices.

These teams say they're Agile, but they're just planning (and replanning) frequently. Short cycles and the ability to re-plan are the benefit that Agile gives you. It's the reward, not the method. These psuedo-Agile teams are having dessert every night and skipping their vegetables. By leaving out all the other stuff--the stuff that's really Agile--they're setting themselves up for rotten teeth, an oversized waistline, and ultimate failure. They feel good now, but it won't last.

http://jamesshore.com/Blog/The-Decline-and-Fall-of-Agile.html

Bob Martin, on the other hand, appears to disagree.

Scrum is not the problem. Scrum never was the problem. Scrum never will be the problem. The problem, dear craftsmen, is our own laziness.

It makes no sense to blame Scrum for the fact that we don’t write tests and don’t keep our code clean. We can’t blame scrum for technical debt. Technical debt was around long before there was scrum, and it’ll be around long after. No it’s not scrum that’s to blame. The culprits remain the same as they ever were: us.

...

It’s also true that scrum leaves a lot to be desired when it comes to engineering practices. But it is neither the purpose of scrum nor of CSMs to make engineers out of us, or to instill the disciplines of craftsmanship within us. That’s our job!

I think Bob's right. You can do lousy design no matter the method. You can write 'unit tests' that test nothing but accessors, or at best contain one hard-coded standard test case for a particular method. You can even write these useless tests before you write your code. You can plan iteratively, but the reality of deadlines produces a pressure to cut corners.

Craftsmanship requires time. If you simply don't have the time, Scrum or not, you're either going to get a lousy and unsatisfying product with lots of features, or a solid yet unsatisfying product with few features.

Yay!

Sunday, November 9, 2008

Paragraph <p> tags not working in blogger template

For some reason, <p></p> tags weren't working in my blog's style.

I went digging in the template, and located this little gem.

.post-body p {
  line-height: 1.4em;
  /* Fix bug in IE5/Win with italics in posts */
  margin: 0;
  height: 1%;
  overflow: visible;
}

I changed it to this:

.post-body {
  margin:0 0 .75em;
  line-height:1.6em;
}

And voila, paragraph tags actually, well, make a paragraph!

Monday, November 3, 2008

Useful developer tools (some for Visual Studio)

This article discusses ten must-have tools for developers. Many are for .NET and Visual Studio development, and they look pretty cool: 

  • NUnit to write unit tests
  • NDoc to create code documentation
  • NAnt to build your solutions
  • CodeSmith to generate code
  • FxCop to police your code
  • Snippet Compiler to compile small bits of code
  • Two different switcher tools, the ASP.NET Version Switcher and the Visual Studio .NET Project Converter
  • Regulator to build regular expressions
  • .NET Reflector to examine assemblies 
  • Saturday, October 25, 2008

    HP Credential Manager doesn't recognize Authentec Fingerprint Reader (AES2501A)

    I encountered this problem, presumably after a driver update to the AuthenTec Fingerprint Reader. This problem was seen under Windows Vista, although I have seen XP users on the forums complaining of a similar issue. I have managed to fix it on my machine.

    [This isn't, as far as I can tell, a Microsoft problem. I think that it is HP's [edit: AuthenTec's] mistake. There appears to be a driver incompatibility between the Credential Manager and AuthenTec's fingerprint reader.]

    Symptoms

    • HP Credential Manager version 2.1.0.844.9 stopped 'seeing' the fingerprint reader.
    • The "Register Credentials" wizard did not have the fingerprint reader as one of the options.
    • Under the Credentials tab under Multifactor Authentication, the Register button was ghosted under the 'Fingerprint Authentication' selection.

    Solution

    The fix was to use version 7.9.0.4 for the fingerprint reader.

    First, download the 7.9.0.4 driver. I found it here:

    http://h10025.www1.hp.com/ewfrf/wc/softwareDownloadIndex?softwareitem=ob-56114-1&lc=en&dlc=en&cc=us&lang=en&os=2100&product=3437802

    Decompress this driver and install it. It will not 'take' yet, since Windows will use the later driver (e.g. 10.x.x.x).

    Under Device Manager->Personal identification-> AuthenTec Inc. AES2501A, right click and select Properties. Look at the driver version. Mine did not work for 10.x.x.x and 9.x.x.x.

    Clicking "Roll Back Driver" only worked for moving from 10.x.x.x to 9.9.x.x.

    To remove the driver, click Uninstall. Select 'Delete the driver software for this device.'

    image

    The device should immediately reappear under the Device Manager. Check the version. If it is still greater than 7.9.0.4, uninstall the device again and delete the driver software again. Repeat until version 7.9.0.4 appears.

    Finally, don't update the driver.

    Saturday, October 18, 2008

    My HTC Touch Cruise!

    Well, I got my PDA back. Everything works on it again, which is nice. HTC actually honoured the warranty too.

    There is some software that I would like to install on it:

    1) HTC has released a ROM to upgrade to Windows Mobile 6.1:

    http://www.htc.com/www/SupportDownload.aspx?p_id=59&cat=2&dl_id=113

    2) The capable folks over at xdadevelopers have released a 3D driver in light of HTC's lack thereof:

    The CAB is available here: http://forum.xda-developers.com/showthread.php?t=430741

    See also: http://forum.xda-developers.com/showthread.php?t=426314

    They are now working on 2D acceleration.

    3) Manilla2D - Or HTC TouchFlo 3D for the HTC Touch Cruise - has been released:

    http://forum.xda-developers.com/showthread.php?t=425694

    The CAB is available from this thread:

    http://forum.xda-developers.com/showpost.php?p=2761662&postcount=3885

    4) PointUI Home: Pretty slick, quite useful: http://www.pointui.com/

    They are releasing a new version in free/paid editions in version 2.0. The paid edition is probably going to be awesome, given the quality of version 1.5.