A well rounded Software Developer should be willing to adapt their thinking to the situation. Many developers have worked in a specialised role for too long and are unwilling to change. This is dangerous for the individual and leeds to a number of recognisable characteristics. To illustrate this point, read about the following ‘types’ which I have worked with.
Don’t understand anything about syntax in C based languages and usually write far too many lines of code to express a simple program. They also don’t bother with good programming principles like SOLID and DRY which seem to flow naturally out of OO languages like C# and Java.
C and C++ Programmers
These guys are attracted to the idea of writing libraries which can then be used to write useful programs. The libraries are not useful in themselves, they are tools that can be used to write useful programs. This leeds to a culture of “not made here”, where bespoke libraries are used instead of using established libraries which are available (sometimes free). Sometimes they will focus on business ‘rules’ but ignore usability and UI.
These are often technical support or IT professionals as they like to call themselves. They focus on installing computer hardware and software so they do not worry much about coding. Instead they like to control access to servers and try to get as many passwords as possible. They soon convince themselves that they should be in charge of an organisation without having an understanding of the development process or the workings of the business.
People who do not have an interest in the technical side of their work will often try to get ahead in various ways. This can include claiming credit for others work and hiding critical information or refusing to share information.
Similarly to non-programmers they like to collect passwords. Naturally database analysts think of everything as a list or a table and do not have much interest in the User Experience.
Web Design and other UI Experts
Often believe that development is quite simple and they could do it ‘if they wanted to’. The fact that their work is highly visible to users means that it appears as if they are very productive. Sometimes they are credited with an entire project even though their contribution is minimal. Unfortunately this encourages them to be arrogant.
C# and Microsoft Generally
Microsoft focuses on providing many tools which aim to increase productivity. As a result the developer can become lazy and forget about the principles of programming and simply make something that works.
Of course not all programmers fit into one of these categories. If you have been programming for years you should try to be diverse even if it does not feel natural. At the end of the day you need to understand different technologies if you want to be a team player.