by Scott Millett
If I could offer you one piece of advice (apart from always wear sunscreen), it would be to do your utmost to understand your domain inside and out, share your stakeholder’s visions and goals, and sit as close to your domain experts as possible. If you follow my advice, then you should find software development nice and easy. Okay, so you have to learn the framework and language syntax, but after you master them, everything else should be relatively simple.
So, if development is easy, why do so many projects get in trouble and fail to deliver what the business needs? The reason that projects fail is not because of a lack of programming ability or technical expertise, but rather because of a lack of understanding, communication, and business knowledge.
This lack of understanding stems from how developers capture knowledge of the problem domain they work in. Put another way, if developers and customers cannot effectively communicate, then even with the most accomplished programmers in the world, you ultimately cannot satisfy the needs of your customers.
This chapter is about refocusing efforts on how requirements of a system are captured, how customers communicate those requirements through user stories, how development can be driven from the language and features through behavior-driven development, and, ultimately, how software can be delivered to meet the needs and expectations of your customer.