Improving software development life cycle using data-driven approaches