Wednesday 4 November 2015

Week 6 [02.11 - 08.11.2015] Should programmers be productive at any cost?

I’ve always associated programming with looking for more and more effective methods of solving problems, continuous learning and improving one’s programming skills. I usually tend to have some vision of how I would like to carry out my task and what I could use in order to do it quickly and properly, even if it required to investigate the particular field more thoroughly. The problem starts when the superior demands  I complete the task as quickly as possible and he doesn’t see the benefits of learning new and more effective ways of coping with that problem.

I often meet people who assess me as an employee only by the speed I carry out the tasks I’m responsible for. I’m irritated by this fact since it killed my productivity and work motivation many times. When I’m given a new task, I never have enough time to find a better way of solving it as I always have to follow the most widely-held opinions on solving that particular problem even if the programmers in the team know that it is erroneous. It stems from the fact that a lot of people give in and reconcile themselves to the fact that the superior aims at the highest productivity of his or her employees. Those people stop thinking creatively and looking for more innovative ways of solving the problem as the superiors wouldn’t appreciate it and even they would reprimand their inferiors for prolonging the realization of the task. Such employees often don’t realize that the technical debt in their projects increases dramatically because they reckon that their product works just fine. They don’t view that giving the employees more time for completing the product would give them the possibility of finding better ways to improve it, which could result in speeding up the time of adding new functions or rectifying mistakes as well as improving the overall product condition in the future. It would also enhance employees’ engagement as they would know that their effort would be appreciated. It is highly likely they would spend more leisure time on brushing up on their skills in order to excel later. It often happens that employees want to outrun their colleagues in completing the tasks and as a result devote less and less time for doing it. When superiors see such a situation, they may be satisfied, which may trigger a considerable decrease in the quality of completed tasks.

If you’re a programmer and have such a boss, try to make him or her aware that his workers productivity isn’t the only thing that matters. Remind him of some difficult situations from the history of your project which could be avoided if you changed your attitude towards your work. If you’re a superior, try to pay more attention to the product quality and give your employees the possibility of showing their creativity and skills.

1. Does your boss appreciate your creativity? If you don't work, do you think it would be frustrating for you if he or she didn't?
2. Do you think that you could be creative and highly productive at the same time?
3. Is creativity important in programming?

17 comments:

  1. Oh yes, this is so my kind of post.

    I consider myself as a perfectionist, and I'm always trying to accomplish the objective in the best way I possibly can.

    However, being "creative" is not equal to being not productive. You see, the first thing you should always aim for is to "make it work", better or worse, but make it so. Then, when it does work, you usually make it work better by implementing more and more nice ideas so particular thing does not only work properly, but it works perfectly.

    For instance, I've been reverse-engineering Steam protocol yesterday and found out that if too many bots will try to log in in the same time, Steam will temporarily block given IP address for an hour. First step was to make working solution, so I used the most evil Thread.Sleep() in order to slow things down, then when I found out it works, I rewrote the idea to sleep asynchronously and limit requests using slim semaphores rather than stopping whole thread.

    Now onto your questions.
    1. Yes, definitely it would be frustrating for me because I hate myself when I see that my code is utter trash and I can't do anything with it, either because of lack of my time, lack of skills, or specific particular case that can't be done better.
    2. Yes, the more experience you have, the more creative you are too. It's much easier for me now to find out excellent idea that might work, rather than 2 years ago when my programming skills were much worse.
    3. Definitely, writing better code is always important, and the better code you write, the better it will benefit in future.

    ReplyDelete
  2. You know I was in the same situation as you were. Maybe it wasn't a reprimend in the end if someone tried to create some quality code but still we had no time for creating something good. After some time, we had some major fuckups - something like making a serious breakdown of the system - because the business guys (bosses etc.) gave us a task to create a subsystem, which wasn't really tested and data of actual users was corrupted. We were threaten, that if we do not do our job correctly we will be asked to leave the team (sick!) but then we made them realize that they made a stupid decision of enforcing this subsystem. After this they gave as a free hand on this one and what we realized is that we need to rewrite the whole application because it's just mess.
    So after this story what I suggest is that you should change your job, sometimes you just can't argue with business people. Maybe you will find a boss who is also a programmer ? I did and it's working good ;)
    Your questions:
    1. Now my boss appreciates my work, I have lots of time to create some good code and to write tests. I think it's the worst feeling that u create a code that you know, you are not happy with this one and you wouldn't reuse it because you just can't.
    2. Yep, as Lukasz said: the more experience you have, the more creative you are too. It's very true, programmers are people who learn all the time, you will eventually become very good in some time. You will find better solutions because you encountered that problem before for example.
    3. Of course it is, creativity gives us more reusable apps, more technologies, more new ideas how to implement/deploy/test our code :)

    ReplyDelete
  3. The most annoying thing is when boss don't have abilities to motivate people. That kind of boss don't know how to appreciate you're work. It's hard to be productive all the time without someone who at least pat yours back

    It's almost impossible to stay at the highest level of motivation without coaching, without second person who said: 'Good work!'

    Creativity is important in programming! But when you're working on you're own. Not with buzzkill-boss.

    ReplyDelete
  4. For the particular problem, we should note the two different points of view.

    Programmers feel the anger and frustration that they can't write code in a way that he wanted - more efficient, or simply better. They are forced to solve many tasks in the shortest possible time. As a result, they lose motivation and creativity.

    It looks different from the point of view of the boss or the managing person in the project. This person knows that the project must be completed within a specified time. For boss time is money.

    I believe that important thing is balance between speed of writing code and quality of code.

    ReplyDelete
  5. 1. I think that my boss appreciate my creativity and it’s very motivating. In my opinion it’s important because thanks to it I can feel freely at work, make progress and i like more my job.
    2. I think it’s possible. It depends on our predisposition. When we do something we like, it’s not a huge problem to be creative and highly productive at the same time.
    3. In my opinion it’s very important. Not only in programming, but in every aspect of life. In programming it helps save a lot of time.

    ReplyDelete

  6. I think, that yes, because I have a lot of time to perform tasks, and nobody talks to do it more quickly.
    I think, if we are doing something, and somebody doesn't appreciate it, these are the worst feeling.
    If you have so much experience, in what you are doing - yes, but if you have low experience can be hard.
    Yes, we have more ideas, the better look at what we are doing, and every project which we do will be interesting.

    ReplyDelete
  7. Programming under presure is very bad, beacuse it's make a lot of garbage code.
    1. For me it's doesn't really matter if boss appreciate my creativity, problem could be when i would be too much creativity and later my boss will demand to have same level of creativity all the time.
    2. It's possible.
    3. It's depend what are you programing and for whom, when you have to write lots of code and have a little time you will probably not be creativity as much when you would have lots of time.

    ReplyDelete
  8. Creativity is very important in IT, but it is not easy to find balance between creativity and productivity. If you take part in 30 people project and start to implement your own solutions may cause many fatal errors. Other problem is time management. Personally I have nothing against being creative only if you always manage to finish task. I worked in R&D department where creativity was the only way to solve problems, but very often it drove me crazy, spending few days trying to finish one task.

    ReplyDelete
  9. 1. I don't like to write code under pressure of boss, time etc. That's why I don't like to take apart in hackatons! So answering to your question: Yes it would be frustrating for me.
    2. I think the same like Cezary Ciosek if we do something we like, if project is our idea we are very creative and we have a lot of great ideas about new features we can add to the project. When we implement our ideas which are exciting for us we are very productive in the same time.
    3. Yes it's important. Programmers should always think how to do things better and better. If you are not thinking about how to make things more optimized at the beginning later when project becomes bigger you app can be slow and hard to use...

    ReplyDelete
  10. Depends on what you mean by "creativity". Sure, there are some interesting problems that you have to solve on your own - but there's also an awful lot of stuff that's already been done, tried and tested. No need to reinvent the wheel. And the more time you save on the easy parts, the more you can spend perfecting the complex stuff.

    The thing most bosses/managers/whatever have a hard time accepting is that testing the software actually takes (at least) just as long as writing it. My projects are generally untestable without hardware, and still most of the time when the hardware starts working, the project is considered ready and leaves the company within 2-3 days. So that's just under 24 hours of testing. Sigh.

    ReplyDelete
  11. In my opinion the most important thing while creating a programming project is to make it work in a first place. If you can think of creative ways of achiving it I guess its a good thing. Being creative may lead to some interesting solutions but it depends on the size of a project and time you have. I think everyone would appreciate some approval for your creativity. Of course being productive is very important not only in porgramming related jobs but it is not always possible.

    ReplyDelete
  12. 1. I think not, but it has no effect on my creativity, everything that i want to do i can do on my own. Work its work, and you need to do what client want, not you want. It has no connection with creativity at all.
    2. Yeah i think so! Mostly, my productivity grews when i do something i like, something that i was impressed by and when i nned to create something on my own, from my mind and my fantasy.
    3. Depends on your wishes, most of times writing code its just like translation from your language to mashine one. But deffinetely creative is effect our code and our work. But also sometimes creating something new not as good as you thought about.

    ReplyDelete
  13. This text is interesting because it concerns me.

    Like Łukasz Domeradzki I try to write code the best I can. I'm dissatisfied when my code is in low quality.
    I don't agree with him about the fact that something has to just work first, then it improves because when the boss sees that something works believes that the issue is finished.

    My boss appreciates creativity but don't give me the time to use it! He gives the job so much that I don't have time to do anything new. Everything I do I have to develop as fast as possible. It's very tiring and frustrating.

    I think it is hard to be both creative and productive. You can write quickly and poorly or slower in higher quality.

    Creativity and ingenuity is very important in programming because without it we wouldn't develop good and creative software.I think that only creative programmers are worth something and can achive more in this industry.

    Ps. I can't stand long in my work.

    ReplyDelete
  14. 1.The boss should appreciate emloyees creativity because if he don't do this he will probably don't have any employee.
    2. Yes, if I like my work it's no problem. But if work is boring it will be hard.
    3. Yes, I think programmers should be creative because their aplications are more ineresting if they are creative.

    ReplyDelete
  15. Michał Stankiewicz8 November 2015 at 23:00

    I hate it when boss gives u some tasks you're not specialised in, and instead of hiring some specialist for a problem, they decide that "okay you're an IT guy, you can google it out and solve using methods that were long know in the inetrnet". It's not that simple, especially in difficult tasks, where safety and efficiency is important. When you're dealing with such tasks, your efficiency is getting really low, and creativity is destroyed.

    ReplyDelete
  16. At the beginning i would like to say, that there is nothing worse than stressful boss. You can not concentrate on your job, you are angry or even furious. Employee productivity does not increase, at the moment when he or she is in a hurry. In most cases we have no influence on our bosses, so we can live in stress or escape. In my job. In my job i was mistreated by the boss, because he avoids me. I tried, i played football with them once a week and at the last day of my work he told me that i worked too slowly. I am glad that I finished working there – seriously ;)
    When it comes to creativity in programming it is certainly not essential, programming isn't artistic work. In my opinion more important are the skills and good programming practices ;)

    ReplyDelete
  17. For me working under pressure on time is good. I find better solutions for problems and im more creativity.
    Yes, but only if im working under pressure of time . It motivate me , becouse i know that i must finish task and dont have much time .
    I think yes . Some problems require really good and copmlex solutions .

    ReplyDelete