But it's an important question, because unless you know how big a project is, you can't estimate its costs or development schedule accurately. That's contrary to many development managers' instinctive opinion. You'd think the fact that the client environment is predefined and that communication uses well-known protocols would make the application a breeze. It's not extreme, and it's not about programming. Windows Distributed interNet Applications.
Good programmers are competent with their tools.
They know the basic features well, and they have some knowledge of lesser-used options. With this knowledge, they can develop competent code in satisfactory quantity. Great programmers, however, make a point of knowing their tools intimately. They know many features, including the obscure ones, they know how to wield the tools to handle unusual situations, and just as important, they can bend the tools to do what they need. As a result, they generate better code more quickly.