World Plone Day 2008 Talk - Hunter College

World Plone Day 2008 Talk - Hunter College
Christopher Warner (c) 2008
New York Media, LLC (c) 2008
cwarner@kernelcode.com
christopher.warner@nymag.com 

When I was invited to be the keynote speaker by Hunter College for not just Plone, but on behalf of New York’s Plone user Group for World Plone Day. I really wasn’t sure what I was going to talk about in specific. So being psyched to do the talk was one thing but after strong consideration there was much to cover. Where was this to begin? Should the talk just cover some Plone technology that I could whip up in a couple of weeks at New York Media? Or, just how we are using planning to use it? On content management alone or what?!  Eventually I came to the conclusion that covering Plone and Content Management in a way that could reach a general audience was the best approach. The main concern is that most of the concepts involving Plone and Content Management itself as a topic aren’t readily understood. Hopefully I reach this goal of making these things easier to understand during this talk and I’d like to thank New York Media for allowing me to be here (as I spent some of my conference time on this, if you saw me working away; this was what I working on)

What is Content Management and What is Plone?
By itself, it’s about the phrase “content management”. Content, in this case refers to the data; and the data is what we will be managing at the end of the day. It’s the actual processes involved with managing content one may own. Whether it’s about a specific piece of data that comprises a list, or an object or any another piece of data that one considers content. So, a file by itself may be a piece of content or a model with a list of attributes that comprise facets such as “hair color, eye color, etc” all of this would be considered content. In short, content, is whatever data one considers to be important to them or their business. So, whatever the business is in the business of selling. Whatever that product is. That is the content. Whether it’s automobiles, magazines & newspapers, movies, TV, ones own physical labor, etc. All of what compromises the product being sold is content. That being defined, we now know it’s important to us. How do we go about sharing this content on the web, managing this content and generally exposing our content so that it can be utilized in many different fashions by many different people. We don’t live in a static world any more, the concepts of waiting to read a paper in the morning is becoming more foreign and technology is allowing access to this content more efficiently each day. No one is waiting for the newspaper in the morning! People are going online and accessing this content 24 hours a day 7 days a week. It’s at their finger-tips! Due to this fact we need to be more efficient in providing this content. This brings in what I have termed the “Three Core tenets of Content Management”

1. Definition of data - What does your audience consider data, what do you consider data and what is the process that gets that data from you to your audience. Is this process understood? When we ask these questions, it’s not a singular realization. It’s a team-based realization of the product that you are providing to your customer and the levels of quality you plan to achieve.

2. Workflow - How does all of your data get from you to your audience in one way or fashion; is it just a website or are you reusing some of your data elsewhere. What is this workflow? Also, again, when we ask these questions, it’s also not a singular realization. Again it’s a team-based realization of the product and all of the processes and cycles that it must go through before reaching your customer. If it’s a magazine do you know the houses it must cycle through? How does the front cover get on your website? What processes are entailed? Etc.

3. Security - Views/Permissions - Who can see this data, do subscribers get unfettered access, are there different tiers of access to different types of data? It’s about security but it’s also about retaining control of the product until it’s completed. Once it’s hit the web you will no longer have that access, so controlling what pieces of data can be seen up to that point is important.

All of these are questions that apply to each of the core tenets.

One of the critical and most important issues involved with content management is workflow of data and process. It’s a severely neglected piece primarily because we tend to think of these issues at the software level alone. If we have not defined what we consider a piece of data things will get confusing extremely quickly. Lets take an arbitrary example of a fashion model; one may envision this model as being comprised of just physical attributes; and another will envision this model as just a name. The definition of what a piece of data looks like critically important. The process in which that content is then displayed to your audience is also very important. If it is not defined your audience will certainly not understand what they are looking at. Things go from confusing to pretty much mind numbingly insane. They may look at your webpage, your product and simply be confused. You want to know that X editors will work with X content before it’s passed on to X person or profess for review and then passed onto a final person for approval before it’s displayed in lets say a webpage. The more people that understand the process, the better.

When we say workflow what we are actually saying is how we step through the content and/or the processes in which the content has to go through before being published or displayed in its final form. You can think of this as a process or formula if you will. For instance, when you get up in the morning there is routine that you step through before most likely going to work. If you think of yourself as the piece of content this is what your workflow would be:

1. You wake up.
2. You find something to munch on.
3 Turn on the TV. (for those of us with such items)
4. Read some email.
5. Run an exercise routine (sub workflow).
6. Shower, brush our teeth, put on some clothes (more sub workflow, for some of us. I only put clothes on because everyone else does).
7. Lock your door and proceed to work.

The above 7 steps would be what we call a Workflow in Plone (or Content Rules). Summarily, these steps include several sub workflows or routines for each step. For example the Shower, brush our teeth, put on some clothes (some of us) etc are part of the Bathing sub-workflow. So in the above example we are the content-types and before we can present ourselves to the world we go through our “Morning Routines” or “Morning Workflow”. Essentially covering our three core tenets to the tee.

Next up, we have views of ourselves. This is how the world sees us after we get dressed and are ready to present ourselves to the world. (Again, some of us don’t mind stark nakedness). In some cases there are privileged human beings who get to see us in certain views we don’t want the public to see us in. A good example of this is a significant other. One that has been granted access to see us unclothed; some random other individual has not been granted that access and therefore they only have permission to see us clothed. Then there are the stalkers who have been revoked access outright and really should not even be within 500 ft of us. Every now and then you get someone who doesn’t consider certain access rights to be as privileged as you or me and you get to read Playboy and/or Playgirl; (whatever floats your boat).

This is how views and permissions work in Plone, users/groups have the access to see or modify content based on the permissions they’ve been given by the administrator. Very simple stuff, the hierarchy and granularity of this system can become pretty fine-grained. Or in simple terms, you can tune and turn the knobs any which way that you want.

The content in specific is recognized in Plone by calling it a Content -Type or Content-Object. When we say object we mean everything involving that piece of content. So, a Model’s name by itself may not be a content object. However, a model comprised with all of the attributes; a name, hair color, age, eye color, attitude, highlighted attributes like a model known for her/his legs or the color of their hair etc. All these combined make what we would refer to as a content object. In real world terms, something that can in essence be held or modified. In computer terms, something that combined with all of its attributes or facets we can reference. So in the real world, for the young ladies in the audience You may look at Model and the first thing you identify are the accessories, the colors. A completely made-up typical conversation would be along the lines of. “Wow, the color of that outfit is amazing, it fits her so well, did you notice the shoes? That Gucci watch was the perfect match, the earrings, if she wasn’t already wearing them I would be wearing it!” In this scenario the model is the object and the accessories are attributes to the model. At the end of the day without all of those attributes the model, is still a model. There are some base attributes we expect of a model, Tall, thin, attractive. These will be the same regardless of what model we are talking about.

For the gentleman in the audience, your example, is the same one, I already explained it.

Content Management is also about using data through out as many different systems as you want. Your data should not be locked up in lets say Plone or any other content management system. It should be available in one universal data format and readable or presentable in 100% standard. You take this approach because you want to provide your content, to your customers in the fashion that they want it. It is just good business! Locking up your content lowers the amount of eyeballs as well as affecting your potential bottom line. You should be able to break down your data into xml or some other format so that it can be easily imported or read and used in other systems. That said, the access to the read only content should be available as easily as possible. This, so other systems can interact with your content without having to copy bits and pieces and cutting up the concept of the object or the content. Why copy the data around when it is available in one standard format, in one place? At best you want one core system that is managing what you consider content.

So what is Plone? Plone is probably one of the few if only content management systems that espouses all of these tenets. It has an object backed database that manages content objects in a way they can be exported into a universal data format or making the content available and/or exposed via xml-rpc. It also has rich features in regards to clustering, security, workflow, process and user management. As well as an event system and one could go on.

Why New York Media chose Plone
New York Media, which used to be New York Magazine (there’s some brain exercising here; but New York Magazine used to be owned by a media company called Primedia which was then sold sometime in 2003 to Bruce Wasserstein and Co. Since then the magazine has grown).

It was at Primedia where the opensource content management system Krang was born for the management of the companies portfolio of Magazines. When New York Media was sold they took this content management system Krang with them. There’s some background here and a slight disclaimer that I used to work at Primedia. Noting that, Krang is great for a quickly made static site where not much is going on. If that’s the sort of data that you plan on organizing then I whole-heartedly recommend it; it’s very barebones no frills and it will get you what you want fast. You have a logo, a bunch of pages; some templates; pretty simple. The problem is if you plan on growing, it’s not as great. New York Magazine if you take a look at the homepage (nymag.com); you’ll see A LOT going on. There’s so much more going on than a simple webpage; you see things like RESTAURANTS, BARS, NEWS & FEATURES. You are looking at Content-Types, objects that have attributes associated with them. Listings on and on and on. You need something to manage all of this; a database is not a management system. It’s just a store; a Data. Base. It’s a commonly made mistake that you can throw some data into a database and build an interface and voila! Sadly, none of that is managing your data.

Managing all of these different types and content itself was quickly becoming a problem because Krang isn’t a dynamic system. It was written using Perl OO (Object-Orientation), which in comparison to other OO languages is extremely lacking. In Krang there is no workflow system, no concept of managing tools or objects outside of the system. It wasn’t built on-top of an application server so there is no cohesiveness and because it’s not widely used there are many, many, many bugs. From memory leaks, race conditions, to obtuse unreadable code, and module organization. Needless to say it was and still is a pain to administer, a pain to program for and generally a pain. Having to deal with the system myself for nearly a year and half at Primedia with over 50 magazines and all of the editors involved, then, summarily making the decision to continue the same journey at New York Magazine it became obvious that it was time for a change. I deeply wanted to change it. Albert Lee, the current Director of Technology and summarily my boss at the time made the decision of putting me in-charge of content management. Initially, I just wanted Krang to work because as a System Administrator it was incessantly causing problems. Diagnosing those problems was I believe on the level of learning the Microsoft dark arts. I knew Perl, but programming as a job? Administering Krang in and of itself was becoming a full-time job. No way I thought! Perl. As a job? I didn’t like the language for all sorts of reasons but it was used to build this big system and I’ve seen that done time and time again and all the pitfalls were staring at me in Krang. At Primedia it had caused me enough grief in having to explain to editors and users why they shouldn’t be putting Microsoft-Office.exe in Krang. There was simply no choice but to get it working at least halfway decently. I then started taking a look at the code in deeper fashion, mapping it out better looking to where subsystems could be analyzed and replaced. Just to better understand how I could subplant some of the ideas that I wanted to work with (At this time OpenSolaris was about to be released and I bandied about the idea of working on it and maybe going to work for Sun Microsystems  before this content management excursion). After two or three weeks it became obvious I was climbing up the tree backwards. The system itself hadn’t been designed for any of what we planned to do, things seemed very ad-hoc and there is really no subsystem with the exception of publishing to speak of.  My nights blurred into early 2am-3am mornings and I realized I would first have to stabilize the whole idea of the way Krang published and managed content and to start with this ball of spaghetti mess felt overwhelming. This is when I began investigating totally different solutions, I think maybe Al called me in for a meeting and planted the seed which got that going in late 2007. That’s when I started taking a look at something called Zope and the more I looked at it the more it became clear that it was something that I wanted to use.  After looking at Drupal, Ez-Publish and a host of others it was the only system that seemed designed for true content management. There are a lot of pontificators who will say if you want to do a website then Drupal is great but I saw Krang in the fact that it’s using Php OO and the core tenets aren’t fully baked or are completely non-existent there. This then led into the most completely insane idea I may have ever had. Well for those of you that know me. One, on a list of many completely insane ideas I may have ever had.

I was going to write my own content management system. This was dead serious.

Using Zope and its CMF (Content Management Framework). I began searching around; I was going to base this whole thing off of OpenSolaris/Zope+CMF and Postgres using ZFS as my base filesystem. I AM SO COOL I thought in my head and I am going to get this going. New York Media could fire me, I really didn’t care, I would just take 6 months off and day and night work on it. Then I would release it and start my own awesome consulting company that got everyone in the world to use it. It had to be done if I was going to sanely continue on at New York Media anyway. That’s when someone realized I was about to drink a vial of nitrogen and prepare to accept my Darwin award. So, they simply recommended Plone, some people had already thought of that!  After the first week I was HOOKED. I even wrote a blog entry about it and since then I’ve been hardcore Plone/Zope/Grok (for one off applications). I tried to quickly demo the functionality and run a presentation stressing the fact that we NEEDED Plone and summarily; that’s the long and short. Since I don’t own my own media company. New York Media seemed like a good place for all this cool to go down.

We needed clustering capability, we were being constrained by our current content management system, our data model didn’t represent the way editors/producers or designers spoke about or envisioned our content. The management of the data itself was simply left to Mysql and scripts all of which were simply not working and not going to ever work in the long run. Most developers and/or system administrators who like working things absolutely loathed Krang or didn’t even want to touch it and it was difficult to work with all the way around. That, combined with the fact that we weren’t normalizing our data in any fashion or doing any of the things we should have been doing. Compounded by having an extremely small team. It didn’t make sense! There is/was simply no way to continue on that path if New York Mag was going to be successful as a media company with some of the ideas coming down the pipe. How could one possibly run a media company for today’s world with yesterday’s idea of it?

So the main person to thank here for this is Albert Lee for allowing the painful process. It’s not been the easiest road but the road less traveled and all that. I’m actually pretty sure no one else saw or understood the issues as being as dire as they were.

So how is New York Media using Plone? Where is it currently being used?
Currently we are using Plone in Image Management. It’s been a process and it’s easy to get fatigued but we are moving forward. There are other areas where Plone will eventually become useful whether the institution at large knows about it or not. For instance, why should New York Magazine’s content only be available in one language? Or why shouldn’t the disabled be able to read New York Magazine easier? Why limit the audience? Sure it’s a magazine about New York for New York but as we all know New York is a place of rich culture with people from all over the world living here! New York is an international melting pot but our website doesn’t reflect that; and the web isn’t just in New York. Our market is international just by the fact that we have a website! There’s so much to cover sadly, I probably need to write a book or do a phd thesis or something.

This is great! So, it sounds like Plone is maybe something you want to use. I’m going to use it for everything! (small little break dance here)
Hold on! Put that vial of nitrogen down!  It’s my turn to save you. Plone is not the Holy grail in regards to content management, nothing is. Proper content management isn’t just about using one piece of software even though you may now love Plone. For some institutions or people it may be enough but by itself it sure isn’t going to work if you think displaying your content on a webpage is the only issue. Plone at its heart is a content management system. If you plan on creating a web site that doesn’t change much or have a one off application where you are managing one “content-type” or simply you have 5 attributes to an object and you are using a LAMP stack. Plone is probably too much for you. Plone is not the Holy Grail for that space. A framework that allows you to create easy quick widgets with a modicum of management, of data, is not the same as a framework that is going to manage your content. If you are like me in a rapidly changing environment where you need to manage many content types and data models and the need of your users will ALWAYS be changing you could do no worse than Plone. Even for a small group of content-types it’s obvious you will need help with management. Otherwise, you end up with 10 different admin interfaces, 10 different data stores, all managed differently; in different places; and you start scripting around that and building around that and it turns into a spaghetti mess. Primarily and especially if you have a small team; if you aren’t a large media house with a large team of developers at your finger tips; you simply cannot afford it. Even if you are a large media house, it’s not going to work if you aren’t dedicated to the underlying processes and concepts. The underlying framework that will need to be written is staggering; and again, even if you could. You would need to be willing to dedicate time just to that! You’ll probably need proper locking of objects, clustering, permissions, workflow, security management, user management, search capabilities. Drupal? Share-point? Midgard? None of them are as mature as Plone and its underlying framework Zope. This isn’t a comparison talk but I challenge anyone here to find something comparable, today, for free, all in one package or without having to build from the ground up available in this market. Now, don’t get me wrong, for one off applications I recommend Grok, Django, Pylons, etc; but for content management. The only thing out there doing it all is Plone, and that’s thanks to Zope as an application server and the hundreds if not thousands of people who have worked on this relentlessly nearly for the last decade. Bottom line, you can’t buy developer time like that. Even if you are Google (which is probably why Google instead just hired one of the Plone founders)

There are things Plone is good for and things that it’s not so good for. So you would not want to run Plone as your blogging platform of choice. It’s possible, people do it, but as far as blogs go it’s a bunch of text and images presented in log format. Wordpress/MovableType/Drupal are great for those sorts of things because that’s what they are good at managing natively a “Post”. Using Plone would be like driving a mac-truck to work! (well unless your work involves being a truck driver of some sort). As the saying goes. Right tool for the right job. That said, technically speaking, technically. One could write a blogging product for Plone and again, people have. It could even be as feature rich as lets say Wordpress or MovableType with enough time and effort. Of course, you could save yourself the year or so, and the oodles of development money and just use Wordpress.

I should also note that contrary to our drinking vials of nitrogen analogy. There are sometimes where building your own tool is a good idea especially as it relates to content management. The space is rather new considering that management of content has become an issue due to the digital archival and creation of content across the board. New is relative by the way. As it relates to dead-tree media, let us say a decade or so and some of the tools that are available have already become useless. That combined with the fact that every different institution or project is going to have their very own special corner cases. So it’ll force you to innovate. Especially as larger companies and organizations are trying to figure out the best way to manage their digital assets. Media companies in general have been notoriously poor at this; Video media companies have a little bit of a jump-start but dead-tree media is pretty much brand new to this arena and their needs are completely different.

Dead-Tree Media, is dead but magazines are not dead. Magazines are Golden houses of content, they have the most important thing on their side. Content creators, WRITERS! A blogger isn’t a writer, people are still confusing the two. A blogger for all intents and purposes are the op-eds of this new world. The only thing that has changed is the medium, a media houses audience are using smart-phones, laptops, screen-readers, rss readers to access their content. They aren’t picking up the paper or ordering the magazine anymore. They are going to magazine.com. They are on the train with their Iphone in their hand trying to access the site or read a downloaded article or podcast by a specific author they like and then forwarding it through a social network. The only dead tree media company who has blazed something of a trail here is the New York Times. That said, since these ideas will be new to your organization there are “talks” as I like to deem them that one will have.

The System Administrator Talk

You are eventually going to have this talk with a system administrator do to the way Plone operates and the stack it works within. It uses things like Zope which is an application server and you need a proxy server to interface with it if you want to properly deploy it. Then you may actually need to have a caching system of some sort; so that means Squid or Varnish, then there’s the object database; and ZEO clustering. All of this is relatively easy once you understand the concepts so that’s not the major issue. The difficult issue will most likely lie with your system administrator. If you are a System Administrator or have been one, know one or have to interface with one. You are probably aware they can be very hard-line, structured people. They detest adding anything new to a working system most likely because they are aware that more than likely 9 out of 10 times it is highly likely to break something, somewhere. Whether it works perfectly by itself or not. Once introduced into a new environment it’ll most likely break something they’ve worked tirelessly with to get a perfectly balanced eco-system. In a time where every developer is 100% sure there stuff works and 1% of the time that is true. Trust me,when I say, you will have this talk. I know for sure, you will have this talk. I will bet you money, today, right now to anyone here. You will have this talk. Even if it’s a talk with yourself because you are the system administrator.


Before you deploy or think about deploying there are the things you’ll need to take into account. Will it scale? How much memory is my current development instance taking up? What sort of environment currently exists and how can this fit in our current environment. If you don’t know; then you need to find out. Should you need the help of your system administrator. After you ask yourself those questions and don’t have the answers, the time to talk to him or her is then. Not when you’re done, but before hand so they can either prepare to get you what you need or to prepare to put your kit into his or her environment.  Learning about all of this maybe a bit of a stretch for a system administrator under the gun. So if you can make it as easy as possible, that is what you should do.

If you do not prepare. Then you’ll most likely get answers like “It’s not LAMP, i’m not supporting it. How come you can’t use Drupal or Joomla or something that uses our LAMP stack? Everyone uses LAMP it’s like industry standard defacto!”

“Why do you have to use Squid/Varnish?! It doesn’t fit into my LAMP stack; sorry you lose, I win.. small dance here.. No, seriously. We can’t do it, little dance here.”

“Mysql, Postgres, SqlLite, Sql Server 2000, Oracle; I can handle. This object database? There’s no M no P?! I have never heard of this before in my life. Sorry, we can’t do it!”

What will make them even more adverse to any change is if you come waltzing along last minute dumping all of this on them without having answers to any of these questions.

The Developer Talk - Poisonous people
This bit is here if you have to work with a team or on a team of other developers whom you may have to interface with at some point. There are going to be battles especially with Developers. I’ve found throughout my trials and tribulations that there are two types of developers. The Good (me and you) and Everyone else. The Good are willing to use the right tool for the right job and generally aren’t afraid to learn new tools or new languages. There’s nothing wrong with picking up a new language and learning it or trying new things so that later you can add to your gamut of decision making weapons. It’s simply proper science, and the natural order of method. Pretty much, it’s open-source. Building on the backs of other great finds to create better, bigger, faster, cooler stuff. Again, using the right tool for the right job is important. Now, the other type of developer is what I’d like to call a silo’d closet developer. They don’t like anything changing from the way they do it, they have ideas that are specific to their realm and their realm only and they will do everything possible to keep it that way.


The Lingo of Business
Face it, at the end of the day this is about the bottom line. This is business and saying something is free is just not good enough. It’s highly attractive but that’s like saying “Hey this Porsche over here is free! TOTALLY! All you have to do is build it!”. That is simply unacceptable. The attractive options of Plone is that it’s free, has many features other enterprise content management systems do not, has a corporation behind it’s underlying technology and many consultantcompanies if one should get stuck. The detractors are there are areas where there is more work being done specifically with documentation so that some of these concepts are more accessible to new users and developers. Also we are dealing with a new stack so you won’t readily find as much developers as a LAMP stack but as time progresses these things are being worked on and will change.


Management Talk
Your other battles will be from the management type. No one from management ever walks over to a skilled painter and tells them what brush stroke to use for their commissioned piece. Hey they may not like the color, or they may want more paint on the canvas but they aren’t going to tell the painter what brush or stroke. Some guy chopping wood knows what axe or wood splitter works best for him/her. A mechanic knows what he/she needs to fix X car and if a specialized part for the car is needed; that is simply what is needed. So this is one of the few industries where that age old battle doesn’t even get a chance. Where people who simply aren’t qualified to make those sorts of decisions are making them and it’s forcing developers, system administrators and ilk to write and deal with systems that are at their core; void of all thought and process, essentially brain-dead on arrival. These systems never, ever, last long and shockingly the process is begun again. Some people leave after burn-out, new people fill their seats, nothing changes. Moving from broken system to broken system. We can stop this sort of behavior!

Would you would want to use or get in a car built by a manager at Ford with a degree in humanities. Who has never done the work of engineering anything in real life? [Some of you would and that car would be called the Pinto]. No one here wants to take direction from a PHd who is theorizing about how things should work but doesn’t take these ideas to real world conditions or environments. This happens a-lot in this industry and if you take anything from this talk. Take this bit. We absolutely need more people who are developers, system administrators, engineers who are doing this stuff in real world in positions of management. People who can make these decisions, get funding for them and guide the non-technical side of the company in a way that both sides are able to do their jobs effectively. If you aren’t already, please take some business and law courses. Leaving these critical topics to people who simply don’t understand what they are dealing with is dangerous and it’s putting undue strain and stress on this industry in particular. We need to move forward!

There is also the idea that doing all of this will be something that can be done by using a solution like Grok/Django/Pylons/Turbogears/Cake/etc or some other solution using some other language. It’s a fair idea because it is possible to date for someone to do something like this on one of those frameworks. However, people who say this have normally not thought everything through. They aren’t thinking user management. They aren’t thinking workflow or process management. They aren’t thinking about the data itself and the processes it has to go through, they aren’t thinking clustering and if it doesn’t apply to the three tenets of content management then they are all topics that would have to be written into the code. Zope has been around roughly since 1999 working on these problems. There is a wealth of knowledge available there that is literally untapped. If you plan on doing something new at the very least look in that direction to avoid pitfalls and traps. Also note that you’d be playing catch up. Which means you’d have to make a significant amount of investment in developer time and money to gain any traction, opensource or not. That said, again, there will be cases where you have to do your own thing and if one must go and write their own content management system using one of thoseframeworks then fine. Just be prepared to handle all of the above; in retrospect I would of had to learn all of this the hard way and someone would be given a Darwin award speech on my behalf.


Pitfalls/Traps and Office Politics
It wouldn’t be fair to just leave you with this without talking about some of the pitfalls, traps and general office politics you may have to deal with as subtle as it may seem. Believe it or not some of the hardest people to get on the content management bandwagon will be your peers. They will fight you on concepts, some, will not understand the whole idea of content management and they will generally try to kill your project. The best way to handle this or at least based on my own environment(s) has been with facts and to just try pushing forward where one can. If anyone is familiar with Linux it’s the same sort of ideas and attitudes a lot of us had to battle when it was growing up. Our Solaris and NT friends made fun of us, still everyone pushed on, regardless of, and today the idea of Linux and Open source itself is no where near foreign. It’s the “L” in LAMP.

That said, start with something small; a content type by itself, and slowly grow from there. Explain your ideas as they relate to that specific content type and extrapolate where necessary. Where you can see an angle of getting your concepts in; do so. Try not to be overbearing and generally take your time. Social dynamics take time to change and your small win here and there will eventually add up to a big win overall. Also, don’t give up. It’s easy to say just screw it; do the project in something you realize is lacking and then everyone points the finger. Either way, you lose but if you do it right, and stand-fast even if it means you have to move on. The next person in your seat will at the very least be able to see your structure. (That or destroy it completely and still nothing will get done; at least you can go to sleep at night). There is a book one of my old professors recommended that may come in handy called Fearless Change: Patterns for introducing new ideas by Dr. Mary Lynn Manns and Dr. Linda Rising. It’s a great read and I heartily recommend it. Also realize that you are battling concepts. People who think that just because some other organization did it with 50 developers at their disposal the same team of 5 developers should be able to do the same. They aren’t aware of these things; so be realistic. If you think it would be cheaper and you can achieve your goals in the long run with off the shelf commercially licensed software then maybe it’s a choice you should make. Of course I can’t realistically think of any cheap solution but I’m sure there are some out there that may fit your needs.

So what’s the best way to get started with Plone? How does one learn about this stuff?
The best way to get started is to download Plone at http://plone.org; there is lots of documentation unfortunately fragmented all over the internet and there are about 100 different ways to do things which can be absolutely confusing to a beginner. There is much debate and work going on right now on the best way to fix this problem. That said, after downloading there is a vibrant community online via mailing lists and IRC (Internet-Relay-Chat) that are extremely helpful to any questions one may have.

That’s all I’ve got, thanks. I’d like to thank Hunter College for hosting this event, the New York Plone Users Group for inviting me to be the keynote speaker on behalf of New York and New York Media for allowing me to be here.

Christopher Warner
cwarner@kernelcode.com
Christopher.warner@nymag.com

Leave a Reply

You must be logged in to post a comment.