Eve was a top keynote at the October IFIP World Computer Congress (WCC) in Korea where she shared her many deep insights. Based on Eve’s keynote I am sharing the top 9 software engineering tips.
Who is Eve Andersson?
Eve Andersson leads Accessibility Engineering at Google Research. Prior to joining Google, Eve was Senior Vice President of Academics at Neumont University. She also co-founded ArsDigita Corporation, an open-source software company that was acquired by Red Hat, and she was Visiting Professor of Computer Science at Universidad Galileo in Guatemala City. Eve has co-authored two books: “Software Engineering for Internet Applications” (MIT Press, 2006) and “Early Adopter VoiceXML” (Wrox Press, 2001). She serves on the Professional Development Committee of the Association for Computing Machinery (ACM). She has Engineering degrees from Caltech and U.C. Berkeley and an MBA in Finance from Wharton.
Top 9 software engineering considerations from Eve’s keynote
- Automatic Adaptation:
Software automatically adapts to your current location (example: Google News), adjusts based on your movements and activity (RockMyRun), lets you see who is nearby (Swarm) and knows your time of date updating your screen (Twilight).
Software is designed to remember preferences (Spotify), learn preferences (NEST), and provide recommendations (Google News, Amazon).
There is no reloading of the entire page or screen to update a piece of information; no waiting for server round-trips (Maps, Google Search).
- Mobile devices:
Takes into account the growing abundance of different form factors such smarphones, wearables and embedded sensors (accelerometer, gravity, gyroscope, linear acceleration, magnetic field, temperature, light, pressure, proximity, humidity, soli/interactions with radar, camera, sound).
Anywhere knowledge access with device independence and low costs (Dropbox, Google Drive, AppEngine, Amazon S3, Flickr).
Software does all the work (spelling/grammar, contextual information, geographic scene recognition), provides proactive notifications (new messages, flights) and multiple I/O modes (type, speech, gestures), and natural language processing.
- Integration with physical world:
You have to design for the internet of things, remote control and automatic measurement (Philips Hue, NEST, Dropcam, Neurio energy alerts, P&G web toothbrush, smart socks for running form, connected water bottles for water consumption).
With 40 zetabytes of data by 2020, you have to accommodate massive quantities that are available providing actionable machine intelligence (sales drivers, customer behaviours, new product trends, underperforming products, optimizing factories and operations) and personalization/adaptation (sensing your purchases, suggesting customers bought these related products, driving directions based upon traffic patterns).
- Useful skills and approaches:
These are diverse including machine learning, cloud computing, mobile computing, smart computing, big data, IoT, agile development, collaboration and communication, creativity, flexibility, seeking diversity (race, gender, culture, experiences). Research proves that diversity increases innovation and success. There is a lot here in Eve’s keynote and it’s recommended you download her presentation when it becomes available at the WCC link provided earlier.
I also had an extended chat with Eve where she shares much more.
To listen to the interview you can go to the ACM Learning Center podcasts or click on this MP3 file link. In the learning center there is a streaming video session by Eve on accessibility engineering which I highly recommend.
Here are extracts from the full interview.
Ibaraki: What do you see as some of the top challenges in accessibility engineering and how do you propose they be solved?
Andersson: “Let me define accessibility because that word is used by different people for different things; in this context what I mean is making the world better for people with disabilities. I would divide the field of accessibility (the technological bit of it), into two parts. One is making the digital world accessible (websites, apps, etc.), and the other part is making the physical world accessible. In the digital world, I think a lot of the techniques have already been developed for making websites and mobile applications accessible and it’s really about people who develop these applications putting these standards to use. I think there are unsolved problems, a lot of application developers aren’t thinking about accessibility as much as I would like them to. Also how can we make interfaces that work for everybody? I mean for people who can’t see or hear or who can’t input in the way that you might expect or people with cognitive impairment. Another area full of interesting challenges is automated testing. I think with advances in things like natural language processing and machine learning, and even looking at statistics of applications and sites to see how other people are using them I think could allow a way to more automatically determine more than just using heuristics, but using machine learning to figure out if this is something that could work for everybody? Another computer science problem (in terms of understanding the physical world) is in navigation. I think technologies in indoor navigation are getting a lot better and there are better ways now to determine one’s position within a building. ”
Ibaraki: What are your top recommended software development tips?
Andersson: “The first tip is to consider using the Cloud. There’s no need in this day and age (most of the time) to set up your own servers and have to deal with security and reliability and all of these things yourself. The second thing is that you don’t have to build everything yourself. You can look for libraries, there are APIs that do a lot of these things and save you so much time, and if you use APIs then whatever service you are connecting to there’s a good chance that they are going to be continuing development on it, so you’ll benefit from their development over time. The next thing is to really think about what is the minimum launchable feature set. I’d say launch and interate (perfect gets in the way of creating a finished product). The last tip I would give is spend that extra time thinking about interaction flow first, preferably including accessibility, before you start developing anything, even if it’s a really simple app. Even for the very simplest app it’s going to make such a huge payoff in terms of not having to rethink and redesign along the way.”
Ibaraki: Perhaps this deep learning, machine learning, AI movement which is rapidly exploding worldwide will change all these barriers that we see and maybe in the shorter term. Maybe part of this leveling is this machine intelligence out there that’s going to be a personal assistant to everybody and allow seamless communication. What are your feelings about that? Do you think AI is going to be this leveler or do you think it will be a threat to humanity and to our species?
Andersson: “I don’t think it will be a threat to humanity. I do think it will be a huge leveler and I agree it does make a lot of communication a lot easier already. I think because of machine learning we are getting a lot of information that is personalized to our interests: getting news stories, search results, social media feeds, even ads that are of greater interest to us, and I feel like this is going to continue and that this kind of personalization will understand what you are trying to do and accomplish it for you. In my opinion, machine learning is a wonderful thing and it’s one of the most exciting things to come out of the computer science field recently.”
Ibaraki: You are a top ranked engineer and you are also an executive. Based upon your global expertise what are your top predictions, trends in each of these areas: Cyber Security; Cloud Computing; Big Data and analytics; Mobility; Modeling & Simulation; Web technologies; Machine learning & AI; and Blue Sky – out of the box thinking?
Andersson: “Cyber-Security: There are so many interconnected systems and so much reliance now on individuals that our systems will be secure and not share our personal data. I think the trend unfortunately is that it’s getting worse before it’s getting better. Some of the things I think will happen: I think we need to have an end to this system of using passwords to authenticate or maybe that can be one of several methods, I think we need some redundancy. Currently we have to rely on users to do best practices to avoid phishing etc., to avoid using the same password on multiple sites, to avoid having easily guessable passwords and relying on users is not the way to go. More and more people are coming online all the time and coming online on mobile devices. They are not going to sit through training on cyber-security, so we really have to come up with engineering solutions.
Cloud Computing: Cloud computing is one of my favorite things. I really feel like it’s changing the world and also the nature of entrepreneurship. It allows people to create and focus on these new things and not focus so much on the hardware and infrastructure. It makes sense in terms of scale and elasticity; there is dynamic resource allocation so you don’t have to necessarily know in advance exactly what resources you need. Security, reliability – it’s great to let the experts work on those things as opposed to you having to secure your own server, which can be error prone if it’s something that you don’t have a lot of expertise in. And then cost as well. The trend I see is that there is more and more usage. Another trend is that cloud computing is becoming more valuable, more efficient, more able to do better real-time manipulations of documents. My prediction is that this is really going to allow a lot more people to engage in the information economy. You were talking earlier about people in developing nations who are going to have access to the internet that they didn’t have access to before. Well cloud computing is going to give them a lot of opportunity for access to this part of the economy as well.
Big Data and Analytics: You are seeing more data collected and faster than ever before with the internet, with sensors, with devices. The variety of the data collected is also changing. Unstructured data like search queries or user generated content like tweets or blogs or videos. Data like this is now considered information. The velocity and volume of the data is only going to continue to increase, especially with the internet of things. I think we are not going to see such a sharp divide in knowledge in what’s in the online world versus what’s in the offline world. I think it’s going to become much more seamless and there will be a lot more automatic interpretation of data. We shouldn’t have humans interpreting it as much as we do so we will have more detection of trends, making predictions, making decisions on our behalf. I really feel like we are moving from the information age to an intelligence age.
Mobility: I think we will see this convergence of devices and that’s one type of device. Then we’ll see this divergence of other types of devices that are even more interesting in some way. These wearables, tiny wearables on the body, in the body that are sensing things. Maybe devices with minimal user interface where I can speak to it and I get answers and I don’t have to pull anything out of my pocket. What I really want is brain-computer interaction, but I don’t think that’s going to become efficient any time soon so I might have to wait a little while for that one.
Modeling & Simulation: I think modeling and simulation are extremely important and that they will become more efficient and easier over time because of Moore’s Law. These are really computationally intensive tasks so I do think it’s going to become more useful, especially over time.
Machine Learning and AI: I think this existence of these huge datasets is really accelerating our ability to automatically understand things, to automatically generate knowledge out of information.
Blue Sky – out of the box thinking: There are so many potential areas, but one that I think is especially exciting is biotechnology. That would include things like sensors on the body. We are seeing more sensors on the body, we will have early warning systems of the health problems that we might encounter.”