Archive for October 2017

Machine Learning May Help Developers

IDE Pictures

This blog was originally published on the Amalgam Insights website.

As the fall season of tech conferences starts to wind down, something is quite clear – machine learning (ML) is going to be everywhere. Box is putting ML in content management, Microsoft in office and CRM, and Oracle is infusing it into, well, everything. While not a great leap forward on the order of the Internet, smartphones, or PCs, the inclusion of ML technology into so many applications will make a lot of mundane tasks easier. This trend promises to be a boon for developers. The strength of machining learning is finding and exploiting patterns and anomalies. What could be more useful to developers? Here is some examples:

  • Coding – The most obvious application of machine learning is in the coding of applications itself. Coding is based around patterns that are known to work (design patterns, best practices, etc.) and automating them is always going to be helpful. Automating the creation of new code, however, will have only incremental value at best. Modern IDE a have code completion library and API lookup, and automated code generation already. In other words, there is already plenty of features that help a developer to automate the more tedious and inefficient parts of the job. With the proliferation of APIs, SDKs, and code libraries in use, having more intelligent search is a useful application of ML. With machine learning, the IDE may be able to anticipate which APIs and libraries that a developer needs from the context of the code and suggest them.
  • Debugging – Where ML will probably help the most will be in debugging. Debugging code is the hardest part of software development. Often, debugging feels like trying to find the needle in the haystack. It’s even harder to debug someone else’s code and this is where ML will come in handy. Most developers have certain patterns to the mistakes they make. It’s human nature, like always drifting to the right when walking in the woods. ML would help to find individual programmer’s patterns and styles and be able to look for instances where a mistake is being generated. In addition, there are distinct patterns in good code and the ability to discover anomalies in those patterns would help to identify bugs quickly.
  • Testing – Another area where machine learning can help developers with managing test data. Intelligent creation of test environments, environments that mirror real world patterns, can be derived by analyzing production applications and developing test data sets. Test data created this way could match the range of situations an application typically might encounter without using actual extracted data. Using machine learning to create test data would give developers the kind of test data they need without having to deidentify real data or risk violating customer privacy.
  • Project management – large transformation projects pose considerable problems for project management. With teams spread out over distances, working on many parts of the project simultaneously, it can be difficult to coordinate resources and personnel to maintain development efficiency. Just getting a picture of the state of a large-scale project requires a number of people reporting on progress in addition to metrics gathered automatically by tracking systems. This can be highly inefficient. Much is left to the interpretation of generated data and subjective assessments of progress. Simple metrics, such as the burn-down rate, are interpreted in the context of individual manager’s goals and subject to bias. Development managers and project managers all have psychological factors that affect the assessment of a project and can delay acting on warning signs. Machine learning, on the other hand, can be used to analyze patterns in the development data over several parts of a project or over many projects to discern anomalies and warning signs. With this knowledge project managers will be able to manage dependencies, see the unhealthy signs of failure without bias, and gain assistance when rebalancing resources and addressing problems.

IT managers are still more interested in leveraging machine learning to enhance the product of their labors not the process. In time, developers and project managers will see the value in employing machine learning to help manage large projects, especially when spread over the globe. The gains in efficiency and early warning system alone are worth the effort.

Oracle: All the New Stuff Inside Everything

Oracle Open World 2017

As expected, Oracle OpenWorld 2017 (Oct. 1 – 4 2017) featured a large number of announcements. The debut of Oracle 18c, the latest version of Oracle’s eponymous database, grabbed the most attention. Given it’s billing as an autonomous database and Oracle’s flagship product, this is not suprising.. While the idea of a database infused with machine learning that automates all types of database management functions is intriguing, it overshadowed the real impact of Oracle releases. Oracle 18c was only one of several AI-infused “autonomous” products. Instead, the sum of Oracle’s presentations amounted to adding machine learning into all levels in the Big Red Cloud Stack. AI is now integrated into Oracle’s SaaS, PaaS, IaaS cloud products. Oracle didn’t stop with machine learning either. They have imbued their applications with analytics and blockchain technology too. Oracle have made this technology available from within Oracle Cloud Applications and Oracle+NetSuite, providing advanced technology to mid-market organizations through large enterprises.

In essence, Oracle has made sure that all the new technology that everyone has been hearing about for so long is everywhere in the Oracle ecosystem. That’s very exciting. Previously esoteric technology is now available to the corporate masses in a more cost-effective manner. This strategy mirrors Microsoft’s but with greater depth in large enterprise applications. Until recently, organizations that saw value in these new software technologies would have had to hire experts and maintain expensive systems themselves. By integrating them into enterprise applications in domain specific ways, organizations can reap the benefits of advanced software without the cost of building and maintaining it. This approach makes sense; Technology such as machine learning, analytics, or blockchain doesn’t need to be custom built for most organizations. Managing a supply chain using blockchain, for example, will be similar across organizations. The same is true for sales analytics and machine learning for recruiting.

If an enterprise does need to create specialized uses of these technologies, Oracle makes that easier by providing them as cloud infrastructure services. While data scientists and developers trained in blockchain are still needed, the cost and complexity of building, managing, and maintaining the infrastructure is borne by Oracle. Having these advanced technology stacks prepacked as cloud services also means a faster start. Developers can begin writing code immediately instead of having to waste time spinning up the infrastructure. Google, Microsoft, Amazon, and IBM all offer all or some of this technology via the cloud as well. For Oracle loyalists though, the decision to implement just became easier since they no longer have to introduce a new vendor to deploy these types of systems. The tie-in to enterprise cloud applications also simplifies adding customer capabilities to common enterprise applications.

By integrating these three new technologies into everyday enterprise and mid-market applications and providing them as a service, Oracle is making them more accessible to a greater number of organizations. Oracle customers can now gain the benefits of new technology with less of the work or distraction of building it all themselves.