Testing of software systems is hard. Testing of convergent systems is much harder. Every additional device, every additional style of interaction, every additional class or role of users adds a whole extra dimension of tests. Pretty soon you get to a point where a new release of the system is impossible to test with the test team and time available.
Historically, there have been a few kinds of responses to this.
- Deny that the problem is as bad as it seems, stretch the test team by a bit, stretch the test time a bit, work a bunch of overtime, then make testing compromises and ship an essentially untested and probably buggy product.
- Admit the problem, and scale back the product vision so that the product is largely testable, but miss out on potential sales and marketing opportunities.
- Dither and refuse both to to reduce the vision or to ship an untested product, until the market window has long passed and nobody wants the product anyway.
Now it appears that there may be a way around this problem. Dionysios G. Synodinos has written an ineresting article at InfoQ about “crowdsourcing” testing of such applications.
InfoQ: Crowdsourcing JavaScript Integration Testing with Test Swarm.
A cynical view might be that this is little more than a formalisation of the approach of releasing an untested product, calling it a “beta”, and waiting for customers to complain. There is a chance, though, that engaging a wide range of people explicitly as testers and providing them with the information they need to test the system thoroughly might result in a better, cheaper, and (most importantly) scalable answer to this kind of problem.
A good summary from Thoughtworks of the applicability of “lean” techniques to a financially-constrained business.
QTB: Lean Times Require Lean Thinking at Mark Needham.
Information week reports on some figures from ComScore which show huge growth in US mobile access to the web.
Mobile Web Usage Doubles — Cell Phone — InformationWeek.
Anyone creating or managing a web project without considering mobile users is missing something important.
How much television do you watch each day? How much time do you spend using computers, mobile phones, and all the other devices which allow you to be in control?
The traditional broadcast TV business is in decline, even if the TV companies like to pretend that it is not. The passive, one-way, synchronous nature of television is being usurped both by active involvement and communication on one hand, and asynchronous time-shifting on the other.
If I want to feel involved with other people, I don’t need to talk about last night’s TV – I can join in with active interaction on everything from facebook and twitter to simple SMS. If I want to watch a particular program or movie I don’t wait for it to come around on a local channel and re-arrange my life to fit the TV schedules – I get a DVD, grab it from bittorrent, or watch it on youtube.
Paul Graham writes
Now would be a good time to start any company that competes with TV networks. That’s what a lot of Internet startups are, though they may not have had this as an explicit goal. People only have so many leisure hours a day, and TV is premised on such long sessions (unlike Google, which prides itself on sending users on their way quickly) that anything that takes up their time is competing with it. But in addition to such indirect competitors, I think TV companies will increasingly face direct ones.
and
opyright owners tend to focus on the aspect they see of piracy, which is the lost revenue. They therefore think what drives users to do it is the desire to get something for free. But iTunes shows that people will pay for stuff online, if you make it easy. A significant component of piracy is simply that it offers a better user experience.
A neat term for an important but under-mentioned concept.
We are all unique individuals and every situation too – at work, at home, and in the community – is unlike any other; as unique as every snowflake. Yet despite this fundamental truth which has arguably been true for all time, the world seems to be designed for the opposite: sameness.
image by CaptPiper
Diversity is all around us. Everyone has different abilities, preferences, skills, and knowledge, just as everyone has different access to technology and devices. Yet most systems are built on limiting assumptions about users and/or devices. Software designers expect people who use the software will be happy to adapt to the the way the software works. Device manufacturers try to “lock in” customers and prevent them using other devices.
The challenge in a world where a vision of convergence is near enough to reach out and touch, is to celebrate and empower this diversity, allowing every person to interact with each system in whichever way which suits. Even more, though, the real effectiveness comes as this interaction changes over time and mood, and situation.
Breakthrough software solutions, the ones which set the baseline for the future, will be the ones which adapt so well to user preference, history, and context that each interaction is as different as a snowflake.
Read more at The Snowflake Effect: The Future of Mashups and Learning (Wayne Hodgins) 2009 and the associated Word document about the snowflake effect in learning.
Following from my previous post about an agile approach to business, there are a lot of practical things which can be done for almost no cost and which have a very positive impact on the agility of a team.
A recent article from InfoQ looks at some good ways to set up a working environment to get the best from an agile approach.
InfoQ: Workspaces for Effective Agility.
In the world of software development, the hot term is “agile“. Agile is about making what’s really needed, even when things change, to ensure that the business gets the best value for the work put in.
It’s always interesting to see how this approach translates to other types of business. Shane Hastie has recently written an article for InfoQ examining how an agile approach suits the habits of successful restauranteurs.
InfoQ: Achieving Agility Needed for Business Survival.
Recently, Google has contacted site publishers to inform them of a change in the way google ads are targeted. User activity will now be recorded and categorized, and used to select and prioritize which ads are displayed.
The interesting part of the announcement for me is not that Google are doing this, it’s a natural step, but that they seem to be using some sort of fixed ontology to classify ads and characterize users. General wisdom is that this is considerably less flexible than a looser “folksonomy” approach.
Either way, it will be interesting to see how this pans out, and whether Google can manage to grow its already huge advertising income even more.
Read more at Interest-based advertising – AdSense Help.
When planning work, it’s easy to get tangled in detail and lose sight of the real goals of the organization.
A product rarely sells itself. What sells a product is the advantage it brings and the benefits it delivers to the customer. It is the benefit of the product that sells rather than the product itself. What is the advantage of the requirement you are stating, and what is the benefit it will bring the customer?
Marc McNeill has some interesting observations on how to translate this approach to gathering and prioritising requirements for software systems.
Thinking about value in terms of advantage and benefit | dancingmango.