When I first started in software development, we were thrilled to have our software used by thousands of people. A team of developers produced software that could at times only take a year to go to market. We knew what OS our clients would be using and we knew pretty closely what hardware too. There just wasn’t that many options. And, since the money was in corporate software, we knew our clients. Their computers sat under their desks, we knew what types of other software they may have on those machines, and everything was a simple keyboard/mouse.
Today’s software, especially that designed for the mobile user, have many ways it can be used. Apple attempted to limit down their mobile environment with set screen sizes and only a few hardware button/features different across devices. Android has many more variables with so many screen sizes, hardware arrangements and skins used by device providers.
With hundreds of thousands of software options for the mobile devices, it is very hard to know when a piece of ‘someone else’s’ software might cause an issue with yours. A popular steaming music app currently makes it so the Apple Updates doesn’t work unless you stop the stream and remove it from the Multi Task Bar of the iPhone/iPad. Yes, that software was certified and available through the app store.
A current application can be used by literally millions of people. That application may have taken just months to design and program by several developers. There is no way those two developers could have tested all the possible ways a user might torture the app. Programmers have to expect a perfect world will be their application’s working area and hope any issue/conflicts can be resolved without causing too much pain to their users.
Those users are not the corporate users either. Yesteryear, if a software issue was found, a request for a fix was put in. There was budgeting, discussions, timed roll-outs and finally a fix. Always mindful that it was cheaper to bundle multiple issues into a single ‘release’. Today, users are folks walking down the street or sitting in a coffee shop. When they find a issue with their mobile app, they can yell quickly and spread the word to many users since they have a social media audience.
What is surprising is that since the channel to yell is available, it is being used more often than not. Rather than discussing an issue, or even a possible issue with the application provider, people go straight to expressing their distaste for a problem they are seeing. Since the developer was not reached out to first, there is little research done up front to see if the problem lies with software or something else. ‘Have you restarted? Have you tried emptying your cache?”
With the larger corporate software, the first thing we looked at where human errors. There was little controls over incorrect information being entered so bad data was most often the problem. Development teams had to research first the issue, the data associated with the issue, and if that was a human miss-entering or the software miss-understanding. Today’s smaller apps are more often having a conflict than data so researching issues is now more about outside program influences than internal data entry.
The quick creation of modern software, and the likelihood of conflicts from many apps living on a single mobile device, means that users will see ‘unusual’ issues.
Last night, I was reminded of the Sherlock Holmes quote: “When you have eliminated the impossible, whatever remains, however improbable, must be the truth.”
I have mentioned here before that I love post my iPhone snapshots up on Instagram. I follow only enough people to be able to follow what they are posting and have a lot of family and worldwide friends as followers. Last night, I had an alert that someone was saying I used one of their images. I quickly responded and they repeated their concern. To try and comfort them, I posted an original of an image, prior to cropping and filters, so they could see I had taken the image.
Their response was that their issue wasn’t with a photo I posted, rather that I was using one of their photos as my profile picture. This struck me as really strange, and I wondered why it didn’t strike them as weird too. Why would a guy who has family followers and isn’t looking to have huge quantities of following numbers use someone else’s picture for my profile? Especially a lady’s image!
I reached out to several people from other areas to see if they can see a different profile image than I installed when I started the account. They only saw my original. No one seemed to be able to reproduce the image she was talking about. Sadly, what appears to be a software issue, was thought to be a human issue. Why do people today question something completely uncharacteristic of a human rather than look at software. Again, with the jump to action rather than stepping back and remembering Sherlock Holmes’ words.
It gets sadder though… she has actually stopped using Instagram due to what she saw. I don’t know her directly other than being referred by another person who I enjoy the images posted by, but still it is really disappointing she left.
Being in software, I knew to reach out to Instagram immediately. I offered my assistance and suggested they talk to their concerned user about her device/software set up. I also encouraged Instagram to verify to her that my profile picture has never been changed. While this would represent a issue with the software, it would make the software users more comfortable that there is nothing evil going on with their social system. It’s part of today’s software development needs… the ability to assure customers that there can be issues with the software but it can be fixed. The level of expected perfection in today’s software is beyond what any small, fast moving team can possibly deliver on. Even in today’s corporate world, with cost cuts, teams are expected to deliver at incredible rates. Users need to remember that and work with the folks that are trying to make their world a better place.