I thought agile is about schedule only? It is `not just planning` . Agile software development is more about being a adaptive planning, evolutionary development and a time-boxed iterative delivery which encourages flexible response to changes requested by product owner. Or am I designing incorrectly (with UML) - does anyone design by pseudocode? In my experience **charts are much easier to understand** from a client stand perspective. They are visually appealing and many times very colorful and easy to follow. However, it is very hard to maintain charts due to the nature of disconnect with the actual application code. Every time a change is made in the application the developer has to take the time to update all documentation including charts. **However**, that problem can be easily eliminated once there is a BA in the team or company, who understands client business process well and can manage the UML diagrams. Tools like UML can make this process easier but only works well with object oriented programming. Pseudo code is much easier for technical teams. The process of creating this code greatly increases the speed of the actual programming language development phase. There are some other alternatives that you may look as well: - Data Flow Diagrams - State Diagrams - Process Flow Charts All in all, there are some trade-offs that you need to consider.