DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
  1. DZone
  2. Data Engineering
  3. AI/ML
  4. AI: #futureofcoding

AI: #futureofcoding

AI-assisted flow development provides AI suggestions with three options that are 90% of what is next based on more than 12 million code patterns.

Tom Smith user avatar by
Tom Smith
CORE ·
Oct. 03, 18 · Opinion
Like (4)
Save
Tweet
Share
4.42K Views

Join the DZone community and get the full member experience.

Join For Free

Thanks to António Alegria, Head of AI at OutSystems for taking me through how OutSystems is using AI to improve the quality and speed of software development. António also heads up OutSystems' AI Center of Excellence — Project Turing.

António began his presentation explaining that tools were key to humanity’s progress and that software became the ultimate tool to drive great achievements.

The tools to create software have evolved; however, there is still room to grow — program complexity is growing, we still have to manually update our games and TVs.

The best way to address complexity is to take a complex problem and to break into smaller components.

This is where Deep Learning comes in. It opens an avenue of possibility not previously possible. Deep Learning looks at huge amounts of data and leverages the compute power we have today.

Deep Learning can be used to map the transition of a balled up piece of paper to a flat sheet of paper one layer at a time: input space X > deep net: a smooth morphing from X to Y expressed as a series of simple geometric transformations (layers) > target space Y.

Deep Learning leverages backpropagation and optimization algorithms to search over the program space for a close to optimal solution. The program is a set of model parameters. It can also be used to optimize model architectures and hyper-parameters (Auto-ML). Deep Learning opens a new avenue of optimization.

António introduced the concept of Software 3.0 where:

  • Software 1.0 are programs humans can write, coded in a programming language, requires domain expertise, deconstruct the problem, design algorithms, solve problems that are easier to specify desired behavior and code, transparent, symbolic AI with planning and reasoning.

  • Software 2.0 are learned from data, requires less domain expertise, solve problems that are easier to identify desired outcomes from collected data, black box, geometric AI with pattern recognition and intuition.
  • Software 3.0 are programs assembled or assisted by AI according to a set of requirements or objectives. Programs composed of Software 1.0 (symbolic code) and Software 2.0 (pattern recognition, intuition) generating reusable modules.

Software 3.0 will make application delivery a more universal, creative and communicative endeavor, resulting in indestructible software accessible to everyone through AI

Software 3.0 will make application delivery 100X faster, delivering robust, high-quality apps of all complexities, while being accessible to everyone.

This is important because software development is still too hard and there is an ever-increasing skills gap. We need to shorten the learning curve.

The master plan is as follows:

  • Foundation — get the data and AI in a virtuous loop

  • Exploration — users benefit from AI-based features

  • Transformation — AI plays a major role in development experience

  • Disruption — citizen developers are enabled by AI architects to build indestructible apps

  • Transcendence — everyone creates self-evolving and optimizing apps as a creative/communication endeavor

What are we exploring? Three main vectors: 1) assistance – guide developers – accelerate power users and make it easier for novices to develop apps by suggesting and guiding on the next steps; 2) analysis – artificial expert – improve software quality by identifying bugs, bad patterns, and recommending architectural decisions; 3) synthesis – what if the software wrote itself? – collaborating with top research groups (Carnegie Mellon and Lisbon) to transform AI and software development

AI-assisted flow development enables development pros to think less and code better while empowering beginners to learn while doing. The platform provides AI suggestions with three options that are 90% of what is next based on more than 12 million code patterns. This accelerates flow development by 25% and is available for all logic flows.

Developers can apply for early access at outsystems.ai.

Following his presentation, I had the opportunity to ask António some questions about the current and future state of AI.

What Are the Keys to a Successful AI Strategy?

Guidelines and quality data. It's better to have smaller data sets with better quality when developing algorithmic models. In fraud detection use cases the amount of fraud is lower than legitimate transactions. You need good quality, representative samples of both to build a strong learning model.

Ideally, build the AI capability into the app so the users do not realize they are using AI to solve their problem. Simple interfaces are the most powerful as evidenced by the Lyft and Uber apps.

How Can Companies Benefit from AI?

Improve speed and quality of development. Create completely new opportunities. Leverage capabilities with the data and compute power at scale. With fraud detection, people used to write rules manually. However, humans cannot explore all of the complexities and subtle differences that a criminal, fraudster, or spammer might present. AI systems explore all patterns and combinations at scale, which is critical with thousands and millions of variables.

How Has AI Changed in the Past Year?

Democratization with tools getting better all the time. Proprietary things we did five to 10 years ago are open source today. This lets people enter the space and solve problems with fewer barriers and faster learning and scaling.

Image detection is being provided out of the box.

However, this is enabling people to just brute force the analysis rather than understand how to structure the problem and the data in a transformative way.

What Are Real-World Problems Are Your Clients Solving With AI?

Developers are coding faster, more securely, with better performance, and higher quality.

Developers are able to focus on higher-value tasks to solve business problems.

People are seeing advances with AI assisting in tasks with huge complex software development. The ability to handle bigger projects at scale is exciting. They tell us it's a cool feeling of having a partner working with you.

People have been seeing improvements in other products and are now seeing it in software development tools. We already provide a certain level of abstraction and high-level way of doing things by embedding AI in a subtle way that's helping rather than being disruptive

What Are the Most Common Issues You See Preventing Companies from Realizing the Benefits of AI?

Having their data in order and in a centralized place where they can do all of the analysis. In order to put into production, you need to see data from all systems in real time. If there's not a data structure in place, it can be difficult. It's easy to train a model, put it in the cloud, and call to get predictions; but, it doesn’t handle data transformation in flight.

Where Do You Think the Biggest Opportunities Are in the Implementation of AI?

People with different skill sets have a learning curve and a cost associated with that learning curve. The cost of learning is so high, we try to eliminate and reduce how to assemble systems and work together with the right patterns be successful and achieve business goals. We open new opportunities by reducing complexity.

What Are Your Biggest Concerns Regarding AI?

It's still a very hyped area with a lot of investment. Deep Learning will bring benefits. New innovations will fuel new opportunities. The state-of-the-art will mover forward to do different things.

Companies need to understand how AI works. Don’t accept high expectations that this is magic. It takes thought, work, and preparation. Help users understand the decision model so it's more than a "black box."

What Skills Do Developers Need to be Proficient on AI?

There are a lot of great resources online. Coursera has online Machine Learning courses with Deep Learning specialization that provides a good understanding of how it works and the limitations. Go on Kaggle and do data challenges. If you have access to data in your company, do experiments with data to solve a problem. Start small. Explore the Kaggle challenges beyond image recognition, try to tackle different problems with business-like data to understand how to transform data to solve business problems.

AI Software development Deep learning Data (computing) app

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Best Practices for Writing Clean and Maintainable Code
  • How to Create a Real-Time Scalable Streaming App Using Apache NiFi, Apache Pulsar, and Apache Flink SQL
  • Implementing Infinite Scroll in jOOQ
  • Promises, Thenables, and Lazy-Evaluation: What, Why, How

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: