last day (15 days later) » 

19:50
25
Q: How to show an update made to a software coded by a senior as an intern?

sh5164My internship mission consists in recoding an entire software which was coded 8 years ago by a current senior developer of the company in another language. The only trouble is that I changed the organization of the software from bottom to top. I switched to MVC instead of the "all in a file" pat...

@JoeStrazzere As the original coder of the software, he is the one that has to approve if my software is going in the right direction
I'm guessing by the context; your senior developer was NOT the one who gave you your mission?
@Kozaky He was not, he is the one who is going to be approving if it was fulfilled.
Is there a reason you did not seeks this senior developers advice before changing the design?
@morsor He is not the one in charge of the project, he is the one who have to review the result
19:50
Even with that in mind, consulting him prior to a complete rewrite would seem reasonable. What if he is totally surprised and rejects the changes for that reason alone?
@morsor He is not on the project anymore, my tutor was OK with all the reorganization, it's really about how to present it to him without him taking it as an offense
It doesn't matter that your tutor was OK with the redesign or that he is no longer on the project. Politically, he has to approve the change and so you should have consulted with him to find out the why behind particular decisions. Keep this in mind for the future. Whoever is going to have a say in approving the final design (especially when they wrote the original) is someone you need to be getting information from before making major changes. You would not have your current problem if you had consulted first.
@HLGEM Which I will now know for the future, however the situation still isn't solved.
That's why what I said earlier was a comment for the future, see my response to your question in the answer section.
8 year old code should have been upgraded to a more modern framework. Just say you took his work and upgraded it. Make sure he understands that without his work it wouldn't have been easy to do.
19:50
@sh5164 Now that you know you should have spoken to him beforehand, maybe try something along the lines: "I realised I should have discussed with you about the redesign as you are the original author and know the system, ..." He'll likely be more receptive to your changes with that opening statement. Also you have kind of accidentally stumpled upon "It's easier to ask for forgiveness than beg for permission" (:
This is a paid internship, right?
any programmer with any experience knows that the code he wrote x years ago sucks. he also knows that the first instinct of any new programmer is to look at the old code and say "this sucks, i need to rewrite it." this is normal.
Don't be surprised if the senior developer finds a lot of things to criticise in YOUR code. It terrifies me a little to think of senior-developer-level code being replaced wholesale by intern-level code. You may find there are reasons why things were originally coded the way they were. You may also find that the senior developer knows things that you don't. So be prepared to LEARN things from this experience, rather than setting yourself up as the teacher.
@DawoodibnKareem makes an excellent point. It's always better to come in humble and let them assign praise, then to come in overconfident or cocky and get cut down. Especially if you want to work at this place after your internship is over. Being humble and factual about what you did and the things you changed is far better in the long run than trying to call out just how much you had to change/code because someone messed up in the past.
be 100% sure there are no bugs! :)
19:50
@DawoodibnKareem The code is 8 years old. The senior developer may have been an intern himself 8 years ago.
"My internship mission consists in recoding an entire software.." I hope its not too large, im sure you're capable but this seems like more than an internship level task.
@Ewan You're asking an intern to do something that no major software company in the last 30 years has been capable of.
@DawoodibnKareem: sure, but if there were reasons why things were originally coded the way they were, now is the perfect time to enshrine all that organizational knowledge in unit-tests or a test-plan.
This is a people-skills/politics question, not a technical one. When you say "He is not on the project anymore, my tutor was OK with all the reorganization", but was that reassignment ok with the senior programmer? Was he sidelined because the code sucked, or transferred of his own volition? What is he generally like in code reviews? Raging megalomaniac or not? Is it a group or individual code-review? Does S.P. have the ability to unilaterally block your changes? Basically, did they bless you doing the rewrite, or are unaware of it? This question lacks all that valuable context.
@smci Both your comments are entirely correct. Hopefully, the intern will take some really good notes when the senior dev critiques their work, and enhance their current test suite based on those notes.
@daewoo exactly why massive rewrites just to change coding style are usually not attempted
19:50
If you're replacing a software component the only thing you should be "copying" from the original is the behaviour with respect to its integration points - beyond that, just code naturally. Most software design is (rightly) a product of the evolutionary process of the software - if you're starting again from a different starting point, it's only natural that the resulting design will be different.
As an incidental remark, software is a mass noun: you can't have "a software". You can have "a program"; program is a count noun (as is programme).
Two points. A) I love the "all in one file" design pattern. I will used this name for it in the future when teaching students. B) You say the original author is not in charge, but is reviewing the code. That is a paradox. If he is reviewing it, he will be held in account for it's quality to some extend, as people trust his review. (If they don't there is no use in having him review it.)
"all in one file" has its merits, as you may be able to avoid subroutines and therefore be a lot smaller and easier to read.
@ThorbjørnRavnAndersen I agree, this is not the case here. 4100 lines with 3 classes in a single file has caused trouble to the dev team when they had to edit the code.
@sh5164 Just for the record - if that is the complete source code for a project I would consider that rather small and easily rewritten in another language if needed. Why on Earth did this cause your dev team problems??
19:59
@ThorbjørnRavnAndersen Long story short, the senior coded it, then it was modified by my tutor, a C developper, who understandably had no knowledge in design patterns, to keep it up to date with their main product. So they needed officially a C++ conversion from C# for a Unix version but in reality it was because it became such a mess they couldn't add new features.

last day (15 days later) »