I ask this, because tomorrow is my first meeting with the client, in which she tells me, what she is doing right now (by hand) and what it is, what the new web-application should do in the end.
I wondered, what I do during she shows me the steps of the process. Do I recognize use cases and model them directly? Do I describe the process in prosa? How do I describe/transcribe the process from real world to a modell which then is the basis for the code?
What is the best-practice to start with a new development for you? Any tips?
It’s all about process and managing expectations and very little to do with the technical. The mistake (imho) most clients make–particularly with smaller consultancies–is that they go for a fixed price contract (possibly with support being billed T&M: time and materials). They do this as a risk management exercise so it’s understandable.
The problem is that they are paying for that lower risk in three ways:
All of this serves to make the end result more expensive for the client, demotivating for the developer (who wants to write 300 page Word docs? Seriously!) and it delays the client actually getting anything (thus increasing the risk of scope creep, which is directly proportional to the length of the project).
Both parties would often be better served by taking the T&M approach combined with some form of rapid prototyping methodology with regular deliverables or demonstrations to the client no more than 4-6 weeks apart. This goes towards managing expectations. If the client can see something is happening it puts them at ease and lets you get on with the job (rather thans pending time in meetings going over GANTT charts).
So what you should do is try and voncince your client to go for a graduated approach (baby steps) where they can see what they’re getting, how it’s evolving and participate in the process. It gets results faster and is ultimately cheaper (with both parties sharing the risk burden).
One thing many developers also seem to forget is that they are like royal subjects in 15th century France. They may have privilege, even riches, and many perqs but they serve at the pleasure of the king (or queen), who can behead them on a whim. By this I mean that the client ultimately wields the power and you, as a developer, exist to make their life easier and not the other way around.
If the client wants a pink and green website developed in Cobol on Rails running on a virtual Vax/VMS server on the boss’s iphone well that’s what they get. Now you can use your expertise and experience to try and convince them that’s not a good idea but ultimately if that’s what they want you have two choices: give it to them or walk.
Too many developers fall into the trap of giving people what they think they should have, not what they ask for. BIG MISTAKE. Part of the process is to keep communication channels open with the client such that you don’t go off on a tangent thinking they want something (or deciding they should have something) when they’re expecting something completely different.
Even a small software development project can easily run into 6 figures. This is typically a large investment for whoever is paying for it. They have a right ot be nervous and you have a responsibility to make them happy.