At my time at Vodori, I went through phases of developer maturity. I started out relying on my coding chops to get me through my tasks. This was, as you could imagine, very short-sided. I drowned very quickly.
In the example of our largest international client, I was tasked with building a template. Which would include many individual modules like buttons, containers with columns, forms, etc. When I built out the buttons, I did not accommodate for long strings of text. So naturally when this template went to QA, the defect was discovered.
The mistake I made here was that I didn't know how far the internationalization reached within the app. If I would have taken the time to read the admittedly long-winded, but very informative wiki on the client goals, and how we're helping them reach them, I would have known that we need to accommodate for long strings of text everywhere! Whoops.
After making these mistakes early on, I began spending more time on our company wiki reading up on the client history, our dynamic with the client, what they want to achieve, who their customers are, and many more topics. Having this knowledge proved to be very helpful in coming up with solutions to code problems, and building features. It also helped in prioritizing features and bug fixes as I now had an understanding of the weight of different parts of features based on the client's goals.
While it may be annoying or time consuming, make sure to take the time to understand your client and their business. It will give you ground to stand on when proposing solutions, and it will make all processes smoother.