Before I provide advice, I try to understand the people around the
system as well as the system itself. A useful project needs to consider
the owner, the team using it, the customer affected by it and the
processes that already exist inside the organisation.
That is where a custom software developer can add value before a line of
code is written. The important questions are usually practical: what
information is trusted, which steps are repeated, where errors appear,
what reports are needed and what would make the work easier for the
team next month.
As an integration developer, I also look for the handover points between
systems. If a requirement depends on another platform, an email
notification, a scheduled import or a supplier feed, I want those terms
clear early so the design is realistic rather than optimistic.
I am not trying to provide a large agency process in smaller clothing.
I am providing direct technical help with enough structure to protect
the result: clear requirements, plain communication, sensible scope and
support that still makes sense after the first release.