software development trends 2018