Discussions around (open source and other) ecosystems and communities often include word ‘developer‘. Developer does this and that, developers are part of the community, developers need tools, they create apps, etc. Evidently, the word ‘developer’ refers to wide scale of roles and functions. I’ve been doing my PhD research about open source ecosystems and interviewed several developers and noticed that the notion of developer is not the same as it has been in the past. Academic discussion (which occurs in articles) might have some more information about this change, but I did not search that information yet. Instead I want to bring forward what I have discovered empirically in the interviews.

In the interviews several topics or questions have included issues that refer to developers and their roles. I have found that in MeeGo community (or ecosystem to be) developers discuss about their own positions in different terms, which differentiate several kind of developers. I sketched a preliminary taxonomy map for the different types of developers (rather ugly figure below). It is not intended to be all-inclusive and ‘final’ presenation, but more like a starting point for futher research and theory formation. Lets take a look at the different kind of developers.

Taxonomy map for developer types

Taxonomy map for developer types

Application developers, tool developers and platform developers.

Firstly, the word developer is used as common word to refer to all people who do some kind of application or platform related programming. It is used as sort of ‘include-all’ term or root of taxonomy. Secondly, there are application developers or in brief ‘apps devs’. They are not involved (or in some cases not even interested) about the platform development. Instead they are more interested about the tools (existing IDEs, APIs and such) and how to make applications for the selected platform as easily and fast as possible. They (apps devs) rely on the work done by ‘platform developers/devs’. Their task is to create commonly used API’s and tools for the ‘apps devs’. The all-mighty (and mysterious) kernel hackers might be included to ‘platform devs’. Also driver developers are part of this sometimes hard to approach crowd. Another developer type is ‘Tool Developers’, which contain people creating and developing for example Qt (IDE and base) or Quality Assuarance related services. Of course some developers can find them selves from multiple roles at the same time. In other words they overlap either all the time or occasionally.

UX designers, graphics designers and developers

What makes things a bit more difficult to grasp or at least more blurred is the emerging new technologies in tools. With that I refer to such tools as for example QML, which is javascript based language. QML is intended to be used in UX level objects, to make things look nice and pretty. Furthermore, QML is supposed to be (and it is) simple to use (code) and quick to implement. The learning curve for QML is rather low, definetily lower than digging into C++. If QML is used, the difference between UX designer, graphics designer and developer as it has been understood for long time, is blurred. Why? Simply because the person who has talent to create visually stunning UX components and logic, can now implement to application with QML. Of course QML is not intended to replace C++. Often Qt based apps include both: QML for UX and C++ for appplication logic. Nevertheless, you can do some pretty amazing stuff with pure QML.

Paid or contributor?

In open source development projects (which can be never-ending) some of the ‘developers’ are paid to do their work. They are hired by some company, which wants to develop the project. There can be several companies involved and therefore the amount of paid developers can be big. Of course one big company alone such as Google can contribute a lot of developing power to any project. Nevetherless, there are paid developers and contributors. Contributors don’t get paid (at least not directly) for the ‘work’ they do (participate in development). They have different motivation to participate. Contributors might do it for fun or because the project in hand is ‘hot’. Of course paid developer can also be contributor; developer does the development as paid and also on freetime participates in the same project. However, in that case, the area where developer participates as paid developer can be different than what he or she participates as contributor. This kind of dual-role does not seem to be uncommon. The motivations to participate might differ between the two as it was said before.

Also the activity can vary. There can be two opposite types: ’9 to 5′ and ’24/7′. The latter refers to developer which participates in the project both as paid developer and contributor. The developer is available and participating in the project all the time. The opposite is ’9 to 5′, in which developer does the work in the office; starts at 9am and stops at 5pm. In that case, developer does exactly what he or she is ordered to do, nothing more. The personal interest level towards the project can be anything, from near ‘hate it’ to ‘love it’. It must be noted that some of the interviewed did not want to make any difference between paid and ‘un-paid’ developers. In their opinion it does not make any difference, since all developers work for the same purpose, to make our project the best it can be.

If you have any ideas what other kind of developers there might be in open source ecosystems or if you have any thoughts about the above, leave a comment.

Content is available under 2011, Jarkko Moilanen. CC BY-NC-SA 3.0

    No related posts.

    Tagged with: