Inženir programske opreme za svetovanje je računalniški strokovnjak, ki ga najame stranka za sodelovanje z ekipo za razvoj programske opreme pri izdelavi določenega računalniškega programa ali aplikacije. Ta posameznik ima odgovornosti tako s stranko kot s programsko ekipo. On ali ona mora nadzorovati ekipo in zagotoviti, da je delo opravljeno pravilno in pravočasno. Poleg tega mora inženir ostati v stiku s stranko, da zagotovi posodobitve o napredku in pošlje vse zahteve za spremembe. Inženir mora opravljati tudi delo programiranja in samostojno posodabljati svojo izobrazbo, da ostane aktualen na področju računalniškega inženiringa.
Ko podjetje potrebuje ustvarjen računalniški program, vendar nima zmožnosti, da bi ga proizvedel v hiši – na primer trgovina z živili, ki potrebuje novo programsko opremo za inventar – se k sodelovanju z ekipo računalniškega oblikovanja vključi inženir programske opreme za svetovanje, ki zagotavlja proces poteka gladko. Svetovalni inženir se najprej nauči, kaj stranka potrebuje v svoji programski opremi, in nadzoruje oblikovalsko skupino, da zagotovi doseganje teh ciljev. Inženir spremlja roke, proračune, pregleduje programsko opremo, da se prepriča, ali izpolnjuje pričakovanja, in postavlja cilje za ekipo.
Druga pomembna dolžnost svetovalnega inženirja programske opreme je, da deluje kot povezava med razvijalci programske opreme in naročnikom. Naloga svetovalca je, da naročniku poroča o statusu projekta v preprostem jeziku, da ga lahko razumejo strokovnjaki, ki niso računalniški. Če stranka zahteva spremembe, je naloga svetovalca, da ugotovi, ali je te spremembe mogoče narediti, in da nova naročila skupini za programsko opremo. Ker programski inženir prejema informacije z obeh strani delovanja, je pomembno, da ima izjemno dobre komunikacijske sposobnosti.
Pomemben element tega dela je tudi uporaba znanja računalniškega programiranja. Inženir programske opreme za svetovanje mora imeti visoko stopnjo razumevanja programiranja in mora pogosto pisati kodo, če se pojavi težava, ki je oblikovalska skupina ne more premagati. Inženir tudi testira programsko opremo, da zagotovi, da pravilno deluje, in prijavi morebitne napake ali napake oblikovalski skupini.
Ostati na tekočem s tehnologijo in tehnikami programiranja je še ena pomembna dolžnost tega dela. Udeležba na predavanjih in seminarjih za nadaljnje izobraževanje je pomembna za svetovalnega inženirja programske opreme. Biti na tekočem s trendi, težavami in taktikami zagotavlja, da stranka dobi najboljšo programsko opremo za svoje posebne potrebe.