The journey of User Experience in software development

One of the most common problems that I’ve encountered when first analyzing an application is that it is often built up around what people think the customer wants, rather than an analysis of what the customer actually wants – or even more importantly – what the customer needs.

Let’s say there is a software application that you or someone you know interacts with on a daily basis that could really use an update. You have some ideas on what is needed but, as a stakeholder, you’re hesitant to make a large financial investment in a new software application without a full grasp of what is needed.

Start by asking yourself the following questions:

  • Do I understand my users’ needs and current frustrations in their entirety?
  • How often do my users seek assistance when interacting with the application?
  • Is my system built on a strong technical and strategic foundation that will satisfy my long-term goals?
  • How can I validate the usability of my application?

These are only some of the questions that are worth considering before initiating a development process. By bringing UX thinking into the very beginning of the process, it helps bring into focus the real obstacles, and subsequently, the strategic approach to overcome them. At the same time, on the back end, whatever has been designed needs to be built. And how something is built plays a major role in how it works for the end user.

Okay, I get it. User Experience is important. But what does User Experience actually mean?

User Experience encompasses the entire set of affects that is elicited by the interaction between a user and a product, including the degree to which all of our senses are gratified (aesthetic experience), the meanings we attach to the product (experience of meaning), and the feelings and emotions that are elicited (emotional experience). (Hekkert. 2006)

A successful software application is evaluated beyond its functionality. The product’s functionality needs to go hand and hand with a positive user experience, no matter the device or the platform.

So, how can I ensure a positive user experience?

A successful development process would include the presence of User Experience all throughout its lifecycle; from conception, to execution, to implementation.

When a user interacts with an application and the results of the interaction can be described as efficient and painless, then you’ve built a successful usable product.

The development process consists on the following phases:

Planning > Design > Development > Implementation

User Experience takes on an important role, especially during the Planning and Design phases. This is also known as the Discovery phase. Its main purpose is to trim off requirements that don’t help the product, and to ensure that the requirements that remain will ultimately benefit the experience. This is where user analysis, environmental analysis, task analysis, and needs analysis are usually performed, depending on the type of project.

There are many methodologies that are used during a User Experience analysis. My responsibility as a UX Consultant is to implement the best strategic UX approach that will generate the most positive results.

A great way to gather information during a UX analysis is to perform user interviews; specifically stakeholder interviews that will provide a valuable introduction to the current state of the application and the needs of the people they represent within the company. The interviews are usually followed by the creation of Personas, a Concepting stage (User Story Boards, User Journey Maps, User Flow, Taxonomies, to mention some) and a Product Planning stage (Content Audit, Sitemap, use cases, etc.)

These methodologies produce a great amount of information that become a strong foundation during the Development phase, and a guideline throughout the entire lifecycle of a constantly evolving product.

This is how we, UX consultants, are able to generate educated assumptions that are later put under scrutiny by a very meticulous validation process. Eye-tracking tests, Heat mapping, A/B testing, Card Sorting, Usability Tests, are only some of the methodologies we use in order to validate proposed improvements.

The last part of the UX analysis heavy lifting duties in this phase is the Prototyping and Wireframing stage. The success of these artifacts are based on the data that is collected from the validation process. At this point of the analysis, the probabilities for an application to provide a positive experience are looking really good. We now have a strategic approach for the execution, implementation, and maintenance of our application.

These UX artifacts are taken as strategic guidelines by the development team and user interface designers during Development and Implementation to make sure the visual and technical recommendations are present throughout the entire process until the product is put into production and available to the masses.

So, is this when User Experience ends?

A constantly evolving product will require User Experience throughout its entire lifecycle. User Experience ends when the product retires. There is always something new to learn from the user. New technologies are constantly emerging and there is always a new way to interact with an application. A product should be able to go through small iterations of improvement without the need of having to perform serious refactoring every time.

Conclusion

User Experience adds a great value to product development. Contrary to what most people believe, User Experience is more than wireframes and user interface design. It is what ensures an efficient and pleasant experience in a functional application. In internal applications, it may help reduce hours of unnecessary training or promote employee engagement and interaction within the organization. In the long-term, this will convert to savings on unnecessary expenses. For an external audience, it can potentially increase your online traffic and produce an increase in your ROI as a result of a satisfactory user experience. After all, understanding your end-users’ preferences as well the technical requirements for short and long term goals, will give you a technological advantage to improve, expand, and grow as a business much more efficiently.

—-

This article was also written to be featured at cdh.com

HowTo fix: failed rule “Restart computer” when installing MSSQL Server 2014 in Parallels Windows 10

I finally decided to install Parallels in my MacBook Pro. I’ve started working on various .Net + MSSQL projects again so it only made sense to have these tools available in my Mac in addition of having it already setup in my Lenovo ThinkPad W541.

During my MSSQL installation process in Windows 10 in Parallels, I encountered the Global Key error ” Restart computer” – failed. Of course I had already tried restarting my Windows 10 in Parallels, and restarting my entire MacBook computer multiple times, but the error was still there. After searching for a solution online, the only answer that worked for me was to shutdown my Windows 10 from the Command Line using shutdown -r -f -t 0

Have you experienced this issue before? Did you find a different solution to this issue? Share below.

Networking with female engineers!

After a very busy day at work today, I received an email from a friend letting me know I had been featured in MLive today for my participation on the #ILookLikeAnEngineer campaign here in Michigan.

I grew up with parents who told me I could be anything I wanted to be. So I became an Information Systems Engineer. One out of two women in my graduation ceremony. College Board member, representing the body of Information System Engineering students. Valedictorian.

Fast forward to the present, I’m a UX/UI Consultant who loves building web applications and collaborating with talented professionals.

Being a female engineer, I’ve always been a minority and I’ve heard my share of discouraging comments from some people in my field throughout the years, just like most of women in the field. But I’ve also met so many wonderful, talented people in the process who inspired me to move forward and be good at what I do.

This fall, I’m happy to announce that I’ll be co-teaching at the Girls Who Code seminar offered here in Grand Rapids, Michigan to young middle and high school girl students who are interested in computers, programming, and technology in general. I’m very excited to be able to help and encourage young girls into the tech field. Creating a balance in the tech field is only going to make us all stronger. Male and female engineers collaborating with each other and building wonderful things together.

We all have something to offer, let’s put our minds together and build awesome stuff, in my case, web applications.

What I’ve been up to…

It’s been a while. I know…

Life has been a little hectic lately. So much to do, so little time. But I’ve been having fun during the process which is what really matters.

Since my last entry, I got a new job (hence my absence here), I remodeled my basement, I got a new kitten, and started a vegetable garden. I’m sure there was more that happened since, but let’s keep this recap short.

I’ve been considering for a while now the possibility of expanding the topics I blog about here. So far, this website has been a medium of communication for me to talk about all things technology. Even though this has been a great outlet to share about the projects, roadblocks, and solutions I come across while I work in the technology industry, I’d like to expand the horizons and open this blog to topics like Art, Music, Design, Traveling and other things that catch my attention.

I’m sure everyone would agree when I say that technology has become a part of our lives. You don’t need to be a programmer or an engineer for you to interact with an electronic device on a daily basis anymore. Technology is being used in multiple ways to solve our everyday problems as well as a tool of creativity and ingenuity. This is why I consider it relevant to talk about more topics here and to keep ourselves inspired by everyday things and find a way to apply this inspiration into our digital work.

So here’s to a new chapter in this blog’s existence! Let’s get inspired and continue innovating.

P.S. I’m secretly hoping this will help me get to blogging more often than before.

Happy weekend!

Reverting Copy to a Previous Git Commit

Just like almost every morning, today I got up and got setup to continue working on a client’s website only to find that after doing my first $git pull of the day in order to update my local setup, I had pulled an uncompleted commit somebody else in my team had pushed a few days ago.

So, what do you do when you need to go back to your previous commit (thankfully, I had already committed my changes locally)? Here are a couple of things you could do:

– Revert working copy to most recent commit, ignoring any changes:

git reset --hard HEAD

– Or, reverting working copy to an older commit:

Reset index to former commit. Replace ‘XXXXX’ with your commit code

git reset XXXXX

Moves pointer back to previous HEAD

git reset --soft HEAD@{1}
git commit -m "Revert to XXXXX"

Updates working copy to reflect the new commit
git reset --hard

Happy repo!

HowTo: Pull Specific Commit from Bitbucket with Git

The advantages of coding using a subversion repository is that you can always go back to an old commit. This comes in handy specially when you need to go back in order to correct an issue caused by a recent commit.

A simple way of changing your setup back to an old commit is to create a new branch, switch to that branch by checking out your files, and doing a $git reset from the specific commit in Bitbucket so you continue committing from XXXXXX commit, where XXXXXX is the old commit you wish you go back to, like this:


$git branch newbranchname
$git checkout newbranchname
$git reset XXXXXXX --hard

Happy coding!

Sketching ideas

Troy Church recently published a very inspiring article on sketching entitled “Why I Sketch Every Day”.

In a nutshell, sketching helps me see, think, and communicate more clearly. It facilitates dialogue with myself, and others. It produces wonderful records of the conversations for later. It adds emotion and context to my memory and fuels my imagination. It has simultaneously slowed me down, and sped me up. It’s made me a better designer. It’s enriched my life.

It’s interesting to see how such a simple, but important step can improve our planning and development process. Sketching is definitely a great way to communicate ideas, and help others visualize what we’re envisioning for a project, and vice versa. Personally, sketching didn’t only improve my work, but also helped me enjoy designing even more. It’s fun and it gets easier the more you practice it.

I don’t sketch because I call myself a designer, I call myself a designer because I learn, think, and envision ideas by hand every day — in short, because I sketch.

So if you don’t sketch, give it a try. There are many resources available to get you started. You’ll be glad you did.