A Deep Learning AI Routine learns how to Code

AI

The end of April is nigh, which means another edition of our software development news digest. These intriguing stories hopefully provide a measure of insight to your own application engineering efforts. If interested in checking out last month’s digest, just click on the following link. Thanks for reading!

A Deep Learning AI Routine learns how to Code

AI and machine learning continue to make an impact throughout the technology industry. These innovations are found in everything from data analysis to self-driving automobiles. In a similar matter as with robotics, some professionals wonder if their jobs are going to be taken over by a computer in the next decade.

Recently a team at Rice University developed a deep learning routine actually able to write some code. The good news for current developers is the prime directive for this AI application involves helping software engineers more easily handle interfacing with poorly documented APIs. News about this AI innovation appeared earlier this week at Tech Xplore.

The application – called Bayou – performs a deep analysis of APIs in online source code repositories, like GitHub and others, attempting to learn about the API’s usage idioms. The application is focused on the Java language at this time. Swarat Chaudhuri, associate professor of computer science at Rice and one of the creators of Bayou, commented on the tool’s genesis.

“People have tried for 60 years to build systems that can write code, but the problem is that these methods aren’t that good with ambiguity. You usually need to give a lot of details about what the target program does, and writing down these details can be as much work as just writing the code. Bayou is a considerable improvement. A developer can give Bayou a very small amount of information—just a few keywords or prompts, really—and Bayou will try to read the programmer’s mind and predict the program they want,” said Chaudhuri.

Most notably, it analyzed millions of lines of Java code as part of its self-training process. If you want to try the application for your own purposes, just simply ask Bayou.

Fannie Mae makes Software more Secure with Lean

We’ve previously talked about the Lean methodology. Considered a variant of Agile, Lean actually grew out of the manufacturing world in an attempt to make operational processes more efficient. Now, mortgage lender Fannie Mae is leveraging Lean to make its software development process faster and more secure. News about their efforts appeared this week in CSO.

Since implementing Lean in 2013, Fannie Mae’s development cycle decreased by half. Working more efficiently allowed the software engineering team to subsequently make their applications safer from hackers and other nefarious agents. They also saved hundreds of millions of dollars over that time, according to company VP, Michael Garcia.

Writing safer code from the beginning is a core principle of Lean applied to software engineering. Other Agile techniques, like smaller increments and faster testing, improve overall efficiency. The company explored applying the principles Six Sigma to their development process, but ultimately felt Lean made a better fit.

Lean is definitely an Agile variant worthy of evaluation for larger software development shops. A more efficient process simply brings many advantages, including more secure applications and an increase in business value. Dive into the CSO article for a further exploration of the use of Lean at Fannie Mae.

Stay tuned to the Betica Blog for additional news and insights from the constantly evolving world of software development.

Are Developers finally starting to Understand DevOps?

devops-blog

Software developers remain a curious and opinionated bunch. Over the last few decades they tend to adapt slowly to new methodologies, with DevOps offering little exception to this golden rule. A recent survey reveals things are finally beginning to change, as it shows application engineers beginning to actually “get” DevOps.

Of course, we recently wrote about network administrators feeling DevOps is all about the “Dev” in the first place. What follows is an analysis of the survey to see what these changing opinions mean for the process of software engineering. Perhaps you might gain an insight or two to help your own team’s project work?

Survey says DevOps makes Software Development Faster

Most organizations implementing DevOps do so in the hopes of making their software development process faster and more efficient. A survey of software engineers, CTOs, and IT pros by application maker, GitLab, notes that these wishes appear to be coming true. News about the survey appeared last month on the Developer Tech website.

According to the GitLab study, two-thirds of those polled feel DevOps greatly improves the speed of the software development process. This 65 percent moves upwards to 81 percent when only taking into account the opinion of managers. 29 percent of those surveyed plan new DevOps investments in the current year.

The best shops using the methodology are able to spend at least half of their workday actually writing code. Changes get deployed on demand. In short, these top organizations are twice as productive as those whose DevOps implementation is either immature or nonexistent.

Challenges to Efficient Application Engineering Remain

In their survey, GitLab highlighted a few challenges to the software development process. Two-thirds of the respondents noted the lack of clear direction on application engineering projects. Slightly over half mentioned the need for rework and unexpected scope creep, while 31 percent felt unrealistic expectations hampered their efforts.

Leveraging automated processes to improve efficiency is a high priority at 60 percent of the surveyed organizations. Around 90 percent of those companies are currently using Agile, DevOps, or a mixture of both. 16 percent are still using the venerable Waterfall methodology for some or all of their development work.

Continuous testing also plays an important role in the ultimate success of any company’s DevOps adoption, a concept highlighted by Razi Siddiqui, SVP and CIO at GCi Technologies. “It’s a key indicator that your DevOps/agile practice is mature, and your QA strategy must take into account that 100% test automation is not practical – nor is it possible,” said Siddiqui.

Sid Sijbrandij, CEO and co-founder of GitLab, commented on their survey conclusions. “The survey reveals software professionals finally see the need for DevOps in their workflow and are beginning to adapt their workstyle in order to make this a reality. Despite the progress in the shift in mindset, current DevOps practices are not cutting it. Instead of a single application that accomplishes the goals of both Dev and Ops, many glue together the tools for the two departments, which has proven to be an ineffective means for collaboration,” said Sijbrandij.

It definitely appears that any enterprise software development not using DevOps runs the risk of being left behind in today’s business landscape. Thanks for reading this edition of the Betica Blog. Keep returning for additional insights on the wide world of software development.

Improving the QA Process at an Agile Office

Companies of all sizes continue to embrace the Agile methodology with the hopes of making their software development process more efficient and subsequently more productive. Agile emphasizes collaboration and communication and it is able to react to changes better than older methodologies, like the Waterfall. It is a perfect match for today’s fast-paced, competitive business world.

A faster software engineering process, however, doesn’t mean companies should forego testing and quality assurance. Unfortunately, it seems businesses are struggling with software QA within an Agile framework, according to a recent survey of development shops. Let’s take a closer look at the study’s findings with the hopes of improving the QA role at Agile shops.

Testing Tool Provider, Zephyr, looks at QA in the Business World

Zephyr, a company making applications to support software testing, annually releases a study focused the QA role within the business community. Called “How the World Tests,” it is available as a free download from their website. Managers in the software development and QA role need to check out the full study with its findings and predictions for the coming year.

Hamesh Chawla, vice president of engineering at Zephyr, commented on the purpose of their study. “‘How the World Tests’ allows the entire testing community to examine our progress over the last year. IT teams want to speed up deployment of new software to meet demand. Companies should increase employee education investments in order to fine-tune the most efficient automated tests that work for any software they develop,” said Chawla.

Quality assurance remains a vital part of the SDLC no matter the choice of methodology. Even so, we are going to focus on one area within the survey — the difficulties Agile shops are experiencing with QA on software projects. SD Times also covered this topic in a recent article.

The Major Problems of Software Testing and Agile

The Zephyr study noted three major problems development teams were experiencing when it comes to testing with Agile. They are the lack of automation tools, constantly changing requirements, and not enough time for thorough testing. Companies understand automation is important in helping QA keep up with the rapid pace of an Agile project, but only 45 percent of the survey respondents felt their organization had the competency to employ automated testing.

Chawla feels companies need to invest in automation tools and the training to leverage them properly within the Agile process. Of course, he works at a testing tool company, but that fact doesn’t lessen the impact of his statement. Software development teams also use other recent innovations, like containers and virtualization, to make the overall process faster.

Businesses also need to invest more dollars in employee development to ensure a better understanding of Agile and everyone’s role within the framework. Involving QA personnel at every step of the SDLC is also important – a traditional complaint of software testers for decades. The reengineering of testing processes to better fit within the Agile structure is another key point of improvement from the survey.

Ultimately, organizations need to understand that Agile doesn’t just mean “faster.” A well-considered process that properly includes the QA role is a requirement to ensure successful product delivery.

When you need additional insights on the world of software development, you know where to turn: The Betica Blog. As always, thanks for reading!