A specialist in software platform design
“I want to deliver software that makes maximum use of our world-leading analytical technology.”
Heterogeneous mixture learning technology enables highly accurate prediction and estimation based on bulky and varied data. Kyota Kanno is in charge of developing the software platform for NEC's unique world-class analysis engine. Here he looks ahead to the next 10 and 20 years as leader of the platform development team, and speaks of the passion and dedication he has put into creating software with true value, as well as struggles he has faced along the way.
We design a vision for software
--First, please give us a brief overview of what your job entails.
Kanno: I currently have two main jobs. The first is research into platform technologies, such as the distributed processing and data management technology required for large-scale data analysis. This includes, for example, the creation of a platform for carrying out large-scale, efficient distributed processing using computers in a data center, such as processing the algorithms NEC has developed for its advanced analysis engine.
My other job is to design and build superior, leading edge software. I research software design for providing more value to customers, combining a number of analysis engines and algorithms, as well as distributed processing and database technology, which NEC has demonstrated its strength in.
Researchers are often portrayed as merely pursuing technology and writing papers, but with areas such as analysis solutions now an increasingly important part of NEC's business, the development of software that combines advanced technology is one of the key tasks at the research laboratory I work at. I would sum up the job of software platform development as taking a "vision" for the software to create, and giving it "form" as a platform.
--How is software platform design different from software development?
Kanno: I think that depends on what you consider software development to be. Most people see it as designing and coding the functions for processing set routines. There is no doubt that this kind of design and coding also falls under the category of software development, but I see it as merely part of the process.
Good software provides the value required by customers and society over the long term, for periods of 10 or 20 years, with updates and improvements made along the way. It is not enough to create the functions or technology in demand on a moment-to-moment basis. Software must continue to grow on a long-term basis, responding to changes in the environment such as the appearance of new algorithms or new requirements from customers. To differentiate from simple action-based design, I used the term software platform design, but I believe my job to be software development in the truest sense.
--What kind of role does software platform design play in providing solutions?
Kanno: In addition to hardware technology and system integration capability, in recent years the power of software has become a key part of the solutions that ICT vendors provide. In other words, powerful, high value software that is developed with long-term perspective is an important asset for ICT vendors, providing a competitive edge and differentiating them from other vendors. Even the best analysis engine or algorithm must be made to function effectively as software, or it won't reach its full value. Customers will also drift away before too long if their needs aren't met, or if software fails to keep up with changes in technology. That's why we strive to maximize the value of software every day, teaming up and closely coordinating with the developers of our advanced algorithms, and data scientists with seasoned knowledge of customer issues.
Using hands-on experience in business systems engineering for fundamental research
--What knowledge and skills are required for software platform design?
Kanno: In short, you need the ability to design and code superior software.
Specifically, you must first have insight into future trends in algorithms for data analysis, as well as changes in the future requirements of customers and society. It is also necessary to have broad knowledge of related areas such as distributed processing, and interest in external technologies like open-source software. Additionally, NEC has a range of world-class analytical technologies, and understanding these is imperative.
Of course, it is difficult to cover all these areas alone, so collaboration between experts in each field becomes important.
--Tell us about your time working at NEC.
Kanno: In my university days I specialized in software engineering, but after I graduated I wanted to know more about field work, so I joined NEC as a business systems engineer. I choose to join NEC because I felt they were serious about developing cutting-edge technology, and they were sincerely focused on their customers.
After joining the company, some of the projects I worked on include development of a framework for Web-based applications, and actual system development for customers in fields such as distribution and manufacturing. I have a sense that, through coming into contact with a variety of customers and issues, my customers helped me develop as a business systems engineer. My customers from back then still sometimes invite me out for drinks, and this makes me very happy. The experience I gained as a business systems engineer comes in very handy for the platform design work I do now.
After that, I used our internal personnel posting system to transfer to the department that develops platform software. I decided to make this transfer because I wanted to find a good way to link my experience as a business systems engineer with the cutting-edge technology we develop through our research.
I've been working in my current laboratory since 2007. At the laboratory, tasks such as developing advanced technology and publishing papers are also important, but I was interested in the creation of practical value that lies at the end of individual technology development and papers. The needs of customers are diversifying and becoming more complex. It will be more and more difficult to resolve issues through a single technology like in the past. There has also been a major shift in the role of the laboratory I am at now, which is gradually moving towards an age where collaborative value creation is carried out together with customers. We want to provide the optimal solution to customers in the form of software, combining the cutting-edge technology developed at our laboratories. I am getting closer to achieving this goal in my work, so I find it very satisfying.
A brush with amazing technology seen only once every decade
--Tell us about the heterogeneous mixture learning technology you are working on platform development for.
Kanno: Heterogeneous mixture learning technology is an analysis engine developed independently by NEC. It enables highly accurate prediction and estimation in a number of fields by utilizing big data, including sales forecasting for distribution and anticipation of demand for energy.
I first encountered heterogeneous mixture learning technology in 2012. Because algorithm development isn't my specialty, in the beginning I honestly didn't understand what all the fuss was about. When I was assigned to the platform design for this technology, I fervently studied applied mathematics and machine learning, and as I acquired more knowledge, I came to understand the brilliance of this analysis engine. I felt it was the kind of amazing technology that you may only see once every decade. What excites me most as a developer of software platform design is the potential it holds. A variety of analysis engines can be created based on this algorithm, expanding the range of purposes it can be used for, and improving its prospects for the future.
--What kind of work does platform development for heterogeneous mixture learning technology involve?
Kanno: Whether for heterogeneous mixture learning technology or something else, software development involves the same process of analyzing requests for what to make, and performing design and coding. The most difficult part of this work is deciding what to make. In other words, creating a clear framework for the objective and vision as a software platform. If you get this wrong, the software you create will end up as something completely different.
To avoid failure, you must have in-depth knowledge of the principle research for the engine, the needs of customers, and the technology for implementing software. It is also crucial to limit the losses incurred when a mistake is made as much as possible. This "three plus one" approach is an indispensable part of platform design.
For the development of platforms for heterogeneous mixture learning, we first decide on the software framework, then create a roadmap depicting our vision for its future. We then proceed with actual software production, following the scope of the established roadmap. We check progress every two months, confirming and making fixes frequently to avoid missteps while proceeding with design and production.
My main job is the overall coordination of platform development, including production management and instructions to team members, but I also keep a close eye on the code that is written. We also put a lot of effort into maximizing the value sought by customers during the software platform design for heterogeneous mixture learning technology. We selected the optimal combination of algorithms and other peripheral technologies from a long-term perspective.