More than a programmer
Being an excellent programmer is only one of the requirements to become a good developer. And it is developers that TouK needs.
Ever since we started to build the TouK’s team, the division into programmers and developers made by Eric Sink for the purposes of his company has been close to us. As Sink pointed out in his article entitled “ISVs, You need Developers not Programmers”, a “programmer” is someone who specializes in writing codes, while a “developer” contributes in multiple ways to make the project successful.
According to Sink, only big corporations can afford to employ people with narrow specialties. It is there where we can meet architects, programmers, technical leaders, project managers and evangelists strongly attached to their fields of activity. A smaller company, an independent software vendor (ISV), seeks people who are ready to acquire new skills, instead of people focused on single tasks and with rigid boundaries to their job involvements.
The role of a developer is not limited to writing a part of an application, as it is the case with a programmer. The developer is also capable to cope with other tasks which occur on different stages of the project implementation. The developer is able to write a specification, write and test software, prepare the documentation or talk to clients about their expectations.
You are not a developer? All is not lost yet. We will help you become one of us.
|
Renaissance developer
Are you a developer? That is not the end of challenges. The time has come to become a generalizing specialist.
In Polish the terms ogólny specjalista (general specialist) or wszechstronny specjalista (versatile specialist) seem inaccurate. It is because of the fact that the meanings of the words put together are mutually exclusive: a person may either have a general knowledge on everything or be a specialist in a specific area. It would seem that there is no third option. Perhaps Scott W. Ambler had to consider a similar problem in English when he created the term a “generalizing specialist”. He nevertheless stuck to his idea. The term “generalizing specialist” is a result of confronting two extreme positions and their descriptors with contradictory meanings, i.e. a “generalist” (a person with a general knowledge on each topic) and a "specialist” (a specialist in a specific area). The “generalizing specialist" is more than a master of one specialty and more than a “jack-of-all-trades” equipped with general skills and a superficial knowledge on many topics. It is a person aiming at multifaceted development. Therefore, we will call him a generalizing specialist (wszechstronny specjalista in Polish).
According to Ambler’s definition, a generalizing specialist is someone who:
- Has at least one (and preferably more) technical specialty, e.g. Java programming, project management, database administration, etc.;
- Has at least a general knowledge of software development;
- Has at least a general knowledge of the business domain in which the abovementioned skills are useful;
- Actively seeks to gain new skills in both their existing specialties as well as in new areas, including both technical and domain areas.
A man is not born a generalizing specialist. Studies and first job usually make us specialists in one area. It is not surprising since we must start from somewhere and the need to “be good at something” is natural. But it is worth expanding one’s horizons.
A characteristic feature of a generalizing specialist, which allows them to develop, is cognitive curiosity and the ability to grasp how different things are linked together. Therefore, the generalizing specialist watches with interest the projects his teammates are working on. It is someone open to education, training and work with people competent in areas other than their own.
Thanks to their own development and acquisition of new skills, generalizing specialists more easily overcome the communication barriers and knowledge “gaps” separating them from their teammates who are specialists in specific areas. The ability to communicate efficiently quickly becomes one of the major advantages in the work on a project and a team consisting of generalizing specialists is much more effective than a team consisting only of specialists focused on their areas.
|