I was recently asked the question “What makes a great sandwich?”…
I began to think about the question and list out the various elements of my perfect sandwich:
- Is it the granary bread?
- Or the type of ham used in it?
- Or could it be because the cheese is grated instead of sliced?
- What about the coleslaw?
- Or could it be the way that the sandwich is made (the ham down first, then the cheese, then the coleslaw on top…)?
- Or is it the way the sandwich is cut and presented (triangles over rectangles)?
- Perhaps it could even be the person who made the sandwich for you (a caring parent or partner)?
But then it came to me – a great sandwich doesn’t come from any of the individual elements of the sandwich. But instead, the greatness of the sandwich is an effect of the combination of every element coming together specifically to meet my standards, expectations and satisfaction.
This got me thinking about the various software products that I’ve been working on recently and got me questioning what makes a great product/project for my customers?
Could a great product also be a combination of its elements during production?
- Project management,
- Requirements design,
- Requirements analysis,
- Product design,
- Development processes,
- Testing processes,
- Release management processes,
- Bug management,
- Change management,
- Time management,
- Working space,
- (Plus more…)
Can a product still be great if any of the individual elements within the project fall short of the mark?
I think each of these elements, and the relationship between each element, will have a direct impact of how good the product will be for the customer.
The success should also completely relate to the customer’s expectations and satisfaction and not our own, as we might have a different perspective of the success than the customer.
Of course, many people will have different opinions and measures of what is successful and what the definition of “satisfaction” means, but are the basics there for each product being developed? If any of these areas suffer or are not good enough, then the whole project could suffer and the quality (or “greatness”) of the end product could be jeopardised.
If this is the case, then how do we ensure that our processes are correct throughout the project? Is it possible to test each of the elements of production, much in the same way that we test the product itself?
Or is a good product simply related to the end product (a system that has minimum bugs that the customer received on time and finds useful), and not related to the processes of how we achieve the end product?
As end customers, do we really care about the processes in which the ham, cheese and coleslaw sandwich was made?
What do you think?