5 hours ago, Fulcrum.013 said:Any software intended to simulate/control some kind of process (bussines/industrial/informational). So really key is determining of target process rules and required tools, of course by contacting of individuals that making process himself currently and individuals that have to implement process automation.
Individuals that making process is one kind of customer. Usually this person is someone who paid the developer to work on this item.
5 hours ago, Fulcrum.013 said:Working software can not be implemented without complete description of target process rules in form of mathematical/logical description or/and information schemes.
While this is true, quite often the requirements is completed. Documents are quite often up to interpretations. Most developer cannot read the most complex financial business rule or confusing law (trust me, I'm in this area of business). It's then the customer chime in to help evaluating whether or not the implementation is correct and precise. In this case it's the legal department or a head of business unit requesting IT to help implementing business rule in the enterprise application.
Again, customer does not necessarily mean the end user. This is especially true in game development (most of the time it's game designer in this context).
Of course, getting the end-users in would help in the user-experience area.
5 hours ago, Fulcrum.013 said:Customer is not able to determine rules of target process himself and have no ideas how to implement automation of process. It is just not his field of competence. Otherwice he just don't need to involve third parties for software creation.
Most of the time, the customer have an idea on the end product. They might not really knowledgeable in terms of implementation, but at least they know what they want. And if they don't really know what to make, we can work with them continuously until we come up with the product they really want in the end.
5 hours ago, Fulcrum.013 said:Professionaly made software do not require any changes until task field universal rules changed. Changes that fit into field rules, have to be implemented by a data-driven, end-user ajustable way. It is must have option for any algo.
The exception here is the universal rules is not always well known at the beginning of the project. The customer might have a vague idea (as I mentioned above), but they might not be able to state clearly what they want. It's up to the developer to work with them until we reach the point.
I think, the 'working with customer' idea is actually happening in game development all the time. When I was a game programmer I often ask the game designer to sit right next to me (he is the customer, I work for him, in this case), playing with the 'just-implemented' feature (most of the time... with bugs and mock-ups). He'd had feedback, and I change the code to accommodate them. We work together until we satisfy with the outcome, then move on to bug hunting and getting in the assets, and of course then retry again (yes the artists'd have to reiterate his assets to fit well with the game too). It's not like I have to complete the feature before I ask him to try.
With that said, I'm no expert in the field (although I'm wearing Agile66 shirt ATM). Experts in this area might say something else entirely. Who knows.
And, as far as I know, Agile methodology emerged from Extreme Programming practice. Some might find the XP interesting to read, although XP is entirely technical.