Scrum Story and Task Templates

Monday, December 8th, 2008

I spotted these on the table during an Agile Philly meeting at LiquidHub:

img 0787

Custom templates like this are a great way to make sure all the information you need for a story and task is recorded; I’m looking into having similar custom Post-Its printed for my group.

Time != Productivity

Friday, December 5th, 2008

Final (flash flagged, back right fill, top fill, white balance, retouching)What It Takes To Be A Great Technical Lead reminded me to write this long-brewing post; for a long time I’ve seen a false notion in corporate America that the hours you’re physically present at the office reflects your productivity and value. What should be measured is efficiency: productivity divided by time, where value comes from doing more in fewer hours.

In the industrial age, all those variables were fixed: the assembly line produced 4 cars an hour regardless of who worked on it, and more hours produced more cars at a constant rate. In the information age, production rates vary greatly from task to task and person to person. A rested software developer with the right tools and knowledge can produce 10 times more than an ill-equipped beginner burnt out on overtime. I saw this first hand at Code Camp; watching C# experts code with Reshaper is akin to watching Michael Phelps slice through the pool.

(more…)

Making Sense of Mocks

Monday, October 20th, 2008

Cockatoo squidMock objects are another one of those software concepts that are interesting but useless until you see how they can make life easier. A few of the talks at Code Camp helped me turn that corner and see that they’re quite useful for unit testing. Namely, they allow you to unit test a class while mocking its dependencies, which frees you to focus on the class being tested instead of dealing with the overhead of a real database or web service.

For an initial hands-on experience, I refactored some unit tests I wrote last week for a business class that called a web service. All that really needed to be tested was the handling of various data and exceptions from the web service, which were one-liners once I figured out the syntax of Moq. Writing tests this way also exposed some areas where code was overly coupled; my business class was doing a lot to manage the external service.

The tests are now quicker, the code feels a bit more solid, and I’ve got at least a foothold in understanding mocks for testing and their impact on software architecture.

Pair Programming

Friday, October 17th, 2008

Cute coupleI’ve been doing a bit of pair programming recently, and getting a different perspective from it. For one, it is nice to take a break from the usual solitary keyboard banging. Having two people makes bug hunting a little easier, and forces you to really think about what you’re doing - and why - so that you can explain it to someone else.

It’s also an interesting study in personal efficiency and style; I’ve been able to share a few time-sharing shortcuts and preached a bit of test-driven development by example. I’ve learned a bit, too,  finding some better ways to rework code I previously wrote.

Code Camp

Thursday, October 16th, 2008

Camp roadI went to my first code camp with Philly.NET this weekend, and was impressed with the variety of speakers and overall attendance. For as many great online resources as there are today, sometimes it’s much more effective to see new technologies and methods explained in person.

The quality and polish of the presentations varied, but were overall pretty good. Being a code camp, most quickly moved from slides to live code, writing and debugging on the fly while taking questions from the audience. As always, it was enlightening to see how other people write software, both in terms of style and the tools they choose to write better code faster.

(more…)

Scrum Isn’t Easy

Wednesday, October 15th, 2008

TreeThe most recent AgilePhilly talk was on scrum adoption, and the ensuing discussion showed that it’s not easy for anyone to implement it fully. I’ve seen top-down mandates and looser directives, but the real driver seems to come down to the culture of the team.

Where people are used to processes and metrics, it’s just another system to adopt. Where they’re not, it tends to be a just-in-time approach that only uses what’s needed. That really frustrates me sometimes (if you say you’re going to do something, you should do it right!), but it seems pretty common for the transition to come in smaller steps. And to look at it from an agile perspective, there is some value to only building what you need, be it software or process.

Another interesting idea that came up was having scrum masters with program management backgrounds actually do quasi pair programming with the team. This would have some interesting benefits; program managers would see why a supposedly simple change takes two days of digging through ugly legacy code, or how test-driven development produces more solid code that’s less costly to fix later.

Bling Stapler

Wednesday, August 27th, 2008

Forget Milton’s Red Swingline; you want the Bling Stapler!

Bling Stapler

Automation

Friday, July 18th, 2008

PistonsI’ve always been a big fan of making the computer do the arduous part of the work so I can concentrate on the more interesting parts. When writing software, that’s generally meant relying on terse or sophisticated languages like Perl and Matlab. I’m currently taking it to the next level, though, by using code-generation tool and frameworks to generate complete code layers with full unit tests.

(more…)

30 Days

Thursday, July 10th, 2008

I enjoy Morgan Spurlock’s work; both Super Size Me and 30 Days provide a fresh, provocative look at modern issues. It got me thinking: how would each of us cope if we had to live a lifestyle opposite to our own for 30 days?

Nice computer!The first step in this thought experiment is figuring out what that personally meaningful opposite is, be it a belief, lifestyle, or position on a certain issue. For me, I think something that shapes my life significantly is the regular use of computers. It’s how I earn a living, communicate with friends and family, and even meet women. How would I fare if unplugged for a month?

(more…)

Unity Press at Enterprise 2.0

Monday, June 16th, 2008

Unity at Enterprise 2.0It’s pretty cool to see one of my former projects, the Unity enterprise social suite, getting plenty of coverage at the Enterprise 2.0 conference. (Naturally, the news came to me through the social grapevine of my del.icio.us network.) I was involved in the first year or so of the project, and it looks like it’s really evolved - this photo by David Terrar gives you a hint.

As noted in the articles, it was a big undertaking with lots of technical challenges. Sharepoint seems a little overemphasized; we also built a handful of custom web applications, feed infrastructure (ATOM as well as RSS), Google Search Appliance integration (one of my contributions), NewsGator Enterprise, and security.

Shawn Dahlen, Mihir Patel, and Matt Becker all in mid-sentanceOf course, the bigger challenge in any enterprise is cultural adoption by employees and management. To that end, deploying enterprise 2.0 takes passionate advocates from project management to grassroots early adopters. The Unity team has carved a solid beachhead there, so it’ll be exciting to see how it continues to grow!