5

I am working as a software engineer in an Indian Software company. For the past 1 year, I have been working on an in-house chat application used within the organization. Some Points I noticed:-

  1. There is no proper story for any feature.
  2. Designs are made by the designers who are available means no dedicated designers are provided and even if a design is provided, it didn't cover all the cases needed to develop the feature.
  3. No QA/Tester is provided, same as designers, QAs are provided only if they are available, so when a new QA tests the application he raises bugs which are not bugs or skips features because he didn't know all the features.
  4. The system itself is written poorly and when I told my lead to refactor the code he never agrees to it unless it is a blocker for another feature.
  5. Only I am the permanent developer on the whole team anyone else becomes the part of the team if he/she is available or do not have much work at that time. Hence problems like duplicate code, inefficient code because of inadequate system knowledge, Or including freshers who want to learn Angular or .Net
  6. Our stories are made by seeing all the similar products such as Skype, slack, flock, WhatsApp, etc and it feels like we are just coping features and not innovating or solving any problem. I mean if we just copying them why not use them why wasting their resources and my time in the same thing.
  7. I, Myself started as a fresher (so this my first project) so don't I know all the things or how to do it but my lead still questions me why this thing is taking so much time even after I told that I have to first study it before implementing.
  8. Whenever I went to my for discussions about the solution for any given task he always chooses the solution which is taking less time to implement even if it is bad practices.
  9. Whenever I ask my lead to implement test cases in Backend code he says we will do but after developing the features needed to attract more users.
  10. If something goes wrong on the production site we patch it for the time being as soon as possible so the solution implemented in the patch is inefficient but when a new feature is being developed it is developed on the top of that patch without refactoring it first.

I talked to HR about this a few times, but no actions were taken. I think the organization is benching me or ruining my time and career. There are so many projects available and they even have openings but they are not changing my project because my lead said so.

What I think is that the organization is not interested in this project otherwise it will provide the necessary resources needed.

I learned a lot a lot in the past year and my coworkers are also friendly but it is just that I get frustrated by working on this product with the current leadership.

What should I do, do I leave the organization or talk to them again or any other suggestions?

  • "What should I do?" What outcome do you want? – HorusKol Nov 22 '18 at 22:53
  • @HorusKol I am not happy with the current situation what should I do to make it better. – Himanshu Bansal Nov 23 '18 at 1:27
  • @JoeStrazzere working with QA takes time and as I mentioned he doesn't time to be invested in it. – Himanshu Bansal Nov 23 '18 at 1:29
  • 4
    HI new user. For better or worse what you have described is the norm in software. There are 1000 questions on here ........."I'm a new programmer, I was shocked! to discover inefficiency / lack of training / no architecture / bad cables / etc etc etc". It's normal. Work hard and get on with it, change jobs when unhappy. – Fattie Nov 23 '18 at 3:02
11

TLDR; If these things really bother you, you should seek new employment opportunities

First off, HR is not going to care about any of things you listed. Those are all technical concerns that are not human resources related.

It is not your job to concern yourself with how the work is distributed. Work is assigned at the discretion of the team leader/supervisor. If you complain about the assignment you have, you will just look petty. If you do not like the assignment you are on you can try one of two things:

  1. Ask for a new assignment (at the risk of looking high maintenance or petty)
  2. Look for a new job where you can work on assignments you are interested in and like

My advice would be, if this is the only thing you dislike about where you work, push through it and do the best job you can. Hopefully, if you do a good job, the next assignment will be better. If you don't like where you work (aside from this), look for a new job.

  • 3
    Everything here is spot-on. This is basically the canonical answer to this question ("I'm a new programmer! I'm shocked! to discover that software is an utter shambles!"). It's the single most repeated question on the site! – Fattie Nov 23 '18 at 3:04
4

"It will all end in tears" - and you may well be blamed, if that is not happening already.

This project is grossly unplanned and mismanaged and can only end one way, unless something changes, which seems unlikely.

It is absolutely not teaching you the correct way to develop software. If you do want to learn, I doubt that you will learn at that company.

Even after only one year in industry, I would be looking around for other employment.

  • 1
    this is the most apt description of my current situation. – Himanshu Bansal Nov 23 '18 at 8:06
  • 1
    I did talk to my fellow coworkers and close friends they also suggest to leave but my next question is how can I ensure that this does not repeat in my next organization? – Himanshu Bansal Nov 23 '18 at 8:15
  • 1
    You cannot guarantee to avoid it in your next job. Your best hope is to ask lot of questions during the interview (remember, it is a two way process – you are also interviewing them). I have accepted some jobs which turned out to be terrible, but, as the years, pass I have developed a list of questions to ask, and if land a terrible job because of something not on the list, the list grows. I always take the approach of thinking “ what are you not telling me, what are you hiding?”, because – unless it is a perfect job – they are always hiding something. – Mawg Nov 23 '18 at 9:24
  • 1
    You can make it open ended questions, like “tell me about your development process” and see if the answer something like “requirements, architecture, detailed design code, unit test, software integration, systems integration, field test”. Or you can be a little more detailed, like “tell me about your review process”, or “do you produce detailed design documents and( review them?”, or “do you write test specs/are your unit tests automated/do you do nightly builds?”. Basically, ask them about industry standard best practises, which you will have to read up on. – Mawg Nov 23 '18 at 9:24
  • 1
    Also ask if there is regular overtime, which is always a bad sign. And if it is paid. Expect them to lie, or at least to paint the picture brighter than it is. An interview is a process where you are not allowed to lie and they are (which always struck me as stupid, because when I start, if I find they have lied egregiously, I quit immediately. There are any number of red flag questions; you have learned a few on your current project. Just take your list above and is if they do the opposite of every point :-) Good luck – Mawg Nov 23 '18 at 9:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.