A UML is a Unified Modeling Language that software developers use to basically draw out the way a piece of software is going to work for their clients. There are other industry suggested paperwork that comes with it like responsabilities and details about the project, but the overall visual representation of the program comes from the UML during the development phase. If you’ve ever worked at a large corporation that is getting ready to launch a new internal program through their IT section that will hopefully make your life a whole lot easier or at least modernize the way you run your business and was disapointed by how many problems it had or was angry at how the company in one fowl swoop changed the way you did business without ever telling you ahead of time, then you’ve probably suffered consequences of the UML Divide.
What I mean by the UML divide is that usually at least in large corporations, the people responsable for telling the developer what the software is going to look like or operate are usually too high in the organizational structure to ever actually use the software. These are the executives or managers that like the idea of having a program developed to do something specific but in many cases don’t bring in the users before developing it. The users are the guys on the ground, the bank tellers, the clerks at the counter, the office secretaries doing data entry or even the expert on the ground who’s responsible for making the business run smoothly. It’s not their fault, in many cases they may try to get suggestions from the people that will be using the program but due to the different levels of managers involved in the process in most companies, the guy below them whom they do ask is so far removed himself from the peons typing away at their keys that he in many cases has no personal stake in the way the program functiosn anyhow.
In most cases features becomes more important than user understanding or usability, I know usability is a very vague word in the software industry but for the purposes of this article I’ll define usability as simply the users ability to pick it up quickly and use it efficiently. When executives are too focused on features they loose site of what the program is designed to do in the first place, in most cases it was paid for and built in order to remove inefficient work routines or habits that could potentially make their employees more productive. In most cases seeking to feed their hunger for more and more features they will go with an Oracle or Microsoft based setup that gives them everything they want and forces their employees to attend endless hours of classes and training seminars in order to simply learn this “new” system. I’ve always said that you need to implement things in your company that will make your employees life easier and help them be quicker at their job, executives should not be afraid to take work off their employees plat if that means that can do more of it and essentially do more in less time in the long run.
What is the solution to fixing the UML Divide? Simply put if you are in a company that is planning on installing or developing a new piece of software internally for your employees, before you pay anyone anything or before you delegate it out to your managers, consider a few things. First what is this actually suppose to do? Don’t be afraid to skip over your middle managers and go right to the guy on the ground floor and see how he works, in many cases software development is left in the hands of the IT guy who is paid to know mostly one thing, IT. So in most cases he has no idea how your other employees function so really embed them or yourself into areas like your customer service desk or your accounting department, etc. Whatever area of your business that this software is suppose to solve and help, go there and work with them for a month or two. Make it a long term commitment for either you or your IT guy to focus on learning their jobs. You may have even done that job as you where going up in the company but over the years things change and you have to be willing to get your hands dirty for your companies sake so that you can really understand the work processes. Relying only on your managers to give you ideas neglects the fact that even they may not be using this system, and as much as you trust them, it will help you in filling in that UML gap better if you give your software developer something more than just a features list for your next software project.