There's a lot of talk these days about software factories. And books about software development borrowing from practices and processes used in automotive manufacturing. This is based on the premise that developing and delivering an application or functional enhancement is as complex as building an automobile, or locomotive.
When one is working in an IT department, however, many of the work requests that arise are actually fairly simple. If one then takes these simple requests, and treats them as if they were complicated, they become complicated. And this complication leads to extended delivery times, and large expenses, and increased risks of failure.
Here's the analogy. When one orders an automobile -- and they can manufacture it to order and deliver it in only a few days -- that's impressive. But when one orders a pastrami and provolone on rye with roasted peppers and a pickle -- that estimate of "only a few days" starts to seem a trifle excessive.
We don't have methodologies -- even "agile" methodologies -- that model application delivery in an IT department (or even a part of it) like a delicatessen. Every sandwich order may not require baking the bread, smoking the beef, growing the peppers. Inventory management in a delicatessen is not quite as structured as in an automotive factory. So when somebody from "the business" requests an application from IT -- and gets something within the day -- it is cause for astonishment.
I'd like to think that with the proliferation of modern tools, libraries, frameworks, and environments, that we could be as responsive -- sometimes -- as the counterman at the deli.