software development scaling