Review the business, user and stakeholder requirements to determine the size, scope, complexity and resource needs. Learn the corporate culture.
Select the right Software Development Life Cycle (SDLC) methodto be used (Waterfall, Spiral; Incremental, Agile; Scrum; hybrid, etc.)
Negotiate an informed IT contract that allocates project risks, and defines roles, responsibilities, approvals, interim deliverables, payment schedules, and escalation processes.
Create a baseline plan to build, test and deliver the system and a "Range of Magnitude Estimate" of cost, schedule and resources. Use Company or Industry-provided comparable metrics for estimating the current project when available. Use multiple estimating techniques to refine your estimate range. Avoid: impossible budgets caused by artificially low estimates; IT over-optimism; and arbitrary, politically-motivated go-live dates that cannot be met!
Develop a Work Breakdown Structure to achieve the 6 balancing elements. A WBS is a detailed and sequenced listing of the steps/tasks to be performed to deliver a production-ready system per the plan. The estimate will improve over time as more information becomes known.