setup for software development