jump to navigation

It Takes a Community to Raise Great Software July 2, 2007

Posted by Ian Clatworthy in Bazaar, Usability.
4 comments

Last week, I outlined the criteria I felt were most important in Version Control software and focused on Adaptability. This week, I want to focus on #3 on that list – Usability. What aspects of usability really matter? How can we maximize the chances of building great software that users will love to use? These are important questions relevant to most software teams in my opinion.

Many teams makes the mistake of thinking that usability is primarily about ease of use. Other teams make fast performance their main focus and make compromises accordingly that hurt overall usability. Both ease of use and fast performance are important but the real key to usability is task efficiency.

In the end, users simply want to get things done. Ease of use is important because it lowers the time required to learn software. Easy to use software also assists users complete infrequent tasks (which can be most tasks for casual users). Performance is important because time is a precious commodity in our busy lives and every few minutes – even seconds – count, particularly for power users. However, focusing on these and forgetting task efficiency is a massive mistake, one so large that it almost cost the IT industry its credibility in the business world …

(more…)

Version Control: The Future is Adaptive June 21, 2007

Posted by Ian Clatworthy in Bazaar, Collaboration, Open Source.
23 comments

The Version Control space is undergoing a renaissance right now thanks to the increasing popularity of Distributed Version Control Systems (DVCS) such as Arch, Bazaar, DARCS, Git, Mercurial, Monotone and SVK. Many really smart people believe these systems have the potential to dramatically change how software is built and I agree with them! But which ones actually will and why? I think the answer to that lies in a closer examination of the criteria teams use to adopt collaboration tools.

Beyond market acceptance, there are 6 main criteria I consider when evaluating collaboration tools:

  1. Reliability
  2. Adaptability
  3. Usability
  4. Extensibility
  5. Integration
  6. Administration (including Total Cost of Ownership)

The order given above is the one I use for version control tools – different collaboration tool categories deserve different orders. Every team is different so the criteria they consider may not be identical, but the ones above are those I’d expect every team to include in their evaluations.

While few people would be surprised to see Reliability at the top, few systems do a really good job of delivering the features that implies, so I plan to return to Reliability in another post. Today though, I want to explain why I think Adaptability is #2, even if that makes me “dumb and stupid” in the eyes of one of my heroes. 😦

If you haven’t seen it already, I recommend watching the Google video of Linus Torvalds talk about Git. He makes a lot of excellent points about the advantages of Distributed VCS. Unfortunately in my mind, he also suggests that anyone using Central VCS tools, particularly CVS and Subversion, is dumb and stupid. I strongly disagree! The future of version control is neither Central nor Distributed – it’s Adaptive. It’s all comes down to the numbers …

(more…)

M.E.T.A. Career Development June 15, 2007

Posted by Ian Clatworthy in Management, Software Engineering.
4 comments

The most important thing every good engineering manager does is find and employ the right people. The second most important thing he or she does is develop them. It sounds so obvious and simple! In reality though, developing the careers of technical people well is one of the biggest challenges every IT company faces. Whether you’re responsible for managing technical people or simply interested in actively driving your own career, it helps a lot to have a good framework. And the name I’m giving mine is M.E.T.A. – Management, Engineering, Technology and Applications.

Have you ever wondered why open source teams often produce software faster than commercial teams? There are numerous reasons but more M.E.T.A. people is part of the answer. Agile methodologies work well for much the same reason: every team member is encouraged to take an interest and role in planning, tuning processes and using technology to deliver value to users. Having people that can see and balance all these aspects is a truly major win. Products get out the door sooner and quality, in terms of fitness for purpose, is often better as well.

Why is this so? As explained previously, software engineering is ultimately a communications challenge. As a consequence, a bunch of multi-skilled people all on similar wavelengths will win every time over a bunch of specialists each focused on just their part of the problem. Collectively, M.E.T.A represents the 4 pillars of software engineering success. It therefore represents the 4 dimensions every engineering manager needs to be thinking about when developing their staff.

So what does the M.E.T.A. model look like in more detail and how do the pillars interact?

(more…)

Collaboration Redefined June 8, 2007

Posted by Ian Clatworthy in Bazaar, Collaboration.
add a comment

What’s the secret to developing and releasing great software that people love to use? That’s a question I’ve been fascinated by now for almost 25 years. I don’t pretend to have the answer but I do have some clear opinions after all that time on many of the necessary ingredients: clear leadership, motivated people, effective processes, great technology and tools.

If those things interest you as much as they do me, then there is no more exciting place in the world to be working right now than the open source community and in particular my employer for 3 months, Canonical. Canonical are best known as being the commercial sponsor of Ubuntu, the Linux distribution that could. But Canonical is exciting for reasons far bigger than Ubuntu …

(more…)