Certainly, they could be improved. As he said, they were “RPC-style” interfaces, despite our stated goal of following REST principles. Indeed, I had cooked them up in 45 minutes one evening. They did support the client fairly succinctly, but would almost almost certainly break if we made any design changes, or tried to write a second application (which we will soon).
So I gave him the go ahead to rewrite the interface. He spent the day writing it anew along REST principles. I haven’t reviewed it yet, but I’m sure its much better; also, having created it, he’ll be much more productive writing the client.
So why did I drag my feet? Because I believe in Doing It Right (or putting in significant effort to get it right) the Second Time. Not the first time, and not the third. In particular, for an interface, thinking hard about what the best abstractions are is best done in conjunction with writing the 2nd client. Its often worth *not* doing for the first client, even if this means parts will have to be rewritten.
This isn’t a hard rule (note that I caved to my developer rather than argue). Also, for tasks you have already done before and know how to do, by all means do them right. But for new, exploratory work, it is nevertheless a good tenet. The intuition is the same as for pairwise testing and binocular vision. To tell the difference between phenomena and epi-phenomena often requires more than one perspective; much more rarely, for the main outlines at least, does it require more than two.
Hi, I do believe this is an excellent web site.
I stumbledupon it 😉 I’m going to come back yet again
since i have bookmarked it. Money and freedom is the greatest way to change, may you be rich and continue to help others.
Having read this I believed it was extremely enlightening.
I appreciate you finding the time and energy to
put this information together. I once again find myself spending
way too much time both reading and posting comments.
But so what, it was still worthwhile!