Do you plan out your architecture before you write the first line of code? What I have found in every company I have personally worked at is; you have a list of requirements, people go and implement those with various degrees of quality, and you end up with something that works.
When I look at large companies with public facing APIs their documentation very often seems very intentional and well designed - for example, I found the following companies to put out documentation that is very crisp and easy to follow:
1. Stripe 2. Transport For London 3. Apple
However, I've never worked at a company where we sit down and plan out an API in enough detail that would produce a document like this. It all seems a bit haphazard and fluid.
Am I being totally naive, and looking at this from the wrong end (i.e I am looking at years and years of refinement and toil) or do people find themselves spending lots of time designing before writing the first line of code?