Build your software product from scratch
Improve, extend, and maintain existing software
Connect your software to external systems