Build Business Logic in Minutes, Not Weeks
copperthoughts.com
copperthoughts.com
"I want it to work like A." code it up, find twenty edge case potentials "Well, 3, 5, 6, and 7 can be solved like this, let's guard to make sure 1, 3, 8, 9 never happen, 10-13 can never happen, and let me get back to you on the rest." code it up, notice a few more edge cases. Lather, rinse, repeat.
Along the way, one of the edge cases will show me that what they really want is B, and time and budget let me know if we start down that path.
Having a system/body of knowledge to map requirements to implementation is really important.
Specific to software engineering, this process is best supported with BDD and TDD (in my opinion). BDD gets you 100% coverage of behavior: what the "customer" wants. TDD helps you cover edge cases which improves on robustness (which is the process you are describing above).
Coding before you have behavior (what customer wants) is, in my opinion, a bad idea (product market fit first).
Any type of development approach, ill-relevant of it being coding or visually oriented, is going to be iffy without using best known practices.
Now, if you are doing R&D then I would ignore the above process of BDD/TDD with the understanding that any code/program written would be "thrown out" (not put into production).
My experience with workflow engines (as a developer) has been ... not great. They are hard to debug, and difficult to code once the logic gets complicated.
The main difference is it's an extended state machine, not just a workflow engine.
It's similar in functionality in a few ways, but quite different from a WE in many more ways. A workflow engine has a subset of a state machine's functionality, hid behind a layer of abstraction that complicates things.
These networked extended state machines can be composed and nested, and as such, I think they avoid a lot of the complexities of a WE. I'll be going into more details on all of this in subsequent posts + a video, hopefully soon.
I mean I get what's going on here, but the syntax clutter drives me nuts.
[["if", "eq", "decline"], "Pending Response"]
I've signed up to your mailing list anyhow. (Khuram Malik)
Look forward to chatting to you.
See http://www.thingamy.com -> "process engine"
(not associated in any way, just used to read and like their blog for some time)
gem install state_machine