I am a pursuer of beauty. Aesthetics is very much a goal in itself. Whatever we are doing here, it is far more satisfying when it is accomplished the right way the first time, with a deceptfully simple brilliance motivated by simplicity.
Each one of us leave a noticeable fingerprint on the things we create.
Mine is to have a well used resource and a fairly decent result.
Software is an industry like many others. We have the tools, the concepts and meanings to achieve goals. It's safe to say there are roughly infinite ways to do it, from the choice of tools to the particular team assembly and assigning roles to each member. Using the right tool for the job.
There is a lot of influence involved, from the authoring pride to the final concept, in the software development process.
I find the comparison of development tools to Lego bricks very meaningful, as early described by Douglas Coupland. The assumption that lego bricks are used to play with and to create sets that resemble entire worlds. As such, I have been using these bricks since a long time ago and dealing with many species as results. Some of them monstruous, some tiny and some of them pretty useful and, nevertheless, beautiful.
The bricks are the pieces of software. They have no sole meaning. They need to be part of something. As an individual, they don't make any reasonable sense.
So I've been playing with them. In many flavors. We are building our micro universe from the code entropy as we build the motherships with Lego blocks.
The reason why we play is because we like it, we enjoy the experience and the accomplishment. Sometimes the construction itself is worth it, and the final product is even immediately destroyed to provide salvage parts. Sometimes the code is deprecated and leaves just the evolution concept involved in its creation. Nothing is ever thrown away.
Lego bricks are sold in a variety of presets, which are joined to form a bigger set, always far more powerful than two separated, meaningless sets.
So, what is the veredict? Should I create my set using pre-built bricks? A framework is a pre-built, more or less closed piece of software which is intended to be integrated to our own product. There are plenty of solutions doing the same or very similar tasks to our own internally born solutions; How to detect when is it time to buy the ready-made or when is it time to put our creative skill to accomplish some award winning, from-scratch amazing feature?
I guess pre-built solutions are kind similar to "star wars set Lego". A lot of pre-molded cast features, and unique-purpose model. As a player, I get sactisfaction both from the act of building and from the end result - at last, profit from it is high efficiency and pride for its beauty.
My screenplay is far different from a jedi trip.
From the industry point of view the closed solution pragma used to mean more control over the results, even if open sorce. And to end user development the pre-built brings fast implementation, the acquisition of a ready-made as a fast track to operate. And as side effect, a lot of bloated software intended to be the Component of the Century.
I for one do not want to build the mothership from scratch. I just want to grant myself the choice of the best parts to do it.