Is it using the correct programming language? Maybe C# or Java? Perhaps C++, Perl or Ruby?
Nope, can't be a programming language that makes a developer better than the other.
Is it the tools then? Like Visual Studio with ReSharper? Maybe Eclipse or just Notepad?
No, I don't think so either, although the tools are very important and make our programming a lot easier.
At a higher level, I would say great developers are defined by the skills, the knowledge and the experience acquired through the years. At a deeper level we could define standards for good code and say that a great developer would follow those standards. A great developer would think of the readability, performance, recognize problems and apply previous solutions to current situations etc, etc.
There are many things that make a great developer and there are different kinds of developers, like the technical great ones or the ones helping others in the team get better. My goal here is not to define great, but to give you some insight to what you can do to get better.Evolve
To be better at your work you need to evolve. To evolve means to learn new things and apply them. To do that you need to take the chance when you get served one. What I'm saying is, do not be scared of learning new techniques. If you have never worked with ASP.NET MVC, but want to and you get the chance to do it, then do it. Don't be scared of failing. Even fail is a small success. You can learn so much from failing, so take the chance and learn from it. Sometimes you need to search for chances and take them, let the project leaders know that you want to do it. Good chances are that somebody in the team already knows the technique and can help you out. There is also always the internet with tons of tutorials and tips and tricks.
So take the chances, evolve yourself and become an even better developer.
I'm interested in your comments on getting better as developer, so what do you think we can do to become better?