This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I would be very grateful if you could please take some time to advise me on these two issues. I�m 30 years old (next month) and I have been working for a web development company here in London, UK since September 2003. I�m currently earning �23, 500.
1.I feel that this salary is very low for a person of my industry experience. The major problem with me is that I�m not good at discussing such issues with management, some people can stand up for themselves and complain in these matters but I can�t � it�s just my nature. When I joined the company fresh from university I was on �17,000. Then about 1.5 years later it went to �18,000, then �21,000 and finally it went up to �23,500 about two months ago when I politely brought it up during my yearly review. I told them that I have a wife and son that I need to look after and I could do with a bit of extra help.
I am aware that most of my fellow developers earn about �30k+. I spoke to three of them about my situation asking for their advice and one of them was actually disgusted that I could be paid so low. She wanted to actually go and complain to authority there and then but I told her not to do it especially as it was after a few glasses of beer.
Financially, the company is doing really well and business is booming.
2.The company that I work for does not care about the quality of the software which the developers produce. The only thing they care about is that it is delivered to the client and on time. Most projects are developed by one developer from start to finish so that only one developer ever understands how that application works. If that developer leaves someone else has to take it on for maintenance and it�s usually horrible.
There are no mentors. For example, about a year ago we started using .Net for a great deal of development and there was no training arranged in .Net for any of the developers. Most of the developers were classic ASP people and they suddenly had to switch to Object Oriented Programming just like that. You won�t believe some of the things that I�ve seen in our .Net projects I also developed an application from scratch in .Net 1.1 and I�m not really happy with the final product. However, it�s due to be released to the client soon but I have learnt some lessons from it.
I really feel bad about the fact that no one cares about software quality. We don�t even have CVS to manage code repositories. It�s chaos. I want to progress as a developer so that one day I can be one of the best but I don�t feel that this is the place where I will get this. I want to be an architect or maybe a consultant too down the years. It�s good that no one tells us how to program stuff as we can do whatever we want but I know that this is not really good because we can�t discipline ourselves as far as good coding practices are concerned.
Recently I had to go to a client�s office with two project managers and another developer to discuss how we were going to progress with a late project. There were lots of angry people there since the product was meant to be delivered in March but we are still nowhere near delivery. One person from the client�s team asked us for the documentation of the product and the developer I was with told him that �We develop the product first and then write the documentation when the product has been released�. I wanted to be invisible then as I knew that he had stabbed himself in the chest. The person simply replied �Well, that�s not industry practice � documentation is written alongside development�. You can imagine how tense the situation was. Now I have to go and document the .Net application which I started writing last year May!
The kind of developer I am
I am passionate about programming and this will never change I had a bit of experience in JSP/Servlets/Tomcat/MySQL after leaving university. J2EE is still my favourite technology but this is never used at work. I am a competent Java developer as I understand the fundamentals of OOP and my website is currently running on JSP. I also understand how to build swing apps - right now I manage my own Java swing application called �Geek Tools�. It�s meant to be a tool to help developers with their day to day activities and it�s meant to offer different tools which are selected from a JTree menu on the left. Right now it can connect to Oracle, MS Sql, MySql, MS Access using JDBC to show table structures and to allow users to browse database tables using JTable. I am very proud of it and that is mainly how I maintain my Java enthusiasm. Another tool is an LDAP browser. I�m planning to update my site to use Java Server Faces as well but time is not on my side since I�m a family man now.
Other technologies which I have learnt since joining work:
ASP, ColdFusion, Php, ASP.Net, C#, SQL and more.
Nowadays you can find me at my office at 1 a.m. trying to implement the DAO pattern in C# - something all my fellow developers would not know what it is without looking it up on Google Or I would be up scratching my head trying to figure out why Windows can�t see my Suse Linux Samba shares.
As you can see I�m a self-motivated learner. I know that I should leave but I guess I�m too comfortable where I am especially as I can even walk to the office if I weren�t lazy. Then there is also the fear of what will happen when I move on � I know a guy who left to join another company and the company went bust 3 months later. Scary!
I�m not a UK citizen but I now have permanent residency over here. This year I�m eligible to apply for UK citizenship and I�m 100% sure that I will get that.
It sounds like you are in an awkward situation, but at the same time, i prefer certain things you are involved with. I'm all about agile development and the least amount of documentation that nobody ever reads as possible.
You shouldn't tell a client that you "have no documentation", as they wouldn't understand, but I've worked on plenty of projects in the past where there were departments and special tech writers and it took over a year just to document everything and then, most of that documentation was out of date by the time it was released. Meaningless documentation is useless for everybody except your "Higher level people" who never read it anyway. It's just another thing they can pound on their chest about.
I also like being responsible for an entire application from start to finish. It gives you a lot of experience as well as the ability to wear many different hats.
I've worked on a project that I thought would be great for advancing my career and knowledge. A lot of smart people, a lot of work, and a lot of IT people. But in the end, people were more or less pigeonholed into doing one specific thing and as far as mentoring, if people had free time, maybe, but there wasn't much of that as there were tons of deadlines to meet.
I prefer smaller teams. It just works out better in the long run. Large teams of over 100+ people working on one project usually means you'll be stuck doing whatever you showed you were good at. If it's JSP, you'll be pigeonholed into doing just that. And if it's a project that might take 3-4 years to complete, that's a long time just to do one thing.
Whereas where you're at now, you might use C# today, maybe something else tomorrow. You get to develop and design things from start to finish. That is a great thing to be a part of and while there might be some changes you'd like to make, anytime you get to wear a ton of hats and are more or less the "expert" at what you do, it can be a lot of fun.
It's great to work for companies that have a lot of smart people around, but a lot of large IT departments and companies aren't that IT friendly. Google might have been great to work for and still might be, but there are also a lot of people who are now "google millionaires." And some people aren't as pushed or have that drive anymore when they know they have millions of dollars in the bank.
I think you should ask for a raise, if possible. While your situation might not be ideal, you could be stuck doing something small and pigeonholed and not be a part of anything. Just another meaningless number in a large company.
If you feel you can try another job opportunity, send your resume to them. You can also use this to negotiate with your current company. Search for companys which pay the salary you want, and then tell your current boss you've gotten a new job proposal. If they pay the same salary you stay, otherwise, bye. Of course there are lots of things beyond salary you must consider, like if your job is near your home, the possibilities of growing, etc. It is very easy, for a person with the knowlegde and experience you said you have, to find a new job. Besides, if it didn't work in your new job, you can return back.
I can�t � it�s just my nature... told them that I have a wife and son
With your IT skills, you will be able to find a better job. But I think that the way you negotiate with your company is not very productive. Maybe it's a good thing to improve on your negotiating skills before applying for a new job.
Using the fact that you have to earn a living for your wife and kids brings you in a weak negotiating position. Did your colleagues need such an explanation to get their - better- wage?
It appears to me that the main issue you are facing is lack of proactive career management. Think of managing your career as running a company. You need to have a quality product (skills/experience), find out the right price of it in the current market (wages/hourly rates), market it (networking), and find buyers (companies). Another thing to keep in mind is the timing, for example the tech market is booming right now, and this would be a good time to find another job that better fits what you want.
Decide what Your goals are, see what resources you have and what new resources you can acquire, and then come up with a plan for achieving those goals.
Search this forum for older posts on similar topics. Some of them contain good advice, esp. about importance of networking and other soft skills. Do a little google blog search to see what other people are thinking/doing. You will find plenty of good ideas and advice.
I do not know what salary would be appropriate as per your experience.But if you feel that what you are drawing is less then quit the job immediately.I am ready to compromise on salary , provided I am satisfied with my job and there is a good amount of learning.
As in your case you do not have even this. But before making the jump make sure that the work in the new company is good and challenging enough to keep you happy.
Thanks very much to all who replied. After digesting all the information I think I should stay where I am and develop myself as a developer before thinking about moving on. Money is not everything. I have many things that I need to learn it seems such as negotiating, networking etc. So I will stay...well for now.
Thanks again, you really helped.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com