Sergio and the sigil

Easy project administration with Unfuddle

Posted by Sergio on 2009-03-08

I don't come out often to sing praises for any product, I'd say I even tend to complain more than anything. That said, sometimes I come across a product that strikes all the right chords.

Recently I started using Unfuddle and ...just Wow! What a delightful experience. I can't say I was exactly surprised because I had heard really good things about it from a few people. Still, it's great to try it and confirm that same impression.

Unfuddle is clearly a product that was built with a lot of love and by people that understand the problem that needs to be solved.

Migrating a project - the Repository

I started moving one of my projects to Unfuddle. I started creating a new project and, with help from their support team, I moved my SVN repository (with the complete log history) into the project's repository.

The repository browser offers all you'd expect from a 1st class product. You can easily navigate the repository tree and go back an forth in the revisions trail. You can see what was changed in each commit, see the file by file diffs, and post notifications whenever a commit happens (great way to trigger your CI process.)

Managing the project

Right now I'm in the process of moving the list of bugs and planned features into the ticketing system. In Unfuddle I can plan milestones and version numbers for my project and associated tickets to them, which will let me see how far the project is from each milestone right in the project's dashboard.

Unfuddle reminds me of Trac, with the important difference that I don't need to go through the pain of getting it up an running and that configuring your project (or as many projects as you want) is much simpler.

One important thing for me in any product like this is the ability to create and maintain documents. This is provided through the Notebooks feature, which allows us to create collections of pages with basic formatting. If you need something much richer, like a diagram, or include an existing Word document, you can attach files to a notebook. A real file repository is probably a feature that could make Unfuddle even better.

Other nice things

I love how Unfuddle allows us to use Markdown or Textile to format pretty much everything that is important, like ticket descriptions and notebook text.

Unfuddle also supports git. I haven't been using git yet, but it's good to know that I'll probably not need to go looking for another service if I choose to migrate to git.

Very important disclaimer

Although I could probably get by with just the free plan in Unfuddle, I received a complimentary subscription to their Compact plan. The only important differences for my use cases would be the number of notebook pages and the ability to attach files.

Video - Uncle Bob Q&A at Chicago ALT.NET

Posted by Sergio on 2009-02-14

After his presentation, Robert stayed a little more answering questions from the audience.

Resharper an OutOfMemory Exceptions

Posted by Sergio on 2009-02-03

My current project has an interesting story of being converted across platforms and programming languages. I hope I can talk about this conversion process some day (it was not manual).

One of the side effects of mass conversions like this is that the final result tends to carry over some weird patterns. These patterns used to make total sense in the previous programming language, but look very unnatural in the new one.

We ended up with some very large classes inside a single namespace that, while work exactly as in the previous language, cause an unusual amount of stress inside Visual Studio, especially with Resharper (version 4.1) installed. Resharper would halt with OutOfMemory exceptions all the time, until I disabled Code Analysis, arguably one of the most important features of that product.

Finally today a coworker pointed me to a fix for that. I'm still getting the exceptions if I turn on solution-wide error analysis, but I think I can live without that.

I haven't had a chance to try the nightly builds of Resharper 4.5. I have been told that those issues may go away.

UPDATE: I installed version 4.5 (build 1169.15) but it didn't help me. The only thing that changed was the layout of the error screen :) But I know my project is a tad extreme and I deserve to be punished for it.

It takes a master to lead an apprentice

Posted by Sergio on 2009-01-21

Last Monday I once again attended the Software Craftsmanship Group meeting where a panel was held on the topic of Apprenticeship. I was expecting to see a discussion about what constitutes apprenticeship and the master-apprentice relationship. Instead, the conversation was mostly around two examples of companies that have apprenticeship programs.

Dave Hoover from Obtiva and Paul Pagel from 8th Light contrasted their approaches. Uncle Bob posted his impressions about the two programs and his own experiences of carrying an apprentice program, so I won't bother you with a similar (but less qualified) report.

I did bring back a few conclusions and questions, though:

  • It's hard to convince someone to take a job as an apprentice when higher-paying (or better titled) jobs are available.
  • Someone that is willing to take such position will inevitably be passionate for the craft and hungry for knowledge. This eventually helps weeding out the inadequate candidates.
  • Mentors need to keep up with the apprentices. Often they'll outgrow your ability to keep them busy and interested.
  • It takes a lot of energy and investment from the company and mentor to properly guide an apprentice into the path to journeyman. When that apprentice leaves the company, I'm afraid the loss is too big and maybe there wasn't enough time to recoup that investment.
  • Both cases presented had not experienced a failure yet, which is good, I guess. But it also leaves me wondering if it really works. Failures can assist validating the successes, the trick is always tweaking the process to keep the failure rate low (but zero is always suspicious.)
  • It seems too easy to have an apprenticeship program deteriorate into just internship — with a fancy name.

I'll post an update with a link to the video of the meeting if that becomes available.

My Apprenticeship Process

Interestingly enough, I had a chance to join an apprenticeship program a long time ago, before I got into software development.

Between high school and college I started a 5-month internship as an Electronics Technician at a local TV station. The official title was intern but it was pretty obvious there was a lot more going on.

By that time I was in my teens, and very passionate about Electronics, probably just as much as I am now about software. At the TV station I had the honor of working with a true master of that profession. My mentor not only knew the ins and outs of professional audio and video equipment, but he also loved to talk about that and teach his hard-earned techniques to us. He was as highly regarded as any professional can be. Still, his purpose in life seemed to be that every technician was as good or better than him.

Even though I learned more in those 5 months than in my 5 years in college, after seeing my mentor at work I could never dare to say I was anything more than an apprentice. The impression that I carry with me to this day is that apprenticeship is a long process. Even if you get promoted after a while, it's hard to say you're no longer an apprentice. The lines between apprentice, journeyman, and master are indeed blurry.

Unfortunately, in my software career I have never had a chance to go through similar process. Instead, like most of us, I was simply thrown in the fire and fought my way out of it. I learned a lot in these situations, but I'm sure I also wasted a lot of time doing the wrong things until I figured out the right ones. A good mentor would have guided me to the right options without depriving me of the discovery and accomplishment sensations.

Hooray for masters and apprentices! Both with tiny egos and great passion. Both seeking continuous improvement.

Uncle Bob talks Agile at Chicago ALT.NET

Posted by Sergio on 2009-01-19

After an unfortunate cancelation of our last meeting because of the weather, February's meeting of the Chicago ALT.NET Group should be a very interesting one.

Robert "Uncle Bob" Martin looks into XP's rearviewmirror, lessons learned, and the current status of Agile development.

XP: After 10 years, why are we still talking about it?

6:00 pm
Pizza and networking time

6:30 pm

It has been 10 years since Extreme Programming broke upon our industry. In that time we have seen the rise of the Agile movement, and the gold rush for Scrum certification. We have seen the concept of testing do a complete reversal in emphasis; and shift away from heavy planning. But what have we learned? Do we really all program in pairs? Do we really all write our tests first? Do Agile projects really fare better than others? Do we have enough data now to separate the truth from the myth? And why, after all this time, does it still dominate our conferences and conversations. Isn't there something new to talk about?

Robert C. Martin has been a software professional since 1970. In the last 35 years, he has worked in various capacities on literally hundreds of software projects. He has authored "landmark" books on Agile Programming, Extreme Programming, UML, Object-Oriented Programming, and C++ Programming. He has published dozens of articles in various trade journals. Today, He is one of the software industry's leading authorities on Agile software development and is a regular speaker at international conferences and trade shows. He is a former editor of the C++ Report and currently writes a monthly Craftsman column for Software Development magazine.

Mr. Martin is the founder, CEO, and president of Object Mentor Incorporated. Object Mentor is a sister company to Object Mentor International. Like OMI, Object Mentor is comprised of highly experienced software professionals who provide process improvement consulting, object-oriented software design consulting , training, and development services to major corporations around the world.

7:45 pm

Let's use the discussion time to go over the group topics that were planned for last meeting, which had to be canceled.

  • What worked well and what didn't in 2008
  • What direction should we take with our group
  • Viability of our group organizing a CodeCamp soon
  • Global ALT.NET participation: as suggested in this message

If you want to help define our meetings format and group actions, then come and help us in this discussion.

UPDATE: The videos of the event are available.