Whether to work on customization project or move to some development work.
My last 2 project were development work.
My present manager says that most of the work is like this in other companies too and he wants that I should learn the deep insideout of the product. How thing works inside? Although I know much in detail about it but the work should be like this that I should know the tablename and fieldname, query,methods of each and every call whether it is a part of my module or not.
So this way I am gaining my experience in java or in the product. I hardly write much code in it. Most of the work in copy paste because the product is already been developed.
If there is some performance issue then also I can't change the design of the page but have to work on how much i can increase the performance with same design. Lot of sub queries are written but we can't get them in to java collection classes or stored procedures.
I think we learn much in development work then in customization where we just copy paste someone else code. One has to document for each line why it has been written. Customize the test cases. Clear the TPR.
My manager says that we can not always involved in development projects so customization and maintenance/support project are key area of the growth(onsite/monetary wise).
I want to know that most of the onsite job(development work in US/UK) are related to support and maintenance(copy/paste) or development work is still there. And How much it is important to be a functional expert(domain expert) rather then a technical expert.
I have SCJP, SCBCD with good experience in j2ee(mostly open source framework),web services, AJAX.
These days to keep in touch with latest technologies, I have to develop dummy project on my own at home.
This ways I am going toward success or just time passing with present job.
The support that you have mentioned here is not a real time application support. This is just another product customisation support. To be part of development work or with application support is not a big deal as such the technology is concerned. In both the case you will have the learning part attached to your career. But the one you have mentioned will not have much of learning curve, since its already a built product. You can ask your manager to place you in other devl project, once you have a capable replacement for you. Till that time make sure you have the continous learning process in place.
Being a domain expert will help you a lot. That is the kind of skills the industry expects from you as an experinced programmer. So concenrate on the domain that you love and excel in that.
Many IT jobs are what is known as the maintenance of an existing system. Yeah it's nice to build new software and systems, but the fact is, many organizations are growing tired of paying for software that might take 5 years to make. So they maintain what they have and update it here and there. While not always the best scenario, it is what it is.
Unless you work for a software company that builds new software and releases it, and even then many of their projects and products aren't always brand new systems. It's new software built on top of existing systems and engines and frameworks.
The fact is, if you do not like the idea of maintaining a system, the IT world probably isn't for you. Most of what IT is and the money spent is on maintaining systems. Yeah there are plenty of new software created, but like I said, many of the new software releases isn't exaclty new development either. Yeah it would be great to create new things and new software all the time, but after companies spend billions of dollars on IT, they aren't too keen on spending another billion because some new software was released.
Most new releases aren't new software. It's fixed bugs, new patches, new features, but for the most part, it is the same software.