Long before I was a software developer I was a user. This may sound like an obvious statement, but I do not consider myself the “typical” developer either. I went back to school late in life after trying several other passions and realizing that creating was really what I was good at. So I became a developer later in life. Originally I thought this was a disadvantage. I thought that I would never gain the experience that someone who had been developing since they were 8 years old would have. They would have years of coding experience on me, but what they would not have is the mindset of an actual users.
I remember back to a couple of my college classes and the professors stating that, “we need to change your brains to think differently”. More logically, or more like a programmer. I would, and so would my wife, agree that my brain has changed since school and even evolves more and more today to think more like a programmer. What I would discover is that I have this interesting insight into the end user. Because I was one for so much longer than these child developers.
As developers we all hear about the concept of “scope creep” or “feature overload”. We want to create great software, something that people will use to solve their problem. But how do we know what to put into the software or what features to include in the app or website we are creating. We probably have some pretty good ideas and as we go along coding it we find other features that would be great to have. A lot of times without even considering if the feature will even be used. In being an end user for quite some time before I became a developer I remember thinking back to software I was considering to user to solve a problem. Often the software had some great things it would do, but most of the time they were features I didn’t really want or need or would even use. Then I would find out that the software did not really do what I wanted it to or that it would be a customization of the product to make it do that.
In my current position with a local publishing company my first exposure to UX was my first week on the job. I was put into UX training that very first week. I had to hit the ground running. I had no idea what UX was, but I figured it would be some good training to start with. As I went through the training I discovered that I knew a lot more about it than I originally gave myself credit for. I was this user long before I became a developer. I would imagine myself as the user. I would as myself, “if I were purchasing this product to solve my problem what would I really want and need it to do?”
UX and User Center design has become the new buzz word in software development and web design. This is good, but it should and can be taken so much farther. It should be part of every aspect of a product or a service development. The rewards are so much greater when a product or service is done right and the customer is stratified with it.
In a recent project for my employer I was creating an app to compliment one of our children’s books. I remember that I was more concerned with how the app would look that what it would function like. I knew for the app to be successful it had to have the professional look that all other apps have. I also knew that it had to function the way a user would expect. This lead the team to do some user testing early on. We would ask the user what they thought it should look like and what would they expect to see next after they “tapped” on a button. This type of testing would lead our discovery in creating the app and how it needed to function. We then moved on to more advanced prototypes and testing these with actual users. Each time I put myself in the place of the user trying to figure out if I would do that same action.
I am not a developer with 10+ years of coding experience and it probably shows in some of my projects. I don’t claim to be even the best developer out there. I do consider myself a different kind of programmer. One who doesn’t specialize in one technology, who embraces change and strives to make the best user experience I can. My past experiences coupled together with the UX training give me a tool box filled with some of the best tools around. I draw on this toolbox to create these apps and sites. I am not a designer, and that too shows in much of my work, but even here I am pushing myself to be in between design and development. I understand the whole left-brain/right-brain thing. But I don’t have to agree with it 100%. I find that my creativity manifests itself in different ways in discovering creative solutions to coding problems. What I am doing is trying to squeeze out just a little bit into graphic design creativity. That is a topic for another post.
In the end I found that using my real world user experience allows me to “see” what the user sees, and make better decisions on functionality and design. I know my experience with coding will only grow and get better. New ways to accomplish things are always being found and posted. But what I originally thought was a hindrance in lack of experience coding because of my late schooling and time in front of the keyboard has turned into one of my biggest assets for me personally and professionally.
It is really fun to see the end product be the vision that the user wanted and expected. I know what I create is something people will really enjoy and in the end use.