What are the top three challenges in software development?
Development a software system is still a crafting work – a combination of art and engineering. Based on our observation, the top three reasons that software projects have failed are lack of understanding of the requirements, improper architecture and ineffective teamwork. The most complaints about requirements are “we don’t have any requirements?” and “requirements keep changing and how can we shoot a moving target?” Unfortunately, that is the nature of life, if you are a software developer. The main point people miss here is software is not built against the requirements; it is built against software vision, the abstraction of requirements. Also see the next question for our unique way of capturing requirements. Defining the architecture is definitely the art part of software development. It is particularly hard to do because it is usually contradictory with common engineering wisdoms. For example, even though we can never overstate the importance of teamwork, architecture is better d