In a nutshell, Systems Design refers to the process of defining the architecture, modules, components, interfaces, and data model based on a use case and/or idea. Before the actual Systems Design process can take place Fact Finding and Analysis must be done in order to determine specific requirements, processes and constraints etc. Once all the facts are properly documented the Design Phase can start.
This could be done by the client/stakeholder with the guidance of a web development company or freelancer (as a cost saving) , or for large projects the client can source a professional Systems Analyst. The Systems Design process used to be a tedious process during early years of software development when the Waterfall methodology was common, this has changed a lot since then with the adoption of the Agile methodology.
The Agile method is particularly beneficial for SME Web development companies, freelancers and clients who needs a more interactive involvement in the project, frequent delivery of work and to make changes throughout the development process, as apposed to waiting for the full completion of modules.
Regardless of the methodology, Fact Finding, Analysis and client interaction remains vital to the development process, to deliver software which adheres to the software requirements.
Like with most things in life, proper planning is vital.
The same goes for Software development, where if you fail to plan, you plan to fail. I believe in following a well defined development methodology, which includes predetermined phases and processes, and making sure that all parties involved understand and follow this methodology religiously.
Quality is not negotiable, all systems must be graceful and fully tested, if quality is a deterring factor on price then quantity should be reduced, but never quality. The development methodology serves one basic purpose; Expectation, as all parties know what is required and when its required.
Many developers underestimate the importance of a solid development methodology especially when dealing with small projects. This leads to many headaches, one of the most serious, under-scoping, which in turn leads to poor quality software, frustrated developers and clients.