July 2007
Mon Tue Wed Thu Fri Sat Sun
« Jun   Aug »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Month July 2007

Scaling up agile projects

Agile methods don’t scale, if you are embarking on a big serious project you had better adopt a ‘heavyweight’ method. That way you have certainty, control over your resources and an agreed plan. Right? Wrong.

Agile methods promote using small teams because it improves communications. With improved communications the team members are more likely to understand the problem they are being asked to solve and therefore the proposed solution. Also when the project requirements change the team can more easily adjust. But what about large projects? How can small teams can deliver big projects?

The answer? Divide the big project into small independent projects. Nothing too shocking about that. But there is still a question about how to organise the work and structure the project. Earlier in the year I attended Spa 2007 where Dave Thomas outlined one approach.

The objective is to let projects have freedom to create the solutions to specific problems but to coordinate activity between projects. The approach is to structure the work into four phases:

  • Envisioning;
  • Definition;
  • Development and;
  • Release.

Large Scale Projects

Envisioning

The envisioning team is tasked not with capturing requirements but rather with understanding the problem to be solved, defining the solution and finally building an executable prototype. The work is managed with Scrum but because the purpose is to build a prototype that meets the users’ needs the team works very closely with end users developing their solutions iteratively: adding fidelity and refining the design at each iteration.

If appropriate two envisioning teams can run in parallel developing ‘competitive’ ideas to explore different options.

Definition

The Envisioning Team provides a clear definition of what needs to be built; the Definition team designs how to build it. To do this the Definition Team is tasked with structuring the work and defining the initial Product Backlog. The aim is to reduce dependencies: not just between components, but between the overall requirements and the component designs. The work then is structured into a series of discreet teams:

  • Feature teams (user facing services)
  • Component Teams (core reusable components)
  • Release Engineering (continuous integration and QA)

Feature teams can be responsible for no more than defining the unit tests for component sets – or integrating components with service specific code to provide specific functionality and/or glue sets of components together.

The Release Engineering team is responsible for ensuring that all the components and features work and conform to the agree interoperability framework. They therefore take each release and ensure the ‘system’ works, rather than trying to configure the system at the end of the project.

NB Components can be built out of phase with the rest of the project.

Development

The first job for each of the development teams is to review the product backlog to ensure that the project estimates are OK and the scope is understood.

If any product backlog item can’t be delivered or if there are any project dependencies these get escalated to the ‘risk backlog’ – which is owned by the Product Owner. Its the Product Owners responsibility to clear the Risk Backlog and not allow the individual projects to be effected.

Release

Code is packaged, documentation written, marketing etc.

And of course throughout this whole process everything is kept in the code: code, requirements, risks, people, estimates…

Safari for Windows

Matt seems to me to have the answer for why Apple released Safari on Windows:

There is only one reason Apple released Safari for Windows and that is because they were forced to. By making the iPhone development environment web based apps only they had to release Safari for Windows so people could test their applications.”

As Justin Williams points out:

With the announcement of the iPhone SDK being based on Safari, Apple was forced to put Safari on Windows, so they could attract Windows developers to build iPhone applications. By having the barrier to iPhone development as low as, building a Web application, it wouldn’t make sense for Apple to only allow Mac using developers to build those applications.

Safari is a gateway to iPhone development.”

It may also explain why Apple chose to enforced their font rendering instead of using the native Windows sub-pixel approach ClearType.

Facebook: new social network site; same old walled garden

Last year the buzz was around MySpace now its Facebook and before that Friends Reunited and Linkedin. I have to confess that I’ve never really grokked these services – I’ve played around with them a bit – but generally never really got that much out of them. Preferring to stick with email, IM, Flickr, del.icio.us and my blog.

Trends in Facebook, MySpace, Friends Reunited and Linkedin

The problem I’ve always faced with community sites, such as LinkedIn or Facebook, is that I’m never sure I want to maintain yet another online presence. I know that they provide tools to help bootstrap the site with data about your group of friends (importing contacts from your email account etc.) but there’s more to it than that. And in the back of my mind I know that all too soon there will be a new site out there doing more or less the same thing but with a twist that grabs everyone’s attention. And the reason this is a problem is, as Steve Rubel points outs, because they are walled gardens.

Despite the age of openness we live in, Facebook is becoming the world’s largest, and perhaps most successful, walled garden that exists today…

The problem, however, lies in this fact – Facebook gives nothing back to the broader web. A lot of stuff goes in, but nothing comes out. What happens in Facebook, stays in Facebook. As Robert Scoble noted, it’s almost completely invisible to Google. You can share only a limited amount of data on your public page – as he has here. That’s fine for many users, but not all.”

Walled gardens create barriers to getting information in and out of their system. This means that I know that I will need to go to extra effort to seed the site with information about me and my network; maintain duplicate information between different gardens as well as in the wild; and have difficultly getting data out and into something else. Walled gardens will always eventually die because they require that extra bit of effort, both from their community and, more widely, the developer community. As Jason Kottke notes like AOL before them Facebook’s walled garden approach places additional strain on the development community.

What happens when Flickr and LinkedIn and Google and Microsoft and MySpace and YouTube and MetaFilter and Vimeo and Last.fm launch their platforms that you need to develop apps for in some proprietary language that’s different for each platform? That gets expensive, time-consuming, and irritating. It’s difficult enough to develop for OS X, Windows, and Linux simultaneously… imagine if you had 30 different platforms to develop for.”

[what's needed is]…Facebook inside-out, so that instead of custom applications running on a platform in a walled garden, applications run on the internet, out in the open, and people can tie their social network into it if they want, with privacy controls, access levels, and alter-egos galore.”

In other words we already have the platform – its the internet, in its raw, wild, untended form. And rather than trying to build walls around bits of it we should keep our content in the open, in applications such as Flickr, WordPress (other blogging software is also available) and email. But tie it all together into communities with technologies such as OpenID the “open, decentralized, free framework for user-centric digital identity” and Friend of a Friend (a project aimed at creating a Web of machine-readable pages describing people, the links between them and the things they create and do).

Indeed this approach is similar to that adopted in Plaxo 3.0 which now runs as a web service removing all reliance on Outlook. Plaxo now provides a synchronization and brokerage service between applications (e.g. Outlook or Apple’s Address Book) and services (AOL, Google) – your data is no longer within a walled garden but you do have access control over who can access your data.

Facebook is an amazing success – but like all walled gardens will eventually either die or be forced to open its garden gate and let the rest of the internet in (for example, let me replace the Facebook’s status application with Twitter, or Photos with Flickr). And in the meantime I’m happy to stick with my existing online presence.

Follow

Get every new post delivered to your Inbox.

Join 812 other followers