Careers in Software Engineering: Advice from the Experts
By Lori Cameron
Share this on:
For this career article, we interviewed Xabier Larrucea, Annie Combelles, and John Favaro who, along with Kunal Taneja, co-authored the article “”Software Engineering for the Internet of Things,” which appears in the January/February 2017 issue of IEEE Software.
Xabier Larrucea is a senior project leader (PMP) and research scientist at Tecnalia and a part-time lecturer in information systems and quality assurance at the University of the Basque Country. Annie Combelles is the president and founder of the advisory company inspearit. Her research interests are software quality, agile methods, value-added agile management, and customer experience. John Favaro is a senior consultant at Intecs in Pisa. We asked these authors about careers in software engineering.
ComputingEdge: What types of tech advances in the field of software engineering will see the most growth in the next several years?
Favaro: Perhaps the development and testing of large machine learning systems, so this would mean the algorithms, the neural networks, and the challenge of testing. Another area that could see a lot of growth is simulation, because the testing of these large machine learning systems will only be possible in part by simulation.
Combelles: I foresee machine learning and blockchain as new technologies for the future. But, as far as software engineering/development is concerned, I do believe agile methodologies will last for a long time.
Larrucea: I agree that machine learning or new advanced artificial intelligence techniques as well as blockchain related technologies will have an impact in the field of software engineering. Nowadays, we are building software systems with increasing complexity. This situation entails a series of consequences for traditional software engineering areas such as software quality, maintainability, testability, and so forth. In fact, software engineers are not starting from scratch when they are facing a new development. We are using a broad set of existing technologies for which the reliability is in doubt, but we believe in them. This was the case for OpenSSL, the more recent WPA2 protocol and Struts.
ComputingEdge: What advice would you give college students to give them an advantage over the competition?
Favaro: I would encourage them to get a strong background in theory of all kinds. This is because the specifics change constantly, but if you have a solid theoretical background you will be able to adapt.
Combelles: My two pieces of advice are 1) learn and understand other cultures and how to work collaboratively, and 2) remain extremely curious about new technologies and take risks. Not necessarily technologies unique to software engineers!
Larrucea: I agree with your points. I strongly believe that students should be eager to learn new cultures and new technologies, and to evangelize from the practice.
ComputingEdge: If a graduate must begin work as an intern, freelancer, or independent contractor in the field of software engineering, what are some tips for building a strong portfolio for presentation in possible future interviews?
Favaro: I would probably emphasize my flexibility and ability to learn quickly. I would try to support this in my portfolio by showing the largest possible variety of projects that I have worked on. Of course, somebody could argue the contrary—show that you have specialized deeply.
Larrucea: I agree with Annie and John, the ability to listen to client’s needs—including active listening—is not a studied subject in traditional graduate programs. In addition, resiliency is another ability that they must learn by doing.
ComputingEdge: Name one critical mistake for young graduates to avoid when starting their careers?
Favaro: The most critical mistake is to stop the continuous learning process. When I left the university, I thought, “I know all there is to know.” This was not true at all, and even if it were true at the time, it would not have been true for long. This should not be seen as bad news: it means that your career will offer opportunities to learn new things all the time. But sometimes you will have to do it on your own, even when you are not being asked to.
Combelles: The main mistake is to believe that you know more than the older people you work with. You might know different things, but you have no experience.
Larrucea: Young graduates become experts in a couple of new trendy technologies, and they believe they can live with this knowledge the rest of their lives. However, technology evolves too quickly even though the grounded theory is still there. In addition, experience is a key factor in every business. There are no shortcuts for learning.
ComputingEdge: Do you have any learning experiences you could share that could benefit those just starting out in their careers?
Favaro: When I first started my career in industry, I did not have any awareness and respect for what it means to work on a real project. I knew nothing about work package breakdowns, about Gantt charts, about progress reports, and interpersonal communication. It took me a while to realize the importance of these things. A beginning professional should immediately take them seriously. They can even be stimulating and challenging, not necessarily just a boring necessity.
Combelles: When I started my professional career in avionics, the topic was brand new for the entire team. So I learned by doing and especially by regularly analyzing the outcome of my actions and decisions. I was not worried about making mistakes, but it was very clear for me that I should never make the same mistake twice! And, in order to succeed, I had to understand the root causes of these mistakes. Finally, in all I did, I relied strongly on good common sense.
Larrucea: The learning process is not just relevant to the college/university environment. It is an important factor during our careers, especially in technology-related fields. Technologies are changing and evolving, and there is always something to learn. Do not stop yourself, and try to improve. Always learn by doing.