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