Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Code Structure Changes

by wjw (Priest)
on Oct 27, 2017 at 20:05 UTC ( [id://1202191]=note: print w/replies, xml ) Need Help??


in reply to Code Structure Changes

This breaks down into two problems as I understand it.

  • You don't like the structure of the code
  • You know how to improve the code(struture) to make future changes, and have the technical acumen to do so, but it is not part of the specification under which you are hired(contract)
What should one do? In my opinion...
  • Complete the contract per specification and per contract(obviously)
  • Approach the the lead tech and whoever has their hands on the money (perhaps one before the other, (you would have to chose which is more likely to solve your problem) and explain the advantages of the refactoring. Things like
    • an estimate of how many hours it would take(cost)
    • how many hours it would save subsequently assuming more functional changes are desired
    • other pros
    • other cons

When it boils down to it, from a contractual standpoint, making the code better outside the currently contracted specification is not your problem. Your problem is that you are diligent and wish to save the customer future expense. A laudable trait. So the best you can do in my opinion is to offer up the additional service and let the customer choose whether they want to take on that expense. And then live with their decision and 'let it go' if they choose not to take you up on it. Should they hire you in the future, you can always say no if it bothers you much.

But I am thinking that you will increase your chances of being contracted again if you make the effort, even if you are turned down. As long as you stay positive, and do not criticize the existing code base. There is a lot of difference between criticism and 'presenting opportunities" though communicating that way is pretty nuanced.

This is not so much what you "should" do as it is what you "can" do which positive for you in that you have addressed what bothers you in a positive, diligent and professional way. You end up respecting yourself for having addressed that which might benefit the customer, and respecting them either way that they decide(though that might be quantitatively and/or qualitatively less if they reject your proposal, regardless - you have shown them respect).

...the majority is always wrong, and always the last to know about it...

A solution is nothing more than a clearly stated problem...

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1202191]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (2)
As of 2024-04-26 03:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found