Dear new developer,
The more experienced I get, the more I realize that the hard part of software development (for the kinds of software development I do, primarily business web applications) is not the coding. It’s the communication.
You need to communicate, often among shifting parties over weeks, months or years:
- why you are building something (to motivate people)
- what you’re trying to build (to make sure builders have the same vision)
- how you’re building it (to make sure that builders’ various components work together well and are cohesive)
- when it will be done (so that all the follow on pieces of work–sales, marketing, etc can be scheduled)
Whew, that’s a lot of communication. But it’s important.
This piece, “Talk First, Code Later”, talks about the same problem from a different viewpoint. From the post:
After we all got on the same page, we made a plan, the other team abandoned their original change, and we agreed on the way forward. In one case, we shipped the new feature that unblocked the other team. In the other case, we coached the other team on how to implement the change in a way that we could accept the pull request.
It also has some handy tips on how to maximize communication when you are making a change to a system with which you have minimal familiarity.
The whole post is worth a read.