My last commercial achievement was finding an Application development Tool fit for commercial development for my employer at the time , Logsys solutions, Wokingham , UK. I informed the them if they were ever to win e-commerce specification(s) then they should use commercial Tools such as IBM websphere and not the one I was sent to train to do servlets, a waste of time.
How to use Application Generator to successfully build Applications on time and in accordance with stated requirements is a wholey different story and my commercial secret. I picked up that tit bit from my previous two employers prior to this one. In the mean time I left the company to do protoyping in my own time because I realised I know all the concepts I need to know to build to large and complex systems successfully. if you have doubt that is a thing then just look at this report.
" Poor quality software cost an estimated $2.84 trillion in the US alone in 2018 "
Source CISQ: [Consortium for IT Software Quality ].
prototyping is very important for Application developers for a number of reasons. Firstly the more protoyping you do the more expertise you will gain your chosen Tool. Secondly the application developer will be able will be able to see the amount effort which was put into Tool Error Handler. The quality of the error handler is the difference between being self reliant or being stuck googling for answers or Stackoverflow. If you are experienced Application developer transitioning not to be confused with a beginner , even when you are starting out with a new product you will find product bug , even in a simple Hello World type prototype . Finding bugs when protoyping is the gist of protoyping.
The one product which does not need any protoyping is the Oracle database. It has two remarkable qualities which has it the success it has, the error handler which gives you cause effect and solution making you self reliant. The other is the quality and accuracy of documentation, which explains first the concepts then how-to instructions. On one occasion I was baffled when an interviewer was asking me some questions on it. I was thinking just give me Oracle and I can just get on with with it , what is this memory questions suppose to acheive. All you need to know is how to install it and then off you go, don't forget to change the default password.
The idea of hitting the plateau was first introduced to me by a project manager during a career development meeting. From his view focusing only on programming skills (Application Development Frameworks) would lead to hitting the glass ceiling therefore the Application Developer will remain as Juniors. In that environment Project Manager was not the most senior Lead role either.
I realised something else , If I focus on Application Development, find a Application development framework, train on it, within weeks or months I will meet the commercial requirement or as he put it hit the proverbial ceiling. More importantly hit the ground running. The objective of the Framework Vendors is also for the Application developer to gain expertise in a shortest possible time, the smart Tool Vendors have gone a step further, made their product open source meaning Free learning for Application Developers. This is the case with IBM's openliberty.io
Commercial experience is important so far as it lets an Application developer see why some firms remin in the race while others fall away. In my case I was able to appreciate firms like Smiths Aerospace and Defence are still going strong meanwhile other firms like bytel, slough who was initially very successful, then the new venture capitalists had no expertise in what made that compamy so successful, this one wrong decicon led to it closing its doors. Then there are firms like Logsys Solution who as far as I could see was never going to remain in the race for long.
There are surprisingly a huge number of people in the Information Technology who didn't get the memo about the hitting the proverbial ceiling. Still charging huge amounts for crash course training on Vendor specific Tools. Recruiter measuring expertise by looking at the number of years claimed by a candidate on a framework.
Source Grady Booch
" The United States Department of defence (DOD) is perhaps the largest user of computers in the world. By the mid-1970s, software development for its systems had reached crisis proportions: projects were often late, over budget and they often failed to meet their stated requirements. It was evident that the problems would only worsen as software development costs continued to rise exponentially. To help resolve these problems which were further compounded by the proliferation of hundreds of different languages. The DOD sponsored the development of a single, common high order programming language. The winning design was originally called the Green Language (so called because of its team colour code during the competition), later renamed Ada.
The DOD realised one of the reasons for their failures was not the Developers' abilities, but the demands made on the the Developers to Chop and change skills. In our case we need to focus on skills like the frontend or one full stack framework.
This was the first thin Client Architecture I came across. It was another effort by a database company. I call it K.I.S.S. keep it simple Stupid.
This Level 0 is from a book Professional Java Server Programming by WROX press published in 1999. The two most important components for the Application Developer is useBean (intra-process) and the EJB Bean (inter-process). This is where we put our business logic. One for scoping i.e. session scope (shopping cart) and the other for heavy compute engines (load transferred to other CPUs)
Microservices is the current approach to helping Application developers overcome the complexity stated requirements or Business Knowledge.
Some experts have described the motivation for microservices is that it makes the application small enough to fit inside the developer's head. Always blaming the Developer. Other experts like Martin Fowler advocate their is nothing wrong with first developing the application as a monolith then breaking up the completed Application into smaller Microservices. Fortunately I was lucky enough to be at the right time , right place with the right motivation. One of them is partially correct and the other is just nonsense and it is my commercial secret too valuable to share here.
Following my two HND computing course where I learned four different programming languages, enough to understand that they were differnt routes to achieve the same objective to an extent. I was hired for the next five years in a purely software development roles. There was one common factor in all three of my employment, at the beginning of each employment I was sent on a commercial training to course to learn a new programming language.
Smiths Aerospace & defence was my first employer who sent me to learn Ada at the first week, bytel sent me to learn first Open Road a 4GL then later Oracle Forms , another 4GL. Finally Logsys Solutions introduced me to servlet programming programming. It appeared to me I was always on a learning curve. In all of these skill set I learned the basics used them to get by. I was able to do that
I always assumed this was the norm in the software development, that is to say learn commercially useful programming tools from my new employer each time I would start a new job. I assumed that is the norm until I came across a programmer who had ten years of experience in Visual Basic and point blank refused to undergo servlet programming course.
Ten years experience in a complete development tool like visual basic is good and as a result he was chosen as the Tech Lead for a new project ging from paper based system to digital system. I did however notice that he had did not have the kind of exposure I had to software development practices therefore he was unaware the correct way to develop a software project. Something a Tech Lead must know because he carries that responsibility.
Around this time I discovered open source commercial products. That is to say I could learn commercially used products at the price of a book. I didn't have to make do with very expensive one week crash course.
This is led to what what be considered a highly contentious decision in Information technology. I was going to leave software development and find the tools and train on them. The tools I would train on would support the best practices I had picked up from my commercial experience.
Being trained on Software development Tools before join a software development, taking my time to train on complex framework and architecure, already knowing all the concepts would by my calculation make a Dynamite Application developer.
Booch: "Industrial Strength Software is beyond the intellect of a developer". I feel Booch is unfairly and harshly criticising the Application Developer. The first step to developing Industrial Strength software is the division of labour. In this divison of labour the system architects of frameworks spend years researching , developing , reworking , stabilising the framework. It is after that the Application Developer is required on learn and master the software development architecture in the shortest possible time so that he/she can Apply the framework APIs and in some cases setup the framework. It was I, the Application Developer was able to see the KISS, a commercial architecture was not suitable for Industrial Software when I had to do a work around so I can integrate the email facility, therefore I showed Industrial Software certainly isn't beyond my intellect. As a matter of fact it was after this experience I felt I, more than System Architects best suited to decide which framework(s) are best suited to use to develop Industrial Strength Application.
All these software Tools provider targetting their frameworks at Application Developers know that a limited amount of time will lead the Application Developer to achieve expert level plateau. Another words once reaching an expert level they can hit the ground running on a project.
It is my experience One cannot become a commercial level Application developer by just follow these documents. To get to that skill level, where a hirer cannot refuse to make you an offer, your must first apply it by building an application or a portfolio of protoype applications. That will get you to the plateau
I choose this framework as my main skill set in building database centric applications,this decision is base on my wealth of experience. There are easier and simpler choices available, this paradigm is designed to make the stated requirements easier for the Application Developer.
A selection of Microprofile application generators, you can begin the process of prototyping applications by going to the button marked ... :
don't forget the inspiration (above diaram) needed prior to the perspiration.
.. get started Microprofile .
.. get started Oracle's Helidon .
.. get started IBM's OpenLiberty .
.. get started kumuluzEE.
.. get started Payara fish .
.. get started Quarkas.
.. get started Community's SmallRye.
.. get started Spring.
Apache Webserver along with Tomcat Application Server websites may also be worth a visit. At the apache website finding the get started button is a bit more involved, it is Freeware. you may need to get a book to guide you.
The Java EE specifications for the above architectural blueprint in its current form can be found at the Jakarta EE. These specifications contain the Tool Vendor stated requirements . Of course the ever changing specification needs a work bench. The work bench is called glassfish
There is one easy way to find out the popularity of a Software Application Tool. You don't have to read any reviews or visit any conferences. Simply try out the product. The more bugs you find in the documentation, the more bugs you have to fix in the setup and startup phase of the software, the less helpful the error handler, the less popular the product. If the product was popular then other developers would have pointed out these anomolies and they would have been fixed.
Is there a need to place trust in the commercial vendors ? not if you are going to "Protoype! Protoype! Protoype!". You can do this by clicking the get started button provided. If you do go down the prototyping route you are at risk of reaching the plateau, taking you to the application developer the expert level.
I can't say how difficult the learning curve is for a complete beginner without any guidance but someone with five years experience + 2 years HND Computing, like me, this is part of the GIG economy. slightly bit more challenging than delivering pizzas,another GIG economy but manageable. I realised Application Dvelopment is a GIG at my first job when the up coming five years project was shelved.
As Application developers we need comparisons. We need to know if we are investing in the best product. This is a comparison of two Java based competing Frameworks based on the microservices paradigm. A comfort blanket for Application Developers
Comparative Analysis by Emily Jiang, IBM MicroProfile Consultant from the IBM R&D laboratory
How much can a developer's skills be worth if the developer is an application developer using one of the above mentioned application generators ?
Let's take this Shark Tank App as an example. The App is called BricksAndAgent. It is a property maintenance application. The Billionaire's son invested $750,000 in Software development cost. He wants now $250,000 for 10% equity from the sharks, which he gets, thereby making the app a $1 Million dollar app.
With a database design in hand, I would estimate it would take an application developer 3 months (add 20% contingency) to churn out a duplicate application with some enhancements thrown in. ssssh...
project duration 5 months; unemployed looking for another GIG after that.