business applications development: piecing the puzzle