Many of us have been confronted with clients who basically look for three things:
- Operational efficiency
- Resource Integration
- And, uhhh, the most famous by now, in the era of “big data”.. better decision making
Yes, right, this is what enterprises look for when considering implementing, changing, using any system. On the other hand, the industry promises that there is a single application that can help with these three wishes.
So, essentially, we have one side a dreamer… and on the other side companies that sell the idea of making that dream come through. They have marketing around this idea, experts, consultants, a set of business rules, etc.
Today, the enterprise world is full of RDBMS without integrity, high lock-in, paranoiac vendors with many strategies, etc, etc.
Companies that believe they understand the business and hence, have created a “model” for it which now they try to implement.
You see this pattern not only in systems. You see it every day in everyday things like education, social media, etc.
Designers love to divide a problem in order to simplify it and then base on it apply it to solve bigger problems.
Marshall McLuhan, 1963, once said, “we shape our tools, then our tools shape us”.
And so, our generation created the concept, which has the usual IT jargon, that nobody really has seen it at its fullest, ERP, Enterprise Resource Planning.
No wonder why for the past 10 years, the popularity of different programming languages has increased.
Yes, I know Coldfusion is not that popular in the mainstream, CF is kind in the middle.
But please look where other JVM languages are in this chart.
If businesses are in fact using one single application, then, by now, we will have one programming language to rule them all?
Well this is an empirical observation on, what I have seen, that essentially reflects that not a single application can fit the rapid changes industries are facing today.
We have reached the point that software vendors ask us not to worry because “business practices” will take care of everything. Do we really believe this?
Software engineers build conceptual models. That is what we do.
Painters make models. Photographers make models. Yes, you can take a picture with 10 Megapixels but still it is just a model that “looses” details.
Process integration is not achieved through one single application. We can build large buildings and towers, but we have not been able to find a way to fight system’s complexity.
Look at Notre-dame it took 100 years to be built
See Obamacare and I am not making any political statement here.
Yes, right, IT industry only started 50 years ago.
And here ERP vendors want to convince us that they have “business practices”
I am not writing about accounting financial standards. Everything we do have to be modeled in order to target the masses. If you are not following the “standard” then you do not have value.
Designers use analogies all the time to make models; Vendors use them too. Once I heard that SAP for example closed a millionaire deal selling its product to a similar manufacturing beer company as everybody else in the industry also had SAP in that area.
Yes, we have reduced competitive advantage to the point of using the same software as a commodity, as the competition under the assumption it will yield the same results.
As I said, this is happening everywhere, if you are not “certified” then you do not have business value. In enterprise software, software that can stand the test of time, this mindset is counter-productive.
Clients then face a dilemma on what to do: buying out of the shelf, or from scratch, cloud computing or on the premises, customization?
Houston, we have a problem!
My thesis statement then is “Enterprise software is NOT a one-size-fits all product”. When I say, enterprise software I mean budget, planning, procurement, production, accounting, etc.
Well, in 10 years building enterprise software, and even, trying to make sense out of, sometimes, irrational requests, I can say that only in rapid development and prototyping we can contribute to respond one of the deepest questions in computing.
We have to ask ourselves this question: “how can we build complex software simply?”
For sure chaos theory can help. But, at this time, humanity does not have an answer for it.
Marshall Mcluhan said once “technology is the extension of the human body”. It is really an interesting analogy that sheds some light
Gerald Weinberg has dedicated his life to tell software engineers that programming is a “human activity”
Cusumano makes the case that software is shaped through the culture where it is being developed. So, software from Israel then tends to be related to Security for example (e.g. CheckPoint)
12 years ago, we looked for a rapid and robust, development tool.
A tool that was able to adapt to the fragmented, rapidly evolving environments of the businesses we work with today.
A tool that could bring the human component of software into play.
We picked ColdFusion. A yet, a programming language that has been heavily criticized for the past 15 years. If you have been long enough doing programming in ColdFusion you, for sure, have heard that CF will die, that it is too old, etc, etc. Designers do analogies right? Well, here I have one for you.
Coldfusion at times reminds me the role of woodpeckers in the forest. Somehow this analogy helps me to focus on the things that matter in enterprise software.
Yes, that is CF story. CF is a hero in the forest of other bigger players. It can focus you on what matters.
Coldfusion came naturally since effectively allows you to invest more time on interacting and understanding requirements than on really doing programming; A language that does not care to ship on the very same product SENCHA EXT JS and JQUERY or YAHOO libraries.
I am glad Coldfusion does not force standards of any kind for this very reason.
Coldfusion does not force any framework or programming style.
Essentially, this is how I see Coldfusion. I have been in projects where the strong competitors, .NET, ORACLE, etc, have failed miserably, due to two main reasons they are not able to reduce delivery time; they have long production cycles surrounded with methods such as UML and other fancy stuff. They focus more on documentation than in getting the job done.
Yes, I know, it sounds like the agile manifesto, is not it?
Well, we picked Coldfusion for being agile, for breaking the standard, for standing out the “classic” languages and offer to allow designers to focus on what matters above any library, framework or methodology.
Coldfusion allows you to build software with or without frameworks. This is the beauty of it.
For sure, there are more languages but just a few allows you to focus on functional knowledge. It is, for me, a woodpecker.
We do not follow frameworks we follow principles.
We follow information planning principles to fight chaos. Information planning is a management instrument to make information supply manageable in terms of time, quality and costs.
We use functional layers, we never accommodate to language layers.
Anything that Coldfusion does to generate client output, we refrain from using it to the exception of cfwindow which is tied to EXT JS and we are even considering to remove it.
Now, why productivity is important? it is important as having RDMS with proper structure and data integrity is king in this business.
ColdFusion helps with human interaction. It essentially closes the gap between users and developers. You are better off close to nature than sitting on a cubicle.