Differences between revisions 10 and 11
Revision 10 as of 2006-10-26 10:06:57
Size: 14442
Editor: PaulBoddie
Comment: Added link to availability-related message.
Revision 11 as of 2006-10-26 13:24:02
Size: 16266
Editor: PaulBoddie
Comment: Some recommendations.
Deletions are marked like this. Additions are marked like this.
Line 56: Line 56:

----
Line 122: Line 124:
=== Suggestions and Ideas ===

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

 * Show some Python code on the front page! If one of Python's strengths is its readability, show it off!
 * Try and tie together a description of the paradigm (object-oriented plus others) with the code.
 * State the available platforms and provide links: if some implementation is good for advocacy, people should be directed straight to it instead of being told about it. Not "Python has also been ported to the Java and .NET virtual machines", but "Python runs on the Java virtual machine as [http://www.jython.org/ Jython] and on .NET as [http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython IronPython]".
 * Show off things Python does best or most conveniently. Link to specially edited cookbook entries.
 * Point to ready-to-use solutions and high profile applications, along with big name users.
 * Consider integrating the package index more with the rest of the site in order to show "vitality" as well as helping people find solutions.
 * Emphasise collaboration instead of fragmentation by providing quick access to community standards. Consider revitalising the special interest groups (both in terms of visibility and their status).
 * Simplify the menus: does there need to be replication of success stories, quotes? "Community", "Foundation", "Donate to the PSF": what's a newcomer to make of this? "Links": isn't this just a holding pen for content?
 * Simplify the structure: there should be one place for documentation and a simple route to it.
 * Make site functionality a part of the actual site: don't rely too heavily on external tools to search the Python documentation, for example.

----
Line 159: Line 178:
----

Marketing Python

Over a period of time, perhaps starting in earnest with the weblog entry [http://www.artima.com/weblogs/viewpost.jsp?thread=150515 "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 [http://www.python.org/ 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 [http://wingware.com/pipermail/marketing-python/2006-March/005610.html 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:

  • Wider recognition as a suitable technology: as more uses of Python are encountered, the reluctance to adopt Python in organisations may be minimised.
  • Wider application of the technology beyond established domains: people may be encouraged to try Python in places and applications previously not considered (or not attempted due to lack of interest or resources).
  • Increased interest in products and services: as more people work with Python, more people and organisations will want to support Python; for example, Web hosting companies are more likely to support Python solutions if the demand increases.

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:

  • The [http://www.python.org/ Python Web site]

  • Python documentation:
    • Introductory (tutorial) materials.
    • Reference documents (library and language references).
    • Support materials (FAQ lists, troubleshooting guides, how-tos).
  • Community information:
    • Mailing lists and newsgroups.
    • Strategic materials (roadmaps, development process details).
    • Catalogues of software packages which demonstrate Python's support for a different kinds of development projects.
    • Details of "happy customers": newcomers probably want to identify their peers and case studies can be reassuring to other participants in a particular field.
  • Project infrastructure (development process resources):
    • Issue tracking, repository access/browsing.
    • Security and maintenance updates.

Additional resources for marketing Python include the following:

  • Articles
  • Books
  • Presentations
  • Papers
  • Events

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:

  • Availability: educational materials may be situated in locations which may change or become inaccessible. (Example: [http://groups.google.no/group/comp.lang.python/msg/e46ddf98693e8670 "Slightly OT: Is pyhelp.cgi documentation search broken?"]) The vitality of materials may change, resulting in outdated impressions being imparted.

  • Structure and navigation: having large repositories of information is of diminished benefit if would-be readers cannot locate the materials conveniently.
  • Nomenclature: memorable but suggestive naming of resources is critical to their acceptance and utilisation.


The Python Web Site

The primary resource for Python marketing is the official [http://www.python.org/ 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:

  • What the language looks like.
  • What style of programming the language encourages.
  • What it runs on.
  • What kinds of tasks it is designed for (or does best).

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:

  • Why Python is a good choice for the domain.
  • Which solutions are available and how vital, well supported and complete they are.
  • Which are the most favoured, whether the community stands behind them, and what level of interoperability exists between them.
  • Whether people have been successful in developing such kinds of software in Python.

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 [wiki:PythonWebsite 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:

  • Why Python is a good choice in the particular application domain.
  • Who else in the domain is using Python.
  • What benefits and advantages Python brings over non-Python-using competitors.

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.

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:

  • Documentation searching is done using a Starship page (which as of October 2006 is down).
  • Some resources are not as "vital" as they once were, notably the PyXML software and the XML topic guide.

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:

  • Documentation links appear in multiple places, pointing to different things: what is the readily perceivable difference between docs.python.org and www.python.org/doc?
  • The quick links duplicate other main menu links. However, more is not always better: readers should not be forced to potentially remember alternative routes of exploration just in case a link does not take them straight to where they wanted to go.
  • "Software development" refers to a general list of applications but lists specific software development project tools underneath.
  • On the documentation page, a plethora of links to "Current Docs" (alongside the main content which supposedly contains the current documentation) and other less obvious places: what should one expect from the Wiki or the topic guides? Is one better than the other? Why are new-style classes so prominent on the side menu? (Is is because the documentation for them isn't properly integrated into the rest of the manuals?)

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.

  • The Cheese Shop might be a humourous name, given enough Monty Python exposure, but may be misleading to newcomers. (The front page of the Python Web site avoids this name, however.)

Suggestions and Ideas

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

  • Show some Python code on the front page! If one of Python's strengths is its readability, show it off!
  • Try and tie together a description of the paradigm (object-oriented plus others) with the code.
  • State the available platforms and provide links: if some implementation is good for advocacy, people should be directed straight to it instead of being told about it. Not "Python has also been ported to the Java and .NET virtual machines", but "Python runs on the Java virtual machine as [http://www.jython.org/ Jython] and on .NET as [http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython IronPython]".

  • Show off things Python does best or most conveniently. Link to specially edited cookbook entries.
  • Point to ready-to-use solutions and high profile applications, along with big name users.
  • Consider integrating the package index more with the rest of the site in order to show "vitality" as well as helping people find solutions.
  • Emphasise collaboration instead of fragmentation by providing quick access to community standards. Consider revitalising the special interest groups (both in terms of visibility and their status).
  • Simplify the menus: does there need to be replication of success stories, quotes? "Community", "Foundation", "Donate to the PSF": what's a newcomer to make of this? "Links": isn't this just a holding pen for content?
  • Simplify the structure: there should be one place for documentation and a simple route to it.
  • Make site functionality a part of the actual site: don't rely too heavily on external tools to search the Python documentation, for example.


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:

  • What the language looks like.
  • What style of programming the language encourages.
  • What the principal abstractions are.

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:

  • Whether Python supports the activity.
  • Does it involve a separate package, a stack of packages, or is it already "in the box".
  • What the API for the packages looks like.
  • If there are many competing packages, what the cost of choosing, switching is - are there any community standards?

The current library documentation does attempt to categorize 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 [wiki:CodingProjectIdeas/StandardLibrary/RestructuredStandardLibrary 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 Python is as suitable as in other areas.
  • Whether the available solutions are as mature as in other areas, and whether such solutions have "graduated" to the standard library or are standardised.
  • Whether community interest is as vibrant as in more familiar areas.

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


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.