Fear and Loathing
Gonzo blogging from the Annie Leibovitz of the software development world.
-
Scrum Tools Roundup
Working this weekend on some new SharePoint stuff which you’ll see in a few weeks but thought I would pull together a list of tools to help people with Scrum. These are tools that help you plan iterations, keep track of your updates, and generally make life easier for the ScrumMaster or those working on Scrum projects. Not to say a plain old whiteboard with post-it notes or Microsoft Excel won’t do the trick, but these tools take you a little bit farther and help you keep track of things holistically.
Some are open source, others are not so check them out if you’re looking for something extra to add to your Scrum process. Where noted, I’ve given some suggestions about using these tools where I’ve already taken a look at them for you, but please make up your own mind with your own eval if you’re serious about a product (especially one that costs $$$).
Scarab
Java server based artifact tracking system, highly customizable. Distributed under a BSD/Apache style license.Double Chocco Latte
Sounds more like a special at Starbucks but this is a package that provides basic project management capabilties, time tracking on tasks, call tracking, online document storage, statistical reports, and a lot more. PHP based, supports both Apache and IIS, MySQL or SQL Server (and others), web based client. Distributed under the GNU General Public License (GPL).VersionOne
This is a commercial product that provides program, project, and iteration management and fully embraces the Scrum process through requirements planning, release planning, and iteration planning and tracking. Trial version can be downloaded and run locally. Runs under ASP.NET and IIS with a SQL backend. I’ve given VersionOne a test-drive in the past and it’s complete and a good, solid product. The only thing is that it’s got a LOT of options so if you’re looking for something simple, this isn’t the tool.GNATS
GNATS is traditionally a bug tracking tool, but according to Jeff Sutherland it’s Scrum-ready (whatever that means). Licensed under the GNU General Public License (GPL).Select Scope Manager
A commercial web-based package that provides planning capabilties to all aspects of Scrum and XP projects. Evaluation version available to download from site. I’ve worked with some Select products in the past and they’re not bad, but not very customizable.XP Plan-it
This is a hosted solution so you only need download the client and retrieve data from their servers. Commercial package but doesn’t seem to be anywhere you can download anything or even see the product. I would stay away from this one.Iterate
This is an interesting tool and very simple in appearance. It basically provides an electronic version of story cards and does some tracking (like your velocity). It’s simple but maybe too simple and personally I felt the interface seemed like an old VB app that someone threw together. Still, I think it works.TWiki XP Tracker Plugin
Here’s a bit of a switch and not a stand-alone tool but a plugin for a wiki system (TWiki). It provides custom templates and helps you track information on XP projects. While not really Scrum related, it does let you track stories and releases so you might have to modify it in order to fully use it for Scrum (Scrum != XP). TWiki is released under the GPL and is Perl based (blech) so as long as you can run Perl you can run TWiki.XPCGI
This is an open source Perl based system built for Linux and Solaris running Apache 1.3 or higher. They claim it will work on other platforms, but YMMV.XPWeb
Another web based project that’s distributed under the GNU General Public License (GPL). Uses PHP and MySQL so running under Linux, Windows, or Mac should be fine. The demo doesn’t render under IE7 so I couldn’t check it out for you.XPlanner
Probably the grand-daddy of the open source projects of this type, XPlanner is distributed under the GNU Library or Lesser General Public License (LGPL) and free. Requires Apace Tomcat to run so expect to spend a little time setting this up on Windows (but it does run as I’ve done it). Lots of options, pretty stable, respects Scrum and XP and how they work, and very simple to use. Actively being worked on and many open source projects use it for their own planning (Hibernate, JUnit, Log4J, Struts, etc.) so updates are pretty frequent.ScrumWorks
A professional looking product that touts features to support all aspects of Scrum. Support single or multiple teams working on the same or different projects. Client based but has a Web Client as well for some members of the team (say your PO that doesn’t need to get down and dirty with Sprint Backlog Items). Requires a trial license but you can get a copy for free just by requesting it. Nice piece of software that is backed by support forums, a wiki, and an API for extending it’s capabilities.ProjectCards
An interesting project that offers the ability to cover all aspects of Scrum (and then some). Very customizable down to custom fields you can display and use in reports. Client/Server based but features a plug-in for Eclipse if you have it in your environment. Guest accounts are unlimited and free (so POs and non-core team members can just use it to view the status of a Sprint). Downloadable trial but the full version will set you back some Scrum bucks.TargetProcess
I really like this tool, but maybe because it’s .NET web-based. It’s simple to use and setup and cost-effective for teams. While it doesn’t feature as many screens as other products, what it does supports Scrum and Agile projects with simple inputs and direct reports and charts. Nothing fancy but then neither is Scrum. Free trial avaiable and demo available online and you can download a 1–user pack completely fully featured and free (but with no support) so it’s great if you’re doing little one-man projects and you just want something to keep track of your progress and work. Supports SQL Server and MySQL but requires IIS and ASP.NET so it’s Windows only.ExtremePlanner
Lots of features for this commercial package, but not a lot of customization available so you can’t completely tailor it to your process. Requires Windows, Linux, or MacOSX platforms to run on (with Java 1.4.2 or higher and Apache Tomcat 4.1 or higher) or you can let them host your projects for you (for a fee of course). Simple interface makes it easy to enter information and covers all the aspects of Scrum planning including test case tracking and typical burndown charts.Rally
Enteprise level hosted project solution. Tons of features and lots of customization available (even for an online hosted system). Met these guys in Calgary during Agile World a couple of years ago and back then the product was impressive, so I can only imagine what they’ve improved on. Free demo online to check out and setup a project to see if it works for you.Scrum for Team System
Saving my personal fav til last. We’re using this on a few projects now and it rocks. An add-in guidance package for Microsoft Team System, it fully covers Scrum and lets you get work done fast. No customizable available but it works without it. Co-developed with Ken Schwaber so it reflects how Scrum needs to be done. Let’s users create their own views but comes with a dozen or so that are quite sufficient. Supports single team or multiple team projects and is currently being updated to version 2.0 where it’ll have more flexibility. If you have Team System in place and are struggling with the MSF for Agile package then take a look at this, you won’t be disappointed.Bottom Line
If you’re a one-man shop, I suggest you check out TargetProcess as it can be setup in a few minutes on a server or your own development desktop. If you already have Team System in-place, take a look at Scrum for Team System. If you have nothing but could run say Tomcat, then XPlanner might be the way to go as it’s simple but works well. Give a couple a test drive and see what’s best for you. -
Nuke 'em if they can't take a joke
Go get this:
Then meet me on the global battlefield (although I won’t be playing North Korea).
Matthew Broderick eat yer heart out.
-
Time is fleeting, madness takes its toll
We wrapped up taping the latest episode of Plumbers @ Work, our Canadian developer podcast that I do with John Bristowe and James Kovacs, on Wednesday. At the taping after bitching about how long it’s taking for the shows to get online, I was informed that our previous episode had made it up to the site (I’m always the last to know). As John is making up for the lapses we’ve had in the past by being the crazy midnight podcast editor that he is, Wednesdays episode has been cut and bagged and is now online as well. Thanks John!
Enjoy!
-
How to Shoot Yourself in the Foot using Any Microsoft Product or Technology
This guide is offered as a public service announcement to help you wade through the myriad of products and technologies made by Microsoft for those in this dilemma.
MS-DOS
You shoot yourself in the foot.Notepad
You shoot yourself in the foot because there are no options to do anything else.Microsoft Help
You try to shoot only to discover your gun doesn’t work. After searching for the topic the answer that’s given is “Have you tried turning it off and back on again?”.Excel
You can create a complex formula to calculate trajectory, angle, and bullet speed only to find out that you’ve created a circular reference.Powerpoint
You put together a presentation about how you’re going to shoot yourself in the foot but can’t click on the trigger to start the slideshow because it’s too small.Word
The spel chek on amunition prevents you frum pulling the triger.FrontPage
You try to shoot yourself in the foot but realize that FrontPage has completed reformatted the gun and removed the bullets.Access
You fill the gun with too many bullets and find that this action has caused the gun to become corrupted.Project
As you try to shoot yourself in the foot your gun re-levels its resources and allocates the bullets for another user.Outlook
You send yourself an email with an attachment on how to shoot youself in the foot only to find Outlook blocked access to the following potentially unsafe attachments: ShootFoot.exe.Microsoft Bob
You can’t find your the gun from all the papers stacked up on the desk and the dog keeps barking at you.Clippy
You ask Clippy how to shoot yourself in the foot but he offers to write a letter about the pros and cons of gun control for you instead.SQL Server
SELECT [Bullets] FROM [Gun] LEFT JOIN [Foot] ON [Leg] WHERE [Gun].[Bullets] > 0Windows XP
You’ve tried to shoot yourself in the foot too many times and changed out the bullets twice so Windows prevents you from continuing and shuts down.Windows ME
You decide to not even bother trying because it just isn’t worth it and wish you were in a better place.Windows Vista
You try to shoot yourself in the foot, but it looks too darn pretty. Then your foot explodes.Visual Studio Team System
As you try to shoot yourself in the foot the compiler warns you of too many code violations and that the connection to the Team Server is down and doesn’t allow you to pull the trigger.XBox 360
Your gun overheats and locks up before you have a chance to pull the trigger.SharePoint 2003
You get through 5 steps into the process, but then your foot tells you an error has occured.SharePoint 2007
You try to shoot yourself in the foot but can’t find it because your foot has been security trimmed and you don’t have the right permissions.Internet Explorer
Your gun is incompatible with your bullets and the trigger is disabled because you’re not in the right zone.Feel free to add your own or improve on my pathetic attempt at humour.
-
Getting started with Scrum
Mike Cohn over at Mountain Goat Software has been in the Agile software development river since 1993. He's the author of the most excellent book Agile Estimating and Planning and really knows his stuff.
For those wanting to greenfield Scrum at your organization, he's got an excellent powerpoint slide deck to start from. It talks about what Scrum is and highlights the key things that you can use to show benefit to management. Mike encourages people to download the presentation and run with it, making adjustments as you need to adapt it your environment. The killer thing about this is the presentation is available under the Creative Commons Attribution 2.5 License. This is excellent for the Scrum community as we can go off a base from a respected source. I encourage everyone to join the bandwagon and help promote this by making it work for you. Scrum isn't a silver bullet, but it just plain works. You can grab the slide deck from here. Also available is a French version generously translated by Claude Aubry.
To add some icing on the cake, there's some great pictures of the Scrum process that Mike has made available of the process itself which really sums it up. These are great for decks or just print them out as a poster to hang in your team area to let everyone know the simplicity of the process. You can check out the picture files, also released under the CC license, here.
Watch for the Scrum tatoos coming soon to a blog near you.
-
The "real" browser war
We were finishing up our taping for the latest episode of Plumbers At Work, and the issue of IE7 (just recently released) vs. Firefox came up. The first thing that came out was of course the “browser wars” statement and that it’s still going on. Actually, I have bit of a different take on what the war actually is and who’s winning.
Let’s face it. A web browser is neither rocket nor science. It sends a request to an address via a protocol, chatter goes on back and forth, and the end result is a stream of ASCII character that are rendered in a format. That’s it. Sure, there are ActiveX controls and Flash and JavaScript and all that goo, but really we’re just talking about parsing and displaying here. So there’s really not a heck of a lot you can improve on with that model. I mean, other than following some standard about what an HTML tag looks like (to which I use the term “standard” loosely as nobody can really agree on this), there’s not really a way to build a better mouse trap here. The operations are so very basic in structure and the pattern is the same whether you have a cool looking mammal as your mascot or not.
So what’s the war really about? Market share? Nah. That’s just attrition. Microsoft has a Googolplex (no, not Googleplex) of deployed systems out there and every one of the them ships with this thing called Internet Explorer. It’s the default browser, and other than you, me, and a few thousand of us geek boys (and girls) the average 40 year old virgin who plugs in his latest acquisition from Best Buy doesn't know there are other choices. Certainly when you boot up XP you don’t get a “Would you like to use Internet Explorer as your web browser, or go surfing on the net to find another one?”. I know what my grandpappy would say (assuming I could even get him to use this new-fangled gadget called a computer). “Surf for something I already have? Poppycock.”
The masses out there with their out-of-the-box-stock Dell PC have no clue how to find things on the net, let alone install an application that they download. Yes, there are internet and computer savvy people, and those that use computers in their daily lives (whether they like it or not) but the vast majority just doesn’t know there are choices. Or where to find them. Or how to use them. So you really can’t ask Firefox, Opera, or Bob’s Budget Web Browser to try to take the lions share of these peoples lives with something that isn’t any different on the surface to them. A browser is a browser is a browser. If it ain’t broke, don’t fix it they’ll tell you.
I think the true war (if there is even one) is the functionality the application provides. Like I said, it doesn’t take a computer scientist to write code to stream down a bunch of bytes from a connection and display it in a format most people agree on. What really makes the shell of the application we call a web browser useful is in the extensibility it provides. For guys like us. The geeks. The ones that build things to make other peoples lives better.
I’ve looked at both sides of the coin and Firefox is the clear winner here. Just starting to look at how to build a tool bar button for IE takes you into dozens of registry hives, GUIDs, class IDs, etc. and that’s not even getting to the point where you have to build a COM object and optionally some scripts to make this actually thing do anything. And that’s just a button. Imagine anything more than that? There’s also menu bars, and explorer bars, and custom download managers, and each one of them requires at least this much (if not more) investment in learning. There’s lots of documentation on IE and building extensions so you can start in the MSDN library like here, however it falls short and for the guy who wants to build something useful for someone and it becomes too much of an investment in time. I don’t want to read an entire manual on Plumbing just to stop a dripping tap, but that’s what IE extensions feel like.
Then I took a look at Firefox and how to build their extensions. It was well documented and had a great page to get started here (with a download of the Hello World extension if you just wanted to skip to the good part). I found that to be pretty straight forward and simple. A single page describing what I had to do and an example I could follow and download. IE on the other hand? 12 or so pages of topics, with dozens of links to all kinds of snippets and the documentation overall was less than stellar. For example, to add an entry to the standard context menu there’s a few instructions (again registry changes) but when you read it, it refers to things like scripts and assemblies as if I know where that came from. So where are those and how do I build them (or deploy them, or pass values to them, etc.). Like I said, pretty skimpy. Firefox extensions use standards like JavaScript and CSS and binds it together with a simple text file (a manifest). Einstien said “Everything should be made as simple as possible, but not simpler”. Easy ways that everyone knows about to get things done. Standards good, screwing around in the registry… bad. Some naysayers will claim “Well COM is a standard too you know” and of course those guys could just rattle off COM interfaces in their sleep. Uhhh, yeah. Okay. Grant you, to setup the development environment to write a Firefox extension requires a bit of work. On the IE side, everything is there if you have Visual Studio already installed. So I’ll hand it to IE for that, however this is something that is either a) automated or b) only done once. So really does it matter in the grand scheme of things?
Finally after your built your uber-widget, there’s deployment. Write an MSI and package up COM stuff, write some custom code to create all those registry entries (or perhaps if your installer supports it, add them yourself or run a .reg file) however none of this is very safe and almost any IE add-in I’ve installed required me to reboot the computer. Yeah, you heard me. The computer. The big box that makes things go. Not the browser, but the entire operating system. Has to do with that wonderful “COM” thing that IE needs. If we could build native .NET addins by creating oh, say, a single .NET assembly and xcopy deploy it to a folder that would be a step forward and what I would consider a real improvement to IE. Or even let the user download it and maybe create a bootstrapper to install it for you via the browser. I mean, if we’re going to compare apples to apples here and Firefox to IE, then why can’t IE deploy extensions like Firefox does? I go to the Firefox addon site, see something new like a CSS validator, or an addon that lets me download videos I’m watching in my browser, and I click on “Install Now” and poof, Bob’s yer uncle (okay, sometimes you *do* have to restart the browser). What’s preventing us from doing this in IE with IE extensions?
Oh yeah. COM. Registry access. Goo. Got it.
I look at the Firefox addon site. There are tons-o-addons. True, you might filter out 60 or 70% of them and call them crap but then there’s some real gems there. Useful things that make people productive while browsing web pages, which is all the web browser does. If I can be more productive like being able to snag news clippings or validate my CSS on a page (without having to launch other tools/windows) then more time for me to play Xbox games (or whatever it is you’d rather be doing).
So this is my take on the real browser war. It’s in the extensions and not the snazzy features you might add to the base system. C’mon. Tabbed browsing? If that’s really got you picking one tool over another, you might want to re-evaluate your priorities. I look at the “new” features of IE7. Tabbed browsing; RSS feeds; better performance; blah; blah; blah. Nothing exciting here, move along folks. If IE (Microsoft) built up a community of addons like Firefox has, you’d see a real battle going on. Instead we have an underdog that’s superior in some ways with a lot of potential, and the front runner that is not enabling people to be more productive but rather adding flash and flair to something that really can’t be improved upon, retrieving and rendering content. Communities are not Sea Monkeys and don’t grow up instantly. There’s no Field of Dreams approach you can take here. However if you give them the tools, the can build it for you. Just look at what Firefox Addons site has done for Firefox. True, the browser might be a little leaner than IE (or others) but the sweet spot is the aftermarket and what’s happening right now everyday.
What’s really the golden ticket is the stuff beneath the layers. You know, like an onion. Peel back IE and you get Goo. Peel back Firefox you get a world of possibilities that’s expanding every day.
-
Viewing new SharePoint 2007 sites with IE7
Just a little tip as I finally crossed over to the dark side and installed the latest version of IE7. When you’re viewing a SharePoint 2007 site (WSS or MOSS, doesn’t matter) you’ll get a warning message from IE saying that an ActiveX control is causing problems on the site. This control is named “name.dll” and is the person smart tag that shows presence information. Just add your site to the trusted site list and the error goes away.
The message doesn’t come up in IE6 (unless maybe you have ActiveX controls disabled or some kind of uber-high security setting) so it might be new for those visiting 2007 sites with IE7 (it was for me).
And while I’m on the presence information bandwagon, here’s a couple of blog entries that discuss how to use it in your own Web Parts:
- Adding Presence Information to your Web Apps (Patrick Tisseghem)
- How to add presence/pawn to SharePoint contacts list (mondonovan)
- How to add Presence to your custom web parts (Mark Stokes)
Thanks to Dustin for the tip!
P.S. I’m also taking the plunge on a scratch desktop now and finally trying out Vista. It’ll be a few days until that gets installed as I go back to juggling all the cats I have in the air right now.
-
3 hours of SharePoint goodness
Or as someone in the audience called it, SorePoint (but then, they haven’t done it 2007 style yet).
Last nights presentation to the .NET Calgary User Group went well. We had about 40 or so people come out and get some free pizza and swag and spend 3 hours with me rambling on about SharePoint 2007 (yes I know, there is no product called SharePoint 2007). I gave a brief overview of Microsoft Office SharePoint Server (MOSS) but the focus of the presentation was on Windows SharePoint Service 3.0.
We covered the basics, some architecture changes from 2.0, and got into Web Parts, Content Types, Features, Site Columns, Event Receivers, and touched briefly on Master Pages and various other goodies. The first hour was mostly talking and doing some basic stuff in the UI. The second half was mostly code and writing and deploying new features. I still had two code projects I didn’t get to, so I’ll leave that for a future session. All in all, lots to take in and lots of think about.
I used a few tools during the demo and made reference to a couple of web sites for more information so here’s the links:
- Infotech Canada’s Feature Explorer
- Todd Baginski’s Feature Manager
- A brief introduction to Content Types
- Using a Content Type in a List Definition
There were a lot of great questions and some things I’m following up (like sequence of events when receivers are triggered) as well as a way to enumerate through what receivers are attached to what list/library/feature instances (which might result in a feature of itself). Stay tuned for lots more 2007 goodness in the coming weeks.
Note to self (and anyone else listening). I had to recently rebuild my system (and I was smart enough to Ghost it so I don’t spend another day rebuilding it again, Thanks Jenn!) and of course had to re-install a million programs. I use BlogJet as my tool to post to the site and in setting it up, the current version doesn’t support Community Server correctly. The default location that comes up is “/MetaBlog.ashx” but it should be “/blogs/MetaBlog.ashx” to work. Just something to keep in mind when using BlogJet and Community Server.
-
SharePoint 2007 Developer Demo tonight
Tonight I'm giving a fairly long session (two sessions actually) on SharePoint 2007 development for the .NET Calgary User Group. This is the soup to nuts presentation on SharePoint development. No powerpoints, just code. If you're in Calgary and want to catch it, you can find more information here on the user group site.
As this is a public presentation, I will be wearing pants.
See you there!
-
Bring back Jaimie
There have been a few MVP efforts over the years that I find silly. Various petitions about VB6, mass emails on unit testing, etc. There are few community “rallies” I get behind, but this is one of them.
In the recent MVP cycle (4 of them every year) Jaimie Cansdale was not re-awarded his MVP status (thanks Roy!). Okay, so what? Jaimie is the author of the most useful and popular add-in for Visual Studio, TestDriven.NET. This bothers me. Both as an MVP and a daily user of TestDriven.NET. It's a fantastic tool and it's one of those rare tools that's on my list of "install always and everywhere". I totally disagree with MS on this and think they made a mistake.
They cite that his contributions were not sufficient to re-award him his designation he previously held. The MVP program is about recognition and contribution based on the last years efforts (you don’t get awarded for future work, just what you did in the past). So what happened with Jaimie’s contributions? First, he figured out how to get his free tools to run on the free versions of Visual Studio. This, according to Microsoft, is a violation of the license. They don’t want add-ins to run on their free platform, only the ones they charge for (which I don’t agree with either). Second, he offered up his tools for free but he now offers a commercial version.
This isn’t like another MVP whose award was recently revoked by Microsoft. In that case, he was selling adware in his tools but I’m not sure of all the details. In the case of Jaimie, his commercial version is just that. A commercial version of a tool that you can choose to purchase (in order to support the author). Or not. He’s not holding a gun to anyones head. You decide if you want to support someone. It would be like me setting up a PayPal account for anyone who’s used my software to drop a quarter in the bucket so I can pay for websites and whatnot. It’s the decision of an author to do this kind of thing. Of course a commercial version of a tool takes on additional responsibility like support, but Jaimie was ready for that and that’s what you get when you purchase his tool. Or you just keep using the community edition. Your choice.
The fact that Jaimie figured out how to get free tools running with the free IDE and made it available to everyone, is stellar. While I understand MS took a position that they didn't want people building addins for the express SKUs, I think it's wrong to chastise people for it. If Roland Weiget and his excellent GhostDoc tool had the same exposure that TD.NET did, would he be facing a cease and desist notice from Microsoft?
Microsoft cites that Jaimie voilated the “MVP Code of Conduct”. I’m with Frans on this as I want to ask my lead what the hell this means? While we are bound by NDA to certain things and we’re not allowed to say post source code or confidential files to the general public, I’ve never in my brief 4 years of being an MVP heard of any official (or non-official) “code of conduct”. Maybe I’ve been living in an MVP cave?
It's sad that MS takes this approach with people that make contributions to the community like Jaimie has. Bad decision on Microsofts part and I'm sure this isn't the last we've heard of it.
Update:
Two things. First, I just bought a copy of the Professional edition of TestDriven.NET to support Jaimie. I've been using the free version but for $95 bucks, you can't go wrong. The software works with NUNit *and* VSTS and is a godsend for debugging tests and making it quick and easy for developers to do TDD. Second, I have yet to find any license agreement or statement that you cannot write add-ins for the Express editions of the Visual Studio products. While they don't provide the extensibility dlls for you to write add-ins, I don't see anything that says you're not allowed to write them (as long as you don't redistribute Microsoft dlls which isn't what Jaimie did). So if anyone knows where it explicity states you cannot do this, let me know as I'm curious. This is one of the reason that other people are saying caused Jaimie not to recieve his re-award.
Finally, I may be off in my beliefs. After reading countless other comments on this subject Frans said it best. The MVP award is about contributions to the community you make on your own dime, not necessarily a cool tool or book you've written. However IMHO Jaimies contributions earn him the award, but I'm not Microsoft so it's not my call, just my opinion.