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 that developers hate. But 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 it to other companies; although thats not happened yet!

Starting a project with a 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.