Tag Archives: programming

People of Ability

Group of business people assembling jigsaw puzzleIn my volunteer positions I have worked with youth of different abilities, often called disabilities. These youth may be mentally, physically, or emotionally disabled. Despite these disabilities, they contribute greatly in various ways and have taught me many lessons that I carry with me. In this blog post I will highlight some stories of people with disabilities who contribute to the field of information technology.

Meticulon Consulting

I have worked with people on the autism spectrum who are excellent programmers. They are methodical, meticulous, and often very creative. They like routine work and excel at logic challenges such as coding. In a recent article, Meticulon Consulting, a Canadian technology firm, was highlighted for hiring people with autism. Their experiences were the same as mine. The people they hired were meticulous, hard working, and loyal to the firm. Meticulon co-founder Garth Johnson makes the point that he is not hiring people with disabilities out of sympathy but because it makes good business sense. Johnson said, “I’m not interested in this as a charity. If we can’t prove business value, then I don’t view it as sustainable for our employees, either our typically enabled or our people with autism.” Other companies cited in the article are coming to the same realization. It makes good business sense to hire people with disabilities.

SAP

The German software giant SAP shares that experience. Their goal is to have one percent of their workforce from the autism community by 2020. This goal came out of a project with the Autism Society of India after SAP programmers created software to help children with autism communicate better. The project was successful so the employees proposed a pilot project to hire adults with autism. SAP recognized the fact that these new employees come with a different perspective and a fresh set of eyes. Jose Velasco, a SAP executive and head of the Autism At Work program said, “There is a skill set people on the spectrum are bringing that has business value.”

Physical Disabilities

In our AIM Program course, Information Systems and Management, we talk about the stereotype of technology workers who are more comfortable with computers than with people. Whether the stereotype is valid or not, it has nothing to do with physical abilities. I have worked with people with hearing or vision impairments or other disabilities who love technology as much as I do. An employer may need to make some accommodations for them, but in my experience it is worth the effort; they bring a rich skillset and unique perspective to a project or an organization.

Thoughts

I believe that we need contributions from people of all abilities in order to make a strong and complete team. We all bring different skills and experiences to our work so the fact that we don’t all think alike or move the same should not make a difference. I would like to hear about your experiences working with people with different abilities. Are there benefits or drawbacks? Let me know.

Author Kelly BrownAbout Kelly Brown

Kelly Brown is an IT professional and assistant professor of practice for the UO Applied Information Management Master’s Degree Program. He writes about IT and business topics that keep him up at night.

Streamline Software Testing with Data Driven Automated Testing

Today’s post is written by Michael Grater, a 2005 graduate of the AIM Program and Quality Assurance lead at R/GA, a digital design firm that provides applications, design, and digital advertising for some of the largest companies. In this blog, we asked Michael to share his thoughts on his experience with the automated software testing process and provide methods on how you can improve your own testing and quality assurance.  In software testing, it is very difficult to anticipate all of the different actions that an end user might want to take. Large applications can often include a million lines of code or more and it is incumbent on the quality assurance professional to test all of the potential scenarios within the application. It is very cumbersome to test these paths one at a time, so it is common to automate the testing into a series of repeated scenarios.  This is much the same as employing a robot to test the new iPhone 6 to ensure that the customer experience is error free.  Often, a 100% success rate is impossible because of the complexity of modern applications, but the method proposed by Michael below will make the process quicker and more efficient and will uncover a higher number of errors that would have otherwise slipped into the final version of the software. 

shutterstock_162820130There are instances in the software testing process when in a shortened amount of time you either have a large number of scenarios to cover or a large number of features. These scenarios may also involve running the same tests repeatedly over a period of time. In cases like this, it becomes advantageous to use a method of test automation known as “data driven testing.”

 

As an example, in most cases, when viewing a login screen, there are essentially two fields and a button, and the steps would look like this:

  1. Open URL,
  2. Click on Login link,
  3. Enter User ID/email address,
  4. Enter password,
  5. Click on login button.

At the same time, there are multiple scenarios when it is necessary to test such features as:

  1. Entering a valid user ID and invalid password,
  2. Entering an invalid user ID and valid password,
  3. Leaving the user ID field blank but entering a password,
  4. Entering a user ID but leaving the password field blank.

Using an automation test tool, the steps can be programmed once and consist of entering a user ID, entering a password, and clicking on a button. Then the test can be configured to run based on data in a file (spreadsheet, flat file, xml file). The data is imported into the test and the execution steps leverage the data to either enter values in fields, provide URL links to be opened, or code values that are equal to features such as buttons or navigation.

The logic behind the test would look like this:

Load data file (contains URL, User ID, and password data)

If

  • Open URL (variable, parameterize),

–  Pull value from data file—insert into test,

  • Click on Login link,
  • Enter User ID (variable, parameterize),

–  Pull value from data file—insert into test,

  • Enter password (variable, parameterize),

–  Pull value from data file—insert into test,

  • Click on Login button.

View page—confirm successful login.

Is there more data?

Then, go to the next record.

Although the test consists of approximately four or five steps, it is configured to loop and execute based on the amount of data stored in the file.

The benefit of doing it this way is that the test can be reused over and over again. If a particular feature has to be retested, the automation test can be executed, generating a report of whether the tests have passed or failed. This also frees up QA staff and allows them time to focus on other areas of the project to test, maybe in places where automation is not an option.

When working with test automation, having adequate time to plan, setup, and verify that the test is working correctly is needed. Test [R1] automation can become a very efficient way to test software but it is not always a viable solution.

This concept can be applied to any automation tool. In my current position with R/GA, we’ve used this technique on multiple projects with tools such as Selenium and Jmeter.

Michael Grater

QA Lead, R/GA New York

Too Many Coders?

Child using a computer with binary code on the screenI have been reading a number of articles lately lamenting the fact that we do not have enough programmers or coders in America and not enough students are entering and graduating from computer science programs. The Kentucky Senate last week passed a bill that would allow for programming classes to count as foreign language credits in public schools. The bill still needs to pass the Kentucky House to become law. There is also the oft-quoted number from the National Center for Educational Statistics (NCES) that only 2.4 percent of current bachelor’s degrees are awarded to computer science majors.

The Argument

I think that the argument is overly simplistic and ignores cycles, needs, and capacity. In terms of cycles, there is a reason for fewer computer science majors today. If you look at the historical trends in computer science degrees displayed in this interactive chart, you will see that computer education peaked at 4 percent of all bachelor’s degrees in 1985 and again in 2004. I believe that the introduction and popularity of personal computers in the late 1970s and early 1980s led to the first peak. It takes four years to complete a bachelor’s degree, so the cycles are offset. Similarly, I believe that the second peak was because of the dot com boom of the late 1990s and very early 2000s. In both cases, it was very cool to be in computers and desirable to pursue computer education. Conversely, the troughs occurred in 1995 and 2009. By 1990, computers had become commonplace but we had not yet entered the Internet boom. In 2004–2006, sizable tech companies and Internet companies such as HP, IBM, EDS, and Cisco were laying off large numbers of employees. My belief is that during the layoffs, an education and career in tech did not look very enticing. Computer science degrees have come out of the trough since 2009 and are on the rise again; that may be in part attributed to the boom in mobile computing. Computing is cool again.

Broad-based STEM Education

That being said, I am a huge advocate of science, technology, engineering, and math (STEM) education, and I think all students should be solidly grounded in those disciplines. They can take that education and those skills into a number of vocations and professions. I don’t believe, however, that everyone needs to become a programmer or be proficient in programming, despite the proclamations of Mark Zuckerberg and Barack Obama on Code.org. I laud their efforts to at least introduce coding to all students but it is just one small part of a larger education in technology and science.

There are other emerging fields that are outside the boundaries of traditional computer science. Perhaps it is a matter of semantics, but students should also consider a career in bioinformatics, which is a combination of statistics, computer science, and biology. This is a chance to apply computing and data analysis skills to the task of gene sequencing and other biological research. There are other emerging fields as well, such as robotics and materials science. Work in all of these specialties is going to take a solid background in math, science, technology, and even some programming. They are all exciting areas waiting for those willing to tackle the rigorous work necessary to make a break through discovery.

My Thoughts

These are exciting times to be involved in computing and analytics and there are diversified disciplines looking for those skills. I think the key to the future is a solid applied STEM education that will prepare students for the challenges ahead. The opportunities are broad and other possibilities should not be ignored by focusing only on programming skills or computer science degrees. What do you think? Let me know.

Author Kelly BrownAbout Kelly Brown

Kelly Brown is an IT professional, adjunct faculty for the University of Oregon, and academic director of the UO Applied Information Management Master’s Degree Program. He writes about IT and business topics that keep him up at night.

 

Bridging the Technology Gender Gap

There has been a big emphasis over the last few years on STEM (science, technology, engineering, and math). Education initiatives are pushing STEM in elementary, middle, and high schools. With this emphasis we should see more young men and women entering college degree programs and careers in these fields. Will this push help to reverse the decline of women entering into the information technology field? Time will tell, but I have a few ideas for narrowing this gap.

Statistics

According to a recent study by the National Center for Women In Technology, 57 percent of professional jobs in the US are held by women but only 26 percent of professional computing occupations were held by women. According to the same survey, only 18 percent of Computer Science and Information Science undergraduate degree recipients were women. The trend for women in technology appears to be getting worse and not better.

Ideas

In a recent blog post, Jaleh Bisharat, vice president of marketing at oDesk, suggests three things that may invite more women into the technology and communications field:

  1. Make computer programming a requirement for graduating from high school.
  2. Aggressively combat the stereotypes of computer scientists.
  3. Expose the creativity involved in advanced math and science.

Her premise is that if we demystify information technology by exposing young people, male and female, to areas such as programming then they will begin to understand that tech jobs can be rewarding. The tech industry needs to shed its “nerdy” image in order to be considered a viable option for young women. As Ms. Bisharat points out, programming can be poetry and it is very much a creative field.

Thoughts

Here are some things I have been thinking about to attract more young women to STEM and keep them interested enough to pursue a degree and a career in technology or engineering:

  1. Bring more girls in contact with technology professionals, even as early as elementary school.
  2. Create better marketing by the technology industry to attract more young women to the industry.
  3. Make math hip by highlighting top-of-the-line applications!

If we are successful in introducing young people to technology and information professionals, they will understand that these are the people that help bring new devices and applications to life. In turn, the professionals can help reinforce the notion that math and science are cool and they are not limited to one gender. Finally, we need to do a much better job of marketing the technology industry. We have the Beef Council, why not a technology council, complete with a tagline and a jingle and a captivating app? Come and join us and help us invent the future! All of these efforts could help narrow the current gender gap in technology jobs and help us to employ the talents of creative men AND women.

Do you have other ideas for attracting talented women into the technology field? What do you think are our biggest barriers? Let me know your thoughts.

 

About Kelly BrownAuthor Kelly Brown

Kelly Brown is an IT professional, adjunct faculty for the University of Oregon, and academic director of the UO Applied Information Management Master’s Degree Program. He writes about IT topics that keep him up at night.