I took a position as a Junior programmer on a programming project 6 months ago. However, I do have 10+ years of experience, but I needed a job fast. The project I joined has been ongoing for the past 4 years. However, the client tells me that since I joined, things have actually gotten done.
The senior programmer is an offshore resource and has control of the source code and implementation of the entire project offshore. In my personal opinion, I believe that this resource has been milking the organization and when I joined, I was given the a list of coding restrictions:
- No inheritance allowed
- No use of stored procedures
- No use of foreign keys
- No use of frameworks
Since he is the only one with access to push this to production, if I use any of those techniques, the code would not be pushed.
EDIT: For clarification on confronting the offshore resource on the above restrictions. His response was that he doesn't know how the system will react if we introduce these methodologies. For those interested, the system is using a standard Linux-TomCat-Java-MysQL setup.
Needless to say, the code base is huge and not very flexible. Any simple change the client requests are taking a long time. I've raised these issues with the Project Manager, but he has tasked me to "convince" this senior programmer to let me clean up the code base. I feel this is out of scope for me, but it appears that the Project Manager fears the offshore resource given that he holds all the keys to the product.
My contract is only 1 year, so I could just play along, but I would like to see this project succeed since it is for a non-profit organization and it would help them immensely.
What advice is there to resolve this issue without compromising the product that exists overseas?
EDIT: To clarify the specific issues: Data integrity is a problem as the application looses client data. System stability is a problem as the application looses configuration settings.
Essentially it boils down to how do you tell an offshore resource that change is required in order to meet the client's requirements without compromising the product itself? The sense I get is that the PM is worried that the offshore person will cut the connection and we loose the data and the source code. The project started offshore because it was cheaper, but it sounds like it's some guy in a house as we can hear children in the background during conference calls.