In the field of software engineering, the term consulting software engineer denotes a person who represents the customer's interests with, e.g., the project team actually building a software system, application or software product.
The term derives from the long-established role of consulting engineer in the field of, e.g., civil engineering, which term denotes a person who represents the client's interests with the architects, builders and other suppliers engaged on a construction project.
Consulting software engineers typically monitor the working practices of the construction team, as well as ensuring that the software under development most closely meets the needs of the customer.
Consulting software engineers generally get paid by the customer, thus encouraging them to represent the customers interests.
They serve private and public clients in ways ranging from brief consultations to complete design and coordination of a project. They are often the technical liaison between architects, process specialists, contractors, suppliers and the client.
A consulting software engineer's speciality may include a broad spectrum of software engineering technologies and skills, including the fields of software process design and redesign; analysis; design; measurement; project and programme management; coding; testing; configuration management; etc.
A consulting software engineer can provide general consultation, feasibility reports, design reviews, cost estimates, rate studies, project monitoring and oversight, patent assistance and preparation of business impact statements.