All computer systems have edges, edges in space and time. Computer Systems have attractive cores, so that they survive, but out at the edges they have less attractive features. This is part of the organic nature of systems they have a start and an end and they occupy space in a business, they also interweave and overlap the business process that they enable. In any system the edge is a key point of failure, the place where assumptions and assertions tend to fail.
Working the edges requires some good problem, cost and risk analysis skills. Think of this as stress, money and time factors. Ideally these problems are addressed at the leading edge, but it is not possible to address all these issues before they occur. We must address edge issues continuously, in an agile fashion; the edge is a place to look for potential issues.
The leading edge changes it’s profile over time along with the system lifecycle. Early edge events are important as they strongly influence system viability, that’s success or failure, but also core future areas like usability. Usability issues typically present as edge issues, such as interfaces to other systems, but in poorly designed systems will present as a core issue. Design is a leading edge issue, too little design leads to usability problems, over design will slow progress and often lead to rework. There is a sweet spot for leading edge issues, you may not know exactly where it is, but you can head towards it by making informed decisions.
The most common method of creating an edge issue is ignorance, mainly of the ‘it’s not important’ variety, making misguided assumptions because it is easier. This leads to assumptions that a problem is simple, therefore it requires no design thinking. Cost benefit and risk analysis are an important part of design and always should be considered.
A high level design that can be justified by a few simple metrics, not only focuses thought, it aids collaboration. Analyzing the edge quantifies the area of interest with questions like how much, how many and how often? This leads to what does it cost and why do we do this? What are our usability profiles.
Interfaces with other systems are key edges. How is data synchronized, is there a master? Interfaces can fall into disrepair, then they are propped up my human intervention and this becomes a new workflow. People become accustomed to working around edge issues and may sometimes feel that that is how the system works. These issues can be hard to detect and address, but yield large benefits when they are fixed.
This is about getting more value from your software, data and technology, edge cases are a great place to start.