Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

How Machine Learning Will Affect Software Development

DZone 's Guide to

How Machine Learning Will Affect Software Development

Better quality, more secure software, delivered more quickly.

· AI Zone ·
Free Resource

Image title

Machine learning for software development

To learn about the current and future state of machine learning (ML) in software development, we gathered insights from IT professionals from 16 solution providers. We asked, "What’s the future for using ML in the SDLC from your point of view — where do the greatest opportunities lie?" Here's what we learned:

You might also like:  TechTalks With Tom Smith: Using Machine Learning in Software Development — Keys to Success

Better Software

  • Modern software systems emit a tremendous amount of “machine data” (logs, metrics, etc.) that can be crucial to identifying and understanding misbehavior, but the quantity and complexity of this data is outpacing the human ability to do the required analysis and take timely action. For this reason, I think we will see a lot of opportunities to build automated systems that analyze (and even act) on this machine data in order to improve the security, performance, and reliability of economically critical software services. That said, there’s also a lot of exciting research around “ML on code”: automatically identifying risky pull requests, automated bug localization, intelligent IDE assistance, and so on. Given the well-known challenges of building and operating software systems, there is likely to be plenty of room for improvement across the entire lifecycle. Overall, I think we’re heading into a really interesting time for the application of ML techniques to software development, security, and operations.
  • The greatest opportunities in ML exist in the continued automation of bug fixing, testing, deployment, and code optimization. 
  • Suggest tests to offer. Here are 30 more tests that can help you achieve greater coverage. The thing that was going to take 10 to 20 years may only take five years. 
  • It is unlikely to replace the human factor in software development. ML is unable to decide what’s right or wrong. It will continue to identify more tests that can be automated. You will be able to deliver more, faster, with more quality and less human involvement by solving and automating small tasks done on a day-to-day basis to make intelligent decisions. 
  • The great promise lies in the speed of development and production — enabling us to do so much more with our time. The simplicity in which we can introduce feedback and iteration cycles has given us the opportunity to iterate and focus on outcome-led programming. The ability to go beyond what humans are able to accomplish in the development of software. There’s also plenty of opportunity in terms of making the way we create and produce software much faster. But for me, the opportunity really lies in the opportunity for humans and machines to work together intelligently — moving the programmer’s role on, building new skills and freeing them up to focus on what they are good at, and letting the machines deal with the mundane.

Other

  • There are many areas in tech that are going to see huge improvements from ML over the coming years, but the one I’m most excited about is discoverability — the act of finding a product or experience. From grocery shopping to finding flights, to searching for information on Google, we all spend many hours a week on these tasks. Teaching a computer our preferences so it can help us do these things faster is all upside. We get more free time, and unlike with fields like self-driving cars, no one loses a job. It’s pure universal good, and one machine learning can help with.
  • The next generation of apps that use ML will be seamlessly integrated and ML will be in the fabric of the app, so the ML is operating on real-time data, being retrained, and the testing and decision making is being done in real-time. Develop an integrated platform that integrates the ML in the data platform to power the volume of data necessary.
  • Giving humans the chance to focus on what we’re good at like creativity and problems that require non-linear thinking. Automate repetitive tasks. AI is augmented intelligence. Use AI to automate specific tasks around the cleaning and preparation of data and dashboard creation. How to interact with technology without having BI training.
  • More data scientists. With more open source ML libraries it's becoming more accessible to software developers.
  • It seems that there are a lot more opportunities in mixing classical robotic algorithms with ML. ML can boost performance in some aspects of the algorithms while keeping the transparency of an original method under control.
  • DevOps may be the big winner. People will begin to find value in the ops data so it becomes part of the software development process. Developers will use tools if they are part of the toolchain everyone uses. If ML-based data is part of the feedback loop part of the dev pipeline and code processes they’re more likely to use it. A subtle improvement in quality which hits the intended features. Able to see change better or worse over time.
  • Every product whether a SaaS analytical app, CRM, consumer appt to buy groceries will leverage ML because it improves UX. If you can find patterns you can predict what will happen. People who do this will be the leaders because they’ll create more value. Analytics will merge with ML.
  • ML will SaaS-ify more and more. Some of the common problems will come up with the best models and people will license and tailor to their use case. We will stop building ML models from scratch. We will take the best of the breed and customize it for the application.
  • I believe a lot of profitability lies within an out-of-the-box, vertical-centric approach. It’s very difficult to build a one-size-fits-all horizontal solution, and the companies that succeed spend their time in one vertical and monetize off of one specific problem.

Here’s who we heard from:

Further Reading

Practical Uses for Machine Learning in Software Delivery

Why AI and Machine Learning Will Redefine Software Testing in 2019

Topics:
machine learning ,artificial intelligence ,better software ,software development ,ml on code ,ml ,machine data

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}