solving issues along software development lifecycle