I must admit that twitter is actually pretty cool but it’s real promise isn’t as a microblogging website. twitip (the twitter tip site) has a good article about using twitter as a search engine when you’re looking for a response that understands the nuance of your query. Now,admittedly the example described works a bit pat and I’ve had countless conversations where a person’s initial response wasn’t so hot or missed the context of my question. However, there’s a good point here. When it’s in someone’s interest to answer your query then they’ll probably do a better job, faster, than google. Perhaps google should introduce twitter searching into their search engine. Google search could be improved with a bit of ajaxian push.
I’ve been thinking about an interesting (nuts) social experiment to understand the software development process in your organisation. Software team managers are often surrpised as to how the actual work gets done (or doesn’t) in their development team. With 10 plus people on your team it can be extremely difficult to understand the dynamics involved. Who is actually coding? Who has got the great ideas? Who is preempting future problems and who is firefighting current ones. How does a bottleneck get created and what could solve the problem.
As twitter posting is so scriptable I thought it would be cool to create a random project spec which would constitute a two week iteration (including some test time) and hand it over to a dev team. An agile “customer” would be provided to own and clarify the specification on request.
To capture data you could setup some twitter gateways from jabber/xmpp, http proxy, source control and project management tool (trac, mingle, etc.). To provide some privacy you could have some anonymised logins like
The purpose of having a two week project of reasonable complexity is that it would make it difficult for a team member to behave in a completely unnatural way. I.e. they’ll need some thinking time. They’ll need some respite & chat. But not so much that they’ll delay the development schedule (hopefully).
At the end of the iteration the team would review the twittering to try and understand how the software engineering process worked. What worked well? What could be improved?
When I started working as a software developer at the end of the 90s agile was just taking off and the development process felt highly structured. It wasn’t of course and many projects suffered from the false security of weighty yet incorrect up-front documentation. I’ve noticed that as agile has become more prevalent we’re trying to move from analysis/design/implementation blobs into every smaller chunks of development time which can be reasonably documented while not unreasonably impeding the development process. Where once documented functional specifications were passed around, now it’s many smaller and looser tasks which are collected on web based tools like mingle. Email is still important but more informal instant messaging has become an important part of smoothing the dev process. Collleagues share little nuggets of information or query eachother to clarify issues or solve problems. A big question I have is how informal has it become? Are major design decisions now being made mostly using informal IM and retro-documented? What are the pros/cons of this? Part of understanding this is looking at all design and dev interactions under a microscope.