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.