may lead multi‑person teams, prepare a system definition and determine the steps necessary to design, code, test and implement a software solution to meet their customers' needs, including providing estimates for the different stages of the development project and revising