Marketing Python

Over a period of time, perhaps starting in earnest with the weblog entry "Marketing Python - An Idea Whose Time Has Come", a perception has emerged that the Python community has not been effectively communicating the benefits of the Python language and technologies. Whilst previous and existing promotional efforts at the highest levels of the community have involved ongoing advocacy activities (see PythonAdvocacyCoordinator and Advocacy), repositories of materials or links to materials (see evangelism support materials), events (see PromotingPythonBof), and the redevelopment of the Python Web site, it has been argued that the language and associated technologies are not being effectively "sold" to newcomers.

One contentious issue related to marketing activities is the identification of the target audience for any marketing exercise or message. Previously, the "executive" audience (or "management") has been considered as the primary audience, since good technology supposedly sells itself to a technical audience, but recent developments have suggested that a clear message to a technical audience can promote a "peer marketing" effect. In other words, a good (or merely new, interesting or fashionable) technology that is communicated to a technical audience can be adopted through peer influences rather than through the persuasion of a primarily managerial decision-maker using a less technical and more promotional message. A discussion of different audiences can be found here.

This page is concerned with ideas and initiatives which seek to improve the marketing of Python, where marketing in this context should be taken to mean the communication of the benefits of the Python language and technologies to various audiences (eg. software developers) in order to persuade them to choose Python as the basis of their activities and to reassure them that Python is a sustainable and acceptable choice.

Reasons to Market Python

Unlike traditional marketing activities, no direct financial benefits are derived from marketing Python and thus increasing the number of "customers". Nevertheless, various other benefits emerge from a larger Python community:

Of course, Python is already widely used, but areas exist where Python arguably lacks "momentum" and yet can already be considered suitable as a technology. The appropriate marketing of Python can lead to the non-technical barriers being demolished.

Focus Areas

The communication of Python's benefits must take into account much more than just the existence of promotional articles and advocacy materials. Indeed, marketing should not be regarded as the use or application of merely promotional materials on top of the existing project infrastructure and work. Rather, it must consider the accessibility of the entire work and the community around it.

Areas which should be reviewed for accessibility and whose quality assist in the promotion of the work include the following:

Additional resources for marketing Python include the following:

Whilst promotional activities traditionally focus on articles, presentations and events, if the whole body of Python work is to be directed towards marketing Python, all of the above should be considered in a marketing context.

Delivery Issues

Whilst communicating the benefits of Python, the means of communication is critical:


The Python Web Site

The primary resource for Python marketing is the official Python Web site. Whilst many of the above focus areas are addressed by the site, some reservations may be expressed about the delivery of the materials mentioned above. Consequently, it may be informative to consider the site from the perspective of particular user profiles.

Profile: Technical Newcomer

Upon learning of the existence of Python, a newcomer with a technical background may have various priorities when researching the language, including the following:

Here, the current site offers some quick answers, but omits any immediate examples of actual Python code. Whilst this might forestall any prejudicial rejection of the language based on its indentation-based syntax, the newcomer is forced to go hunting in the site for some examples.

Profile: Domain Motivated Newcomer

Some individuals may wish to assess the suitability of Python for a particular domain, such as Web application development or graphical user interface programming; their priorities may include the following:

Here, the current site provides some references to popular projects and to topic guides. Success stories are available conveniently, and these may mention various projects and solutions. Sadly, the Python site does not reveal its own technical foundations, although such details are available here.

Such a domain motivated newcomer may be particularly well-informed and seek specific reference material as opposed to promotional material. The site provides a sidebar link to the documentation page which features a long list of potentially suitable documents, but the suitability of such documents shall be discussed in the appropriate section below.

Profile: Technical Advocate or Insecure Manager

Some people may struggle to justify the usage of Python in an organisation:

In order to assuage concerns about the language, such people may wish to quickly gather information about the following things:

Here, the current site provides fast access to success stories about Python adoption. Indeed, the current site seems to be fairly well optimised for managerial-style research. Some additional focus on vendors could be useful: Python is provided on many GNU/Linux or UNIX systems but specifics might be reassuring.

Availability Issues

Due to historical and possibly maintenance reasons, the Python Web site references a large number of external resources. Unfortunately, this can introduce availability issues:

Structure and Navigation Issues

In order to preserve convenient access to the wealth of content on the old Web site, the number of links and menu entries presented on the front page and other major pages is considerable. Unfortunately, this comes at the expense of rapid comprehension:

Nomenclature Issues

Whilst Python itself is an inspired name for a computer language, the Web resources should arguably avoid establishing their own vocabulary that assumes certain prior knowledge of unrelated cultural material.

Suggestions and Ideas

Some of these suggestions are already fulfilled with the current Web site, but others would probably enhance the site if implemented:

Possible Inspiration


Python Documentation

The materials which accompany or complement the Python distribution are of special importance when communicating to well-informed audiences, even though such materials are not traditionally regarded as marketing-related content. However, aside from the Web site, such materials may be the primary interface used to judge Python's suitability by those motivated to find technical answers rapidly.

Profile: Technical Newcomer

As described above, there are some people who merely wish to get acquainted with the language in order to see if it suits them, and they may prioritise the following:

Here, the tutorial (as well as other resources) delivers answers regarding the look of the language. However, when discussing programming styles and principal abstractions, the bundled documentation starts to show its age: metaclasses appear only in the glossary in the tutorial, and appear to be absent from the language reference. Consequently, newcomers may question the maturity or relevance of such features.

Profile: Domain Motivated Newcomer

As described above, some individuals are motivated by particular kinds of applications or activities and wish to find things such as the following:

The current library documentation does attempt to categorise modules and packages, but the accumulation of packages of varying relevance does provide a degree of confusion in the presentation. It could be argued that a more coherent library (or library documentation) is required, and such a proposal can be found here.

Profile: Experienced Python Developer

Marketing Python need not merely involve newcomers to the language: sometimes Python needs to be marketed to experienced Python developers for applications and activities that such developers either have no prior experience with, or as part of a process of reassurance that Python remains a suitable choice for such activities.

Such individuals may resemble newcomers in their interactions with reference materials and documents, but since they may previously have sought solutions in other areas, certain expectations may have been formed:

Whether such expectations are fulfilled probably depend on the exact topic being considered.

Suggestions and Ideas

Although changes have been suggested with regard to the maintenance and production of the Python documentation, some other changes might be beneficial:


Mailing Lists, Newsgroups and News Feeds

An especially important mechanism for the distribution of community information and for the support of language users is the collection of mailing lists dedicated to Python along with the comp.lang.python and comp.lang.python.announce newsgroups.

Announcements

The announcement mailing list and newsgroup, along with various news feeds (that are mainly a product of the Python Web site), form an important channel to inform users of new developments, although it should be noted that many announcements on comp.lang.python.announce are for software packages that may not have been added to other resources, such as the Python Package Index. Consequently, community members must seek information in numerous places:

Having announcements posted to more than one location is a good thing: some people choose to follow newsgroups and mailing lists; others follow news feeds. Ensuring that each location carries everything is the more difficult task.

Support

The various mailing lists and the comp.lang.python newsgroup serve as collaborative resources for developers as well as support channels for those attempting to use Python software of various kinds. In the first ten years of Python's development, the establishment of targeted mailing lists for specific topics was possibly the principal mechanism for focusing community activity in certain areas.

Subsequently, however, interested parties have sought to establish Wikis and mailing lists outside the traditional structure of python.org and the special interest group structure. This is perhaps analogous to trends in distributed software development favouring inexpensive branching and experimentation: instead of negotiating technical or administrative obstacles, developers move towards a decentralised model and introduce "local" tools which are more easily customised.

Meanwhile, many general conversations which once took place on comp.lang.python (and the general Python mailing list) regarding the nature of the language itself have now migrated to the more specialised python-dev mailing list, with even general implementation problems being handled on python-dev in recent years rather than being discussed on the general list.

It is not uncommon for users of the language to do the following things when seeking support:

Suggestions and Ideas

Many of the resources mentioned here are highly distributed and are outwith the control of the Python core developers and its representatives. Nevertheless, some suggestions are appropriate with respect to the utilisation of such resources, together with the management of resources which are controlled within the python.org infrastructure:


The Python Software

While it might seem unusual to consider the product being marketed as a vehicle for marketing activities, its suitability and performance (in the general sense of the word) are things which can communicate the benefits of the product more efficiently than any other medium. Indeed, as marketing is a two-way process, selecting target audiences and communicating a message to such audiences (in one direction) whilst digesting the response of such audiences and modifying the product to meet their needs or desires (in the other direction), it seems appropriate to consider improvements that could be made to enhance Python to meet the needs of its target audience.


Editorial Notes

So far, this is just a collection of thoughts about marketing Python and improving the way Python and its technologies are communicated. Moving on from a kind of position paper to concrete activities is the aim, but insights are obviously welcome to accelerate the process. -- PaulBoddie

CategoryAdvocacy

MarketingPython (last edited 2009-11-10 23:34:00 by PaulBoddie)

Unable to edit the page? See the FrontPage for instructions.