Programmer: 90% Do maintenance 10% do development this normal?

Source: Internet
Author: User

This translation comes from a question on stack exchange that resonates with many developers. Many times, as programmers, we do not spend a lot of time in the day-to-day work of writing code, but constantly in the maintenance of a certain age of the system, constantly correcting bugs, maintenance of more and more projects. If we want to improve the existing code and refactor the system, sometimes we can't get the company's support.

Is it normal for the questioner to claim that his remuneration is very low, but he is working at the level of the development team? Are all developers like this? The following two replies have been identified by most developers and want to learn how to communicate with the company's top executives?

Tiredprogrammer June 12:

I do Web development in a medium sized company. In the beginning, my task was to extend an existing application (the code for this project was very bad, it was developed by several programmers for several years, and they handled the same tasks in different ways, and there was basically no structure to speak of).

When I succeeded in extending the application to the requirements, the company let me be responsible for the maintenance of the application full-time. Of course it's okay, maybe it's just me thinking. But the company has forbidden me to improve the existing code, just let me concentrate on solving bug--if there is a bug report.

Since then, I have taken over 3 projects like this, and now I have to work together to maintain them. After that, I was assigned 4 more projects--this time I can create the entire application from scratch, and of course I have to maintain these new projects.

Now, I'm going crazy with my daily email, and every application I have to maintain is the same. The company wanted me to deal directly with the issues mentioned in these emails, and I dropped 2 new projects (5 projects have been queued after that). The cup is, I have not received any bug reports for my own code, but occasionally there are some brain remnants that want to completely subvert the original needs.

In any case, is this normal? It seems to me that the work I do alone is top of the entire development team. That's not what I was expecting, is it? I guess this post could be a big controversy on the web, but please tell me that not every programmer has encountered me. P.s. My salary is almost as much as that of a supermarket cashier, if not lower than them. (Highlights ...)

Acattle last edited on June 13:

When I was in the internship, I also found that a lot of time was spent on solving bugs. You have to realize that as a junior programmer, you can't get a more challenging job, and you have to dirty the dirty work that nobody else wants to do. This is unfortunate, of course, but this rule applies to all work.

Also, you have to realize that for a company, code that works is far more important than clear code. From the point of view of your company, it's a waste of money to modify an existing code base, you're just doing what you already have, and it's likely to lead to more potential bugs. Usually this type of company is not a computer/software company, so the senior level lacks the technical background to understand the meaning of the big changes you are going to make. In other words, if your company is a technology company, managed by skilled people who can understand the value of good code, you may have more leeway, although sometimes you still have to choose the battlefield (after all, the main purpose of business is to make money).

That is to say, it is unreasonable to leave your present job and expect to get more meaningful work. It is also regrettable that you have to deal with the requirements of various project managers for each project at the same time.

As a programmer, the truth is that you spend more time maintaining and modifying other people's code than when you write your own code from scratch. If this is difficult for you to accept, maybe you should just take development as a hobby and then choose another industry to make a living. If you have no objection to the maintenance code, but feel that the job does not give you full play, or feel that you are being squeezed out of work, then you need to discuss your work with your manager. If your problem is worse than this, or if you feel that the manager doesn't know how to manage your work effectively based on your skills, it should be a good idea to consider a new company. According to the low salary you mentioned, job-hopping may be your best choice now.

Péter Török last edited on June 13:

It seems that management is having problems with the choice of task priorities and the management of the workload. You should talk to your manager and let them know that your work is overloaded, and that if everyone comes along and asks you to do what they want to achieve immediately, you won't be able to work effectively. That will allow you to jump from one task to another and waste a lot of time switching thinking. For efficient software development work, you should only devote yourself to one task. The more interruptions and distractions you have, the more time you spend on switching to the environment. Research has shown that about 15 minutes can bring you into focus, and your mind is the most efficient. If you are interrupted every 15 minutes, you will never be able to concentrate, which is a huge waste to you and the company.

So you should try to communicate with your manager to achieve a more reasonable mode of work. This should include prioritizing tasks and planning in advance to some extent. All user requirements should be recorded on the list in order of priority. Also, priority should not be specified by the initiator of the requirement (naturally, everyone will think that their needs are the most important in the world, and it cannot be decided by yourself, but by someone who has enough business knowledge and has a global understanding of the products you maintain. Ideally, all request requests should be entered into the problem tracking system such as Jira or Mantis, or at least send a message to the product manager instead of sending it directly to you. It should be up to him/her to take care of "why is my demand not yet complete?" Such users complain, and let you focus on development work. If this situation is difficult to achieve, when you are dealing with new requirements, you should at least communicate with the manager for a period of time, you can not be disturbed during this time, only responsible for development work.

If the above approach is feasible, the next step should be to plan ahead. For example, estimate how long it takes to complete the highest priority task, and then divide your time into "sprint stages", each of which may be 1 weeks or weeks, to meet enough tasks for your next sprint phase. You may also want to keep some time to respond to urgent needs, but the rest can be planned ahead of schedule. You may also want to divide the work of different projects into different points of time, for example, Project A is scheduled to be resolved on Week 1, Week 2 to Week 3 is Project B, week 4 morning can do Project C, PM can do project D, etc., so as to further reduce the switching between tasks. In this way, you will have a rough idea of the tasks for the next 1 weeks or weeks. In addition, it also provides a roadmap for your customers: they can see when their requests can be resolved. You may not want to mention the word "agile" to your manager-it's basically agile development, but some people don't know what agile development really is, they just blindly object.

Although your current position seems to be underpaid, the more projects you maintain, the more you have the capital to communicate and negotiate. For the company, it takes a long time (money) to recruit a new person and train him to maintain all these projects. You can legitimately point out that your code is much better than the original part, so in terms of the company, they can't easily hire a suitable candidate to do the same job at the same price. Not to mention that if they don't improve their working conditions, the next guy they hire will soon be as tired as you are and quit. Try to make the company understand that keeping you happy is best for your company. This will give you some capital to negotiate with the company and ask for a raise.

How much capital you have to negotiate--that's a big problem. Management may or may not have enough respect for your request. But if you hold it good enough, you have a chance. If they refuse, you can always look for a better job. This is not the same for every rookie in the workplace, although (sadly) your experience is quite typical. But there's always a better place to work. The quality of the workplace has little to do with geography, but it gives me the feeling that you can get more opportunities in northern Europe than on average. So, if you can't significantly improve your current working conditions before you're fully fed up, you should start looking for new jobs right away. It's always good to ride a donkey, so you don't have to accept your first offer immediately for money. Eventually you'll find a better place to be.

Stackexchange compiling: Bole online-Chen Yu

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.