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