lack of focus kills development
I can’t count the number of systems I have come across that lack a clear focus. If you can’t sum up in a few words what the system is built for then you probably missed the point of building it. “This is the customer maintenance application”. Great, you built an app that checks fluids and performs routine maintenance on customers? If you don’t have a clear vision of what it is that you are building how can you be expected to build it? Developers aren’t entirely to blame for this. Taking the “vision” from the perspective clients can be a daunting task. Most of the time the difficulty is just in sharing a common language and learning enough about each other’s worlds in order to speak somewhat knowledgeably.
There have been few cases where the system or component I was using provided a clear picture of what it was and what the capabilities were. Call it intuitive design or just taking a metaphor and seeing it through; by providing a clearer picture you know how to measure success or failure. If the users and developers need to squint to see what you are trying to accomplish them maybe the system needs a little polish or needs to be readjusted to be more straightforward. As the system gets larger there is a tendency to have the design or functionality spread out into large components and everything becomes less fine-grained. It’s in those projects that someone needs to make sure there is still clarity and purpose so that you are still building a cohesive product and not just a watered down mash-up of different libraries.
Every team needs an eye doctor who can change the lens and say is it clearer or blurrier? If I add this feature can we still see what we are building? Is is still true to its vision or does it dilute it?