People, Processes and Tools: The Three Pillars of Software Development