This problem shows up in a lot of small businesses. So I'm going to assume that the business you're working for has less than 5 developers. And answer your question from that points of view.
1. Someone elses work is of such a bad quality, that it makes simple things complicated.
2. Someone else want's to know all about what you do, even though they do not have the skill to actually understand what it is that you do
3. You're new to the business, and have not built up that trust with your manager yet.
I'm also going to make one other assumption:
The business you're working for does not have a nice HR department who has documented how to do your job, such as how to manage SVN, Coding standards, etc etc etc.
First thing to do:
Take a long hard think about if you want to spend the next two years trying to improve the development environment at this job. If the answer is "no" start looking for something better. It will have 3 or 4 months for you to get totally sick of this job and it's issues, so that's plenty of time to do job hunting.
If the answer is "yes I'm willing to work really really hard, and never be thanked for working really really hard, but I'm willing to do this anyway because I really think this company is worth two years of annoyance and trouble" Then congratulations, you're a trooper! Move on to step 2:
Tell the person who's looking over your shoulder everything that they ask. When they don't understand something, ask if they would like you to explain it to them. If they say yes, explain the topic as quickly and simply as possible.
Because the person causing you all the trouble is causing all the trouble because they do not know they are causing trouble! In other (simpler) words, they don't know that they are doing things wrong. Educating them is your first big hurdle.
Do all the work that you get given to do, even if it takes you *3 longer than it should! And do a really good job if you can.
1) Don't over simplify your code
2) Make sure that your work is really good
3) Write code that can deal with inconsistency. (The best programmers write loose code)
Because as you write the code, you're making it better! Someones going to have to do this one day, it might as well be you and it might as well be today!
As you write better and better code, and slowly bring the system into a consistent formatting standard, use more complex but better structures, you're forcing your colleague to learn how to code better code, because what he does, is going to interact with what you do.
Your code will stand out from your colleagues work, because your code will be consistent, readable and manageable. As you write more and more code, this will make your code look good, and your colleagues code look as hap-hazzard as it truly is.
IMPLEMENT AUTOMATED TESTING!
The Best of the Best write automated testing!
If only someone had explained this to me five years ago.
Automated testing is the "Holy Grail" Testing code makes sure that you don't break core code features, And when you do, you know before anyone else, so you can fix it.
Look for Jenkins it's pretty good. And has basic (or complex) automated testing.
Because when you run your code through automated testing, even if you can only run this locally, it's the only proof that you have that the code you're writing works like it's meant to! And if you pass all of the code that you write, and all the code that your colleagues write through the automated testing, then when they write something that breaks your work, you know about it straight away, and you can fix it.
Or you can tell them about it so they can fix it.
And when you manager comes to you can tells you that your codes not working, you can tell him/her exactly why it's not working, and exactly what you're going to do to fix this.
Over all it's going to be a really hard couple of years!
But at the end of it, things will be better, even though you're the one that has had to to ALL of the hard work. And this is an opportunity for you to learn and grow a HUGE amount over the next couple of years as you improve every aspect of what you do. Even if you leave this business in a couple of years, the skills you will learn doing this will translate to a professional work-space very very well, where you will be doing all of these things I've listed on a daily basis, and you will understand WHY :)