Archive for November, 2006

Synching calendars with Blackberry

November 8th, 2006
[ Geek ]

I should have known better than to get too excited about this until I tried it. Unfortunately all I’ve been able to get is errors.

Phone switch

November 8th, 2006
[ Geek ]

I made the switch yesterday to Rogers Home Phone. It gets installed next week.

The biggest reason to switch for me is simple, to save money. For the first year, $30 a month gets us unlimited calling in North America. I now have four services with Rogers and they offer you 15% off them all if you have four. That works out to more than $30 so this is almost a freebie for us.

Now the questions remains, is the service any good?

Engaging Everyone

November 7th, 2006
[ Software Development ]

Try this if you want to scare the pants off the average product manager at the average software company. Tell them you’re implementing 20% projects.

“Google requires engineers to spend a day a week on projects that interest them, unrelated to their day jobs”

Disclaimer: I know nothing of Google. I’ve never worked, visited, or otherwise been a part of the monster. All I know is bits I’ve read in the press so this is all just my take and nothing more.

Gmail began as a 20% project. Developers love to tinker with technology, it’s why they’re good at building software and this idea plays into that. Whether you admit it or not, your developers are not spending 95%, 90%, or even 80% of their time working directly on your companies deliverable software. They’re also working on projects that interest them. Endorsing this, and bringing it out in the open, allows you to tap into the knowledge they acquire in an open and meaningful way.

Turnover within software development often comes down to sheer boredom. Developers tire of the same old code base, the same old approach to the same old problems. Jumping ship, and moving to a new organization offers the excitement of new challenges, fresh ideas, and new processes.

On the other side, when you have new people join, they bring with them new ways of approaching problems, new ideas on existing processes, etc. My take, 20% projects reduces turnover and training costs while increasing overall productivity.

Truly excited, passionate developer says: “I’ve got a great idea, what if we built a foobler into our product?”

Guy in charge of his ‘hours’: “Sounds interesting. We’ll need to build a business case to demonstrate it’s ROI”

Truly excited passionate developer heads back to his desk and continues down the slope to becoming bored apathetic code jockey. After a few more exchanges like that one, no one will hear his ideas any longer. He’ll learn the real lesson, his ideas aren’t needed.

Here’s the same guy with 20% projects in place, talking to 3 other developers: “Hey, do you guys have a 20% project you’re currently working on? I want to build a foobler into our product. We could build a prototype as a 20% project and start using it internally.”

You now have excited, passionate developer taking on roles like salesman, project manager, team lead, consensus builder, support rep, etc. They’ve been given a medium to spread their passion and excitement virally throughout the organization. They have the power to act on their passions and take real action. They’re building community, they’re thinking outside the role of code implementer, they’re engaged.

“Toyota does a great job of engaging their employees. Toyota employees are required to submit two suggestions per month that they can implement themselves or with a teammate. As a result, Toyota receives about 1.5 million employee suggestions for improvement each year. More impressively, 80% of these actually get implemented! Even though many of Toyota’s employees perform repetitive manufacturing jobs, this approach fully engages employees in improving their work processes.”

20% projects are meant to facilitate the growth of your individual’s, allowing them to be creative and use their imaginations. They can actively take on new roles, make mistakes, learn by doing, take on responsibility, feel in control and capable of contributing.

Quality people quit companies when they know they lack the power to change things. 20% projects addresses that head-on. While it’s great to end up with a product like GMail, in my opinion any actual products that come out of something like this is just gravy.

People are most productive and work best when they enjoy what they’re doing and most importantly have a sense of ownership. You can ask people to be leaders, take responsibility, innovate, etc until you’re purple in the face. People learn through action not orders or lessons. 20% projects are a stepping stone to 100% projects. It allows people to enjoy their work and learn that it isn’t as important what you do as how you do it. In the beginning they may pine to work on their 20% projects but over time their passion will bleed over and infect all of their projects. If you’re lucky, in time, you’ll be unable to distinguish when people are working on 20% projects or not.

Visual Studio in your code base

November 4th, 2006
[ Geek ]

I’ve spent significant chunks of time in both Microsoft(MS) and non-Microsoft development worlds. With recently moving back to the MS world, the differences seem to be highlighted to me in stark contrast. One issue I feel I’m becoming a broken record on is MS’s approach of tying code bases to the development tool(IDE), specifically their Visual Studio tool.

What I’m referring to here is MS’s solution and project files. They are part of your code base as most projects put them under source control. If you want to move to a new version of the IDE, say VS 2005, then you must migrate your existing files to a new version. At that point, developers using VS 2003 can’t open or use the projects and solution files and must upgrade. Can you run a MS project without being tied to the MS tools? Of course but it’s a lot of work and you’ll generally irritate hardcore MS guys and are left out of some major features of the toolset.

The same issue exists with the .NET framework itself. If you want to move your code base to using 2.x of the framework then you need a new IDE, VS 2005.

So what’s the big deal? To most people entrenched in MS development, nothing. To non-MS people, this can be a big issue and surprises them. They’re used to having the freedom to use any IDE they like or maybe using several depending on what they’re working on. On every non-MS project I’ve worked on, the notion of putting anything related to a development tool into the code base is considered taboo and you do your best to avoid.

Every other technology framework I’ve worked on has little to no dependency on specific development tools or IDE’s. A new version of Java is released, you get the new version of java and it’s compilers and you’re good. It’s been a while since I’ve worked on a Java project but I’ve never had to upgrade Eclipse or VI when a new version of Java is released.

You want my conspiracy theory, or maybe this is just plain obvious economics? MS makes money selling Visual Studio not the .NET framework. Having these hard connections sells IDE’s. You want to move your code base from .NET 1.x to 2.x? Go for it, it’s “free” except of course having to upgrade every developer’s IDE.

My jaded biased view is that I seriously doubt this has anything to do with technology and is all about selling upgrades. I’m not complaining, just talking out loud.