Why is software difficult to build ?

Why is software difficult to build ?

A. Controlled changes
B. Lack of reusability
C. Lack of monitoring
D. All of the mentioned

Explanation: Monitoring is a key aspect which requires much attention for a successful build.