title: How to educate a development manager about the difficulties of software design?
body: <p>I have had a few development managers who don't seem to understand or appreciate the difficulties of software design and implementation.</p>
  
  <p>Such managers believe that processes and methodologies completely solve the problem and I have a tough time explaining to them that it is not so and that you cannot read a book on the latest process fad and hope to get results by applying them as is.</p>
  
  <p>The latest frustration I have is to convince my manager to 
  (a) Give me requirements not piece-meal but a larger set as far as possible.
  (b) Give my team lead time to think about how to design, thrash out a few alternatives, work out an implementation sketch, to plan out the tasks etc.</p>
  
  <p>The frustrations are compounded because of Agile methodology and the interpretation of it that says not to do up-front design (as against BIG up-front design in Waterfall), product owner can change requirements at any time and so son.</p>
  
  <p>So far I haven't had much success and have to put up with the resulting frustrations.
  Can you give me some arguments that can convince such managers?</p>
  
  <p><strong>EDIT-1</strong>:
  Retrospectives are done, though not always at the end of every sprint, and the problems are brought up. But as I mentioned, my manager doesn't appreciate the need for design lead time and the frustrations with piece-meal requirements.</p>
  
  <p><strong>EDIT-2</strong>
  I don't have a problem with changing requirements. I understand that it will be so, but imagine this: You want a small feature to begin with and then you keep adding more around it. After a few iterations, the design cannot handle it anymore and a redesign (not refactoring) is required. This could have been solved better with an upfront design in the first place, had the related features been investigated together. Its not BDUF, its the natural way of doing it (what I call software engineering common sense).</p>
  
  <p>My manager doesn't understand why I ask for time to redesign (a few times I just call it refactoring so that it fits the Agile way of doing it, but it really is redesign) and not developing and demoing new features.</p>