Software is not developed in isolation. It requires a variety of talents, techniques, tools and collaborations. Optimal throughput relies on continual communication and lightweight processes.
I have over 30 years of experience in designing and writing software, as well as managing teams of programmers to deliver software. I have also spent a lot of time learning, developing and documenting the processes that drive software. I consider these processes, particularly the upfront processes of understanding and analysing the problem domain, to be critical factors for success. I am constantly learning and applying new technologies and new methods.