developers which tasks application functionality domain provides language allows macroview products needs system applications software source developed process standard information where services framework systems access manual business driver layer design these developing server windows staff development based their integration client clients other people using approach interface product automated collection example JoelLipman.Com