As with any emerging technology, there is always more hype, talk and pontificating in the years leading up to implementation and full acceptance. I can recall a speech given by Jeff Bezos a decade ago where he compared the internet to electricity, concluding that we were in the stage of the early washing machine in when discussing how the internet would change our lives. That was 10+ years ago.
Today the internet is old news. We suck down topics relating to cognitive computing like machine learning, artificial intelligence. Then, there are the naysayers who claim we'll lose half the active jobs in the United States due to new technology. While this may be true, the future opportunities in this tech are astounding.
When it comes to machine learning, three phases of use, implementation and development exist:
Supervised Learning -- Where humans provide the assisted answers to machines with the right input/output parameters.
Unsupervised Learning -- Where we provide large data sets to a machine that is programmed to learn and then sit back and watch how the data is interpreted and processed.
Reinforced Learning -- Where we provide reward functions with positive and negative feedback to a computer that essentially rewards good and bad behavior.
Today, we're in the supervised learning phase of machine learning software development. Yes, unsupervised algorithms exist and are working, but they have not crossed the chasm into mainstream use and acceptance. Not until an elementary school child can scan his/her homework into the computer and have it cheat back the answers with relative ease will we be there.
When it comes to those of us knee-deep in the pile of agile frameworks, scrum meetings and continuous process improvement, the one area we are looking forward to is the implementation of machine learning algorithms to greatly supplement, if not replace some of the methodologies that call for the input of manual timestamps and updates by project managers and agile scrum leaders.
Whether front-end or back-end, no where is process automation more invited, tested and championed than in software development, but the future of agile will require many years of inputs and learning iteration techniques from humans to perfect in order to truly pass the baton to machines.
We're working to help solve issues like this at DEV.co, but these things take time, resources and patience to effectuate real change in process and personnel.
For agile software development and testing to truly be agile, we'll need to dig deeper into frameworks and the processes that ultimately improve them and make the code truly "deliverable." Until then, we'll work with the great tools and teams we already have, until of course they all disappear and machines take over.