0

I took part in a above one year lasting project. It is website with couple additional functionalities for a rather important institution. ( in my subjective opinion ). At date 0 there was deployment of website to the public. So 22 may was website start. There were many bugs and features from a client, that at the day 19 may weren't fixed, developed. Three days before deadline i was delegated to go to a client and discuss with them and help with deployment. Client who was dozen of people told me all mistaked during three days, two meetings a day. Boss of my company went to vacation and i had to deploy website. We arranged with boss a small budget to me for helping with some bugs. And up to deadline hour i made with only my strenghts couple of fixes so final effect of website was without any mistake told by dozens of people. So in my opinion final effect to the users was ok. Because without that mistakes, as client wanted, who knows his users. And now... Company who delivered most of code to website is very unhappy with my changes - that are telling about maintaining code. And also are unhappy about bugs in console. I am asking, everything is working on website, final effect is ok, i did a lot of things to a deadline as much as i could. Now the final effect is ok, but around this, people in my company may seem to be unhappy about quality of fixes i made to the end. It's not Mars mission, but website - some mistaked in javascript console can be turned off. I even don't count on extra money because i did this, it was just a matter of my abilities - i have seen i had access to code, i am experienced programmer, so i repaired this as client wanted.

4
  • So what is your question?
    – nvoigt
    Commented Jun 2, 2017 at 12:10
  • Other company states that client importance is less important and i shouldn't do things bad and through shortcuts. Product is working, but they state that i shouldn't do this. Who is right?
    – changtung
    Commented Jun 2, 2017 at 12:14
  • Who pays you? That guy is "right".
    – nvoigt
    Commented Jun 2, 2017 at 12:16
  • Money is not motivation for me here. I had better not being paid but having completed successfully it project. Such situation here.
    – changtung
    Commented Jun 2, 2017 at 12:41

2 Answers 2

3

It is all about perspective:

  • You saved the day and you are a Hero by fixing the product
  • You left around messy unclean code and you are lousy developer

I think your are both right, congrats! Cleaning time...

You have a piece of functionality that you need to add to your system. You see two ways to do it, one is quick to do but is messy - you are sure that it will make further changes harder in the future. The other results in a cleaner design, but will take longer to put in place.

Technical Debt is a wonderful metaphor developed by Ward Cunningham to help us think about this problem. In this metaphor, doing things the quick and dirty way sets us up with a technical debt, which is similar to a financial debt. Like a financial debt, the technical debt incurs interest

https://martinfowler.com/bliki/TechnicalDebt.html

Who is going to repay the technical-debt you left behind? Even if you did it to the best you could, others seem to think you rushed and left a lot of technical-debt.

Every project has maintenance even non-critical websites. Therefor someone should estimate if keep cleaning is worth it. You made the call and others are challenging you on it. Don't feel bad, even if you don't 100% agree you could say it wasn't your call and you should have notified someone to make the call on leaving the errors and messy patches. Make friends, find the win-win and fix the code if needed.

1
  • Yes, i needed such an answer, to not be alone with situation. Technical debt is proper term for this.
    – changtung
    Commented Jun 2, 2017 at 12:37
2

There is no canonical answer here so this question I think is out of bounds for this site. However, I like it. Here are my thoughts:

Both of you are right. Your story suggests that you exhibited heroics to get the job done to the satisfaction of your customer. It appears heroics were needed for this project at this time. So from that perspective, you should have been commended for your efforts.

However, heroics are unpredictable in its outcomes. Mature operations and projects do not need or want heroics because of this unpredictability and downstream effects. Think about NASA. Think about Apollo 13. Heroics were necessary to get that craft back to the ground safely and there were many heros then; however, NASA does everything it can to avoid the need for heroics, in terms of planning, risk management, tons of controls and checks and balances, testing, and on and on.

What your company is doing wrong is looking to find blame and it appears it's you. They should be conducting a lessons learned analysis to find out why they ended up in a situation where heroics were necessary and figure out how to avoid them in the future while thanking you for your efforts.

This is completely my opinion.

2
  • Yes, due to management decisions not engineers there was NASA catastrophe come time ago. that was written in R Martin "Art of Coding". Engineers wanted to fix some bug and management said that it's not such important and then people died during start. But i am not working at NASA fortunately, it's not such pressure here, no such big need for testing.
    – changtung
    Commented Jun 2, 2017 at 12:39
  • Concepts remain the same. Mission is just scaled differently. Commented Jun 2, 2017 at 13:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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