System Design

Gathering requirements and helping clients shape and define their project is my favourite part of the development life cycle.

Oddly it's often the part of the life cycle developers hate. I find engaging with the client and unlocking and realising their idea/vision is incredibly satisfying.

For large projects I view gathering requirements and writing a specification a project in itself. Once complete the client has a detailed specification and the freedom to take the it to other companies; although that not happened yet!

Starting a project with clear, well written specification speeds up development, makes deadlines easier to hit and ensures all parties know where they stand (avoiding any unexpected surprises). In fact it's those unexpected surprises that cause projects to over run and developer-client relationships to fall apart.

Just don't start calling me a Business Analyst, I still love developing.