Favorite Parts of 2011 (it's not ALL Tridion)

Not to be confused with the SDL Tridion Favorites Feature, here's my favorite parts of 2011.

11. Becoming a Real-Life PM

I had the opportunity to run some "real" projects with American Specialty Health's IT Operations as a PM. It was a little déjà vu working on a WFM (not WCM) purchase with a similar scope, budget, and the fun challenge of balancing IT, business, and project needs. I feel I did well in the vendor-facing PM role, but I tease my consulting peers that I "got tired of vendors... so I joined you guys."

If you're a mid-to-senior knowledge worker that gets a chance to work for American Specialty Health, go for it. Try to get into a position that involves projects and/or writing within any of the departments that interest you. Positions open on their corporate site. Tell them I sent you (no actually tell them Christy, the proposal manager (RFPs) sent you, yes she'll split any referral bonus with you).

10. Winning 3rd-Place in a I Love Work Video Contest

Here's my finalist video at my last job.

9. Winning an SDL Tridion MVP

Wow. I tell everyone contributing works. Seth Godin was right.


Don't mind the cute toddler. I'm sure she'll ask me to take this down when Google bot or its equivalent in 2020 keeps bringing up my old award in searches for her.

8. March "Bootcamp" in San Jose

A benefit of the MVP program is a test software license and occasional invites to partner training events. I had to pass up the no-expenses-paid invite to the Amsterdam Bootcamp, but instead went to San Jose to meet my unknown-at-the-time future coworkers, learn about extensions and the revised event system, and enjoy a few days of Tridion geekery.

7. Graduating with a BSIT-BSA

As much as I like how "Bachelor's of Science in Information Technology, emphasis in Business Systems Analysis" sounds, it's simply an IT degree (or BSIT-BSA).
My toddler won't be able to grow up and have an excuse to skip college, well at least not the one that goes "Daddy didn't so I don't have to."
University of Phoenix may not be the most prestigious school, but it's a legitimate program that gave me a chance to run 20 ad hoc 5-person teams through one (or more) 5-week projects with 2 to 3 electronic deliverables (assignment, requirements, etc) and presentations in front of a live audience, complete with last-minute meetings, project changes, and the occasional slacker (or cheater).

Hey that's actually pretty good training for IT or consulting work. The chance to meet other professionals in the industry and make a few friends was worth the student loans.

6. Going to the SDL Tridion MVP Retreat

SDL Tridion 2011 Favorites Feature

This isn't about my favorite SDL Tridion CME feature (that's currently a tie between BluePrinting and Where Used?), but a quick video on how a content author can save favorites.
The "send to my favorites" feature was especially useful with Tridion R5.3, where the browser didn't show "bookmark-able" URLs. We can now directly link to items via the browser address bar, but it helps to have these built-in options in the same place that authors do their work. Can you guess where the data is saved?

30 Seconds

Setting Camstudio to 30 seconds, I miss the cut-off by a split moment. Hopefully you'll get the idea from the video.

Dreamweaver Syntax with FieldPath

Sometimes I get carried away with a TridionWorld forum post and come up with a really big example. So in the name of re-use (and not just as a euphemism for "copy and paste!"), here's a post on an example DWT.
The main take-away for me is that "FieldPath" is a nifty little variable that knows it's current context. Use it with deeply nested Dreamweaver template (DWT) loops to keep track of where you are in relation to an XML (component) source. A background with XSLT development is helpful, but not required. I'll have to follow up with exactly what Dreamweaver syntax means to a SDL Tridion implementation, but for now I'll leave it up to Walter, aka "the Tridion Architect" to explain the levels of Compound Templating.
Either syntax "@@" or "${}" works, but it's best to stay consistent within an implementation, team, or at least a template building block (TBB).

Note the shortcut" paths, but it might be a better practice to loop over the full paths with "Component.Fields" then "Field.Values") DWT TBB
<ul>
<!-- TemplateBeginRepeat name="Fields" --><!-- for each of the fields under the root node of ${FieldPath} -->
 <!-- Fields is at index: ${TemplateRepeatIndex} (only one node) -->
 <!-- TemplateBeginRepeat name="Values" --><!-- for each of the values under the current path of ${FieldPath} -->
 <!-- Values is at index: ${TemplateRepeatIndex} -->
 <li>
 <!-- 
  LinkSource: ${RenderComponentField(FieldPath + ".LinkSource", 0)}
  LinkName:   ${RenderComponentField(FieldPath + ".LinkName", 0)}
  LinkTitle:     ${RenderComponentField(FieldPath + ".LinkTitle",0)}
 -->
  <a href="${RenderComponentField(FieldPath + ".LinkSource", 0)}
  " title="${RenderComponentField(FieldPath + ".LinkTitle",0)}
  ">${RenderComponentField(FieldPath + ".LinkName", 0)}
  </a>
 </li>
<!-- TemplateEndRepeat -->
</ul>

Source

Blogging Tips for the Tridion Professional

I've been hearing this a lot lately: "I've been meaning to start a blog."
To my surprise, these are not empty promises. We saw three new blogs including one by Ferdinand Lugo (aka the Tridion Nut). I wish I could say I inspired him, but a blog is something that really comes from within. I do credit him for helping me find source material and inspire my recent Tridion Jokes post
So again with the unsolicited advice, here are three things to think about for the would-be Tridion-or-otherwise blogger. Enjoy this blog post about blogging--meta-blogging if you prefer. 

Why? Because.

Start with a reason. This is the most important part. Long after your first post when it's tough to write, it'll help to remember why you started. It's okay if this reason changes. It's okay if it's a lame reason. I admit blogging at times because no one listened/listens to me in real life. ;-)

Good Primary Reasons:

  • To contribute to a community
  • To complain about problems
  • To offer solutions for problems
  • To improve your writing skills
  • To sell your business, organization, or mission
  • To further your career or create intellectual property (whatever that means, I hear it's a good thing)
  • To leave a legacy; record moments in your life; share with friends, family, or your future self
  • To achieve other passion you deem worthy

Bad Primary Reasons:

  • To make money (maybe okay as a secondary reason, but know that users don't like being tricked and are pretty savvy and adamant about "schemes" -- don't be a shill or sock puppet)
I'd accept "become the number one expert in my field" as an okay primary reason to blog over "to make money," although there's a paradox. Genuine and authentic content may likely earn you opportunities, a change of scene, and possibly career satisfaction. But you probably shouldn't start with material gain as your only reason to blog.
I've blogged to remember what it was like to change from a couple to a family. I've blogged to share cool things with my coworkers. I currently blog to help contribute and build a technical community surrounding Web Content Management, specifically SDL Tridion (yup, I'm biased).

Web Content Management Done Better

Why Not "Done Right?"

In a previous post I only hinted at all the different "touch points" a Web content management (WCM) system such as SDL Tridion can have. And it was only for HTML tags! To balance out the seemingly bad news, I'd like to share the positives that come from a well-implemented system. I don't assume to have all the answers to managing content, but know there are some things that make it better.

A WCMS works better when:
  1. You follow standards and best practices by separating code from design from layout while using good naming conventions, include comments, etc
    • Developers and other technical people excel at spotting the differences between code so the framework or method doesn't matter so much as the consistency between elements
    • It helps to follow the technical community, but to also borrow from other disciplines to find the best (good) practices for your given environment.   
  2. You follow a life cycle (almost any method works, as long as you have a way to maintain changes and synchronize functional and code changes across environments--Joel's test definitely applies)
    • Believe me, it's tempting to just make a quick fix on the production WCM system or WCMS and forget your other environments. If at all possible, don't!
    • (Un)fortunately the 7 places an SDL Tridion setup can add markup are not always controlled by the same people. It's even worse when you multiply the 7 places by the four locations in a typical DTAP setup. "But the environments are exactly the same!" Are you sure?
  3. You empower end users to own their content
    • The project team and organization needs to set the right expectations and hold content owners responsible for their content.
    • However, this works better when you provide training, support, and documentation like any other internal or external system*

PowerTools Gotchas

Welcome to the influx of new members on the PowerTools Flow Dock. Here are some useful "gotchas" for those interested in helping with or following the SDL Tridion PowerTools.

Setup

  • Your SVN (Subversion source control) word is not your google password. You need to be added to the Google Code site as a committer and then you'll get your Google Code-specific password.
  • If you change your setup (create a new .NET project), don't forget the virtual directories.
  • The core service DLL is intentionally not included in the .NET project. Read the text file in the references folder for the reason and instructions.

The Plan

Unlike the Cylons in the Battlestar Galactica reboot, we only have an informal plan and schedule for the PowerTools at best (sorry, couldn't resist the geek joke). We rely on the voluntary contributions of a mixed group of internal, external, technical and even non-technical (like me!) volunteers. Our results are not always according to schedule, but we're making progress towards a release. We currently estimate a 2012 Q2 release for the tools; however some of the tools are already done. Despite an informal plan, we do have a guiding principal to make our results repeatable.

The Seven Deadly Places... to Add Markup with SDL Tridion

Even in a "simple" SDL Tridion setup, there are several places to add HTML markup.

Pop-Quiz

How many places can you add or change HTML markup in an SDL Tridion setup (including "bad" places)?
  1. Components - entered into a rich text field (via the GUI by an end user)
  2. Filters - added or changed by a schema filter (done via XSLT defined in the schema)
  3. C# Template Building Block - added or changed by a template building block (TBB, typically from a .NET assembly or C# fragment)
  4. DWT Template Building Block - added or changed by a HTML layout template building block (typically with Dreamweaver-syntax)
  5. Component Template - added or changed by a non-modular component template (via XSLT or VBScript aka "legacy")
  6. Page Template - added or changed by a page template (or its corresponding TBBs)
  7. Presentation Server - everywhere else; okay this is a slight cheat, but in a complete WCM setup, we can't ignore the target presentation servers which include markup outside the Web content management (WCM) system such as:
    • HTML pages or the equivalent for the given Web programming framework/language
    • the appropriate in-line script, file, or compiled code that can generate HTML
This can be "deadly" because although you can sometimes guess where markup comes from, you can't be sure with a casual glance. Even harder is the fact that there are legitimate reasons for adding markup in any of these places including:

Enterprise Software Rivals

The biggest competition for enterprise systems are likely the simplest tools that get the job done.

Big SolutionExample Smaller Rival
Content ManagementMicrosoft Word offline or a blog online
Web Page or SitePDF
Project Management software
Workforce (Call Center) Management/Optimization
Electornic or paper forms
Excel
The latest programming IDENotepad, Notepad++, Gedit, or Vi

There are plenty of good (and bad) reasons to purchase the more expensive alternative. Sometimes you are better off starting with the manual, "this-is-how-we-did-it-in-my-day" tool/process to really appreciate what the bigger solution offers.

As my Tang Soo Do instructor used to say, "What would day be if it were not for night?" I'm pretty sure he meant it as a metaphor for choosing between software solutions.

SDL Tridion and Consulting Jokes

Random not-so-humorous jokes for your next time dealing with (possibly Tridion) consultants...

On Schema (content types)

What do you call a (insert your favorite Web Content Management system) implementation with only one schema and one template?
A blog.

What do you call (insert your favorite Web Content Management system) with hundreds of near duplicate schemas.
A slight misunderstanding.

On Tridion Employment

How can you annoy an SDL Tridion consultant while impressing HR?
Mention you've always wanted to work for SDL, the company, to work with Tridion, the product.

How can you get interviewed for a Tridion implementation contract?

Who are your Organization's Superstars?

I've been called a jack-of-all-trades, a "guru," and on occasion my favorite, "arrogant." Ok, I didn't like being called arrogant but a buddy said it was a badge of honor--why wouldn't you want to be called arrogant?

One place to check any arrogance in at the door is with your team. My unsolicited advice to any working professional is to respect your coworkers, and to know specifically who are your organization's linchpins aka "superstars."

Title

Although you might know an administrative assistant, office/project coordinator/manager, or supervisor acting as the role of superstar, you can't always tell your super stars by title.

I've known IT "admins" that had direct lines of communication with the CIO. I've known volunteers who could get two dozen people in a Webinar by invite alone (and still not be satisfied at the turnout). I've personally served as a front desk receptionist, a customer service representative, or as the intern but often had access to the boss, management, or could potentially solve your problem given a chance. This idea of hidden power relates to types of power and distinguishes between official titles versus chosen or adopted roles.

Roles

I don't know how, but the best and busiest office managers, admins, or coordinators I've known seem to do their jobs, and then go beyond and act on the office morale committee, share the 2-for-1 Jamba Juice coupons, remember everyone's birthday, organize the office parties, or have all the inside leads for {pick your chosen profession or industry}. These linchpins often do the exact same tasks as "official" management and help define the informal office culture and leadership.

You might recognize some of the following roles:
  • the in-house human search engine: person who can find anything online in seconds, no matter how obscure (careful, some either enjoy or begrudge this power--act accordingly)
  • tools master: has access to, and knows background for, all the official and unofficial tools for the shop. If you're in software development, this person knows the useful Firefox plugins, how to debug with the JavaScript console, and how to make re-usable scripts with Selenium.
  • local guide, all-in-one concierge: this linchpin knows the ins-and-outs of the city, can book things no one else can, and might even know individual office staff food preferences
  • the subject-matter expert (SME): your product, software, or process guru that knows everything about anything about X
  • even the contentious curmudgeon: who by paradoxically questioning the status quo, asking the tough questions, and challenging others makes it a better place to work at 
  • know any others?
Roles and titles change, but the one consistent feature of the organizational superstar is their ability to contribute emotional work, beyond their assigned lists of tasks. Whether they piss you off or brighten your day, they're dedicated to the mission and the organization, even in ways the organization may not recognizes it needs.

What's a Professional? What Dance Teachers and Consultants Have in Common.

Last month I concluded a post about where I really came from (I got an eye roll when joked that I "just popped out of TridionWorld" to a coworker) that employees looking for a change should review their employment contracts. This is particularly true surrounding any professional or creative service-oriented organization that depends on knowledgeable, well-trained staff staff.

Personal Instructors and Consultants

There is a parallel between dance studios and consulting firms in that the hiring organization puts a lot of money and effort into marketing, employee development, and training. The resulting employee contracts typically have a "don't-steal-our-customers" and/or "don't-compete-with-us-within-our-market-within-X-miles-or-for-Y-years" clause (and for good reason). But what does this mean for professional instructors/consultants, organizations, and customers?

Competition is Good

Savvy business owners recognize that some competition is good. If the smaller dance studio down the street is doing well, it's a sign that the local market is healthy and the choices give you an opportunity to differentiate. For example, I still do the fliers for showcase at Champion Ballroom Academy in San Diego. With a history of staff, junior, and independent ballroom champions, it has maintained a level a prestige and top talent. The possible draw-back could be negative connotations with competition or the atmosphere (don't let the online pseudo drama scare you, check them out when you're in San Diego, and say I mentioned it; I don't get any referral bonus, but Mary might forgive me for moving away).

Overall this balances itself out and we see a mix of dance opportunities in the region, from salsa to international ballroom, from private lessons, to exercise classes.

With software, there's likely a point where there's too much competition. Maybe 1200 alternatives sounds like a bit much for Web content management, but if you're in a smaller wave or quadrant, it's easier to distinguish what makes you different/better-in-certain situations. Sometimes the biggest competition is the resident developer who made a simple-but-tough-to-maintain CMS who'd never pay that much for software.

Conspiracy Theory

Some peculiar coincidences around the San Jose SDL office.

Boomerang Logo

The boomerang is very faint on the latest SDL Tridon logo, but do you see the connection?!

SDL Tridion 2011 MVP Retreat

Less words. More pictures. More 2011 MVP Retreat fun.

Location

Retreat was in Portugal at the end of September.


View Larger Map

Pictures


Nominate the Next SDL Tridion MVP

Are you MVP material? You might be surprised at how simple it is to qualify by following these three steps:
  1. Use SDL Tridion
  2. Share
  3. Get Nominated

One

You need to use SDL Tridion, the software (hint: there is no SDL Tridion, the company). You do not need to be a consultant nor an SDL employee. Yours truly even won a title as a non-developer (at-the-time), non-partner, project manager that did business analysis and software purchases.

SDL employees can earn a "Community Builder" title. Don't let working for the company prevent you from actually liking and sharing about the software. ;-)

See my post on how to get to use the software if you're not sure on step one and after some time with the software, get ready for step two.

Two

You need to share your "passion, knowledge" or "know-how" about the web content management system (WCM). The award program page states:
To receive the MVP award, nominees go through a review process by the MVP Selection panel. This panel will evaluate each nominee's voluntary contribution to the community over the past 12 months, the quality of their feedback and knowledge, and level of impact. Active MVPs will be re-evaluated every year, and the MVP title is only valid for one year each time. Active MVPs do not have to re-nominate, but are asked to continue their sharing activities.

Happy Thanksgiving

In light of this US-based Thanksgiving holiday, I wanted to express my gratitude for my family, peers, and my dozen readers.

Family

Thanks to the wife (my "baby sugar mama significant other" or BSMSO) for being an awesome partner and wonderful mother to our precocious big-little girl (and I thought I was a handful). From encouraging me to apply for my first technical job to giving me the okay to apply for my last one, I owe so much for BSMSO's support, love, and teasing. I lucked out somehow winning the heart of the hottest video-game playing girl at school (now, can I get Skyrim back please? Someone buy this woman an Xbox!).

Thanks to the family that followed us up to the Bay Area and to the grandparents we've left behind (who make us feel like royalty when we visit).

By the way, if anyone knows of job opportunities or connections in, or around, San Jose for part-or-full-time academic counseling, case management, or project coordination type work, please let my younger, yet more mature, sister know. I'm also trying to convince her of the power of social media and that she might even do okay following her creative side (which includes creative fan-fiction writing and photography). </personal plug>

Happy Hallowsgiving

People remember results more than a missed deadline... most of the time.

Okay so it's a little late, but the office had some left-over pumpkins we figured we'd carve anyways.

Team member Hao copied the logo design but free-styled the "Tridion" graffiti outline, relying on artistic talent that he admits doesn't transfer to graphic software (and yup we could use just a little photo-editing!).
After he cut out the letters, the rest of us orange-handed participants attempted to carve out the details. Emphasis on the "attempt."




Template Building Blocks via .NET Assembly

After getting your hands on a CMS environment, you may want to work on a Tridion Template Building Blocks (TBB) created through an ASP.NET assembly from Visual Studio. For experienced Tridion developers and consultants, move along, there's nothing new or exciting here.

I surprised a fellow coworker when I confessed never having set this up before. SDL Tridion is so flexible there are several different ways of accomplishing the same task. The answer to many Tridion questions is a strange cocktail consisting of precedence, preference, and environment. Each customer is free to focus on the parts they like, which means Tridion users may end with a very useful, but small slice of the software's capabilities (e.g. you don't need a Linux setup if you're a Windows shop or in my case, XSLT component templates provide "enough" functionality). It also makes the consultant's job that much more fun, challenging, and exciting!

Option 1

Log in to the TridionWorld forum and ask.

Option 2

Read someone else's explanation. TBBs with .NET assemblies have been covered before, along with sample code (good stuff, visvabalaji aka "String Writer"). If you get bored with your typical object-oriented languages, put on your architect hat and try them in F#. Or try them pre-made. Fellow consultants at Building Blocks even follow Joel's Rules to bake them into their SDLC with continuous integration. When you're done checking out the other posts, you can even philosophize the pros and cons of TBB and if you're still not sure which TBB is what type, you can add some visual flair to your icons.

Option 3

Hack along with your Disruptive Innovator to prepare the TcmUploadAssembly program, create a .NET class library, update code, and then update the content management system (CMS). The following assumes you have Visual Studio installed on the same environments as the CMS.

I'm New to This. Really.

Apparently I've previously shared enough about Tridion that (more than a few) of my current peers thought I was a consultant or with a firm before joining SDL.
Surprise! I didn't have the title of "consultant" until last month. Up until September, I was a 100% honest-to-goodness non-developer (at-the-time), non-partner, project manager that did business analysis and software purchases. And I worked as an employee of a Tridion customer.
If that makes your head spin, in an alternate universe I'm likely a ballroom dancer or martial artist.

I've enjoyed systems-related work that have included a mix of research, business analysis, and agile (or not-so-agile) development. I would have loved to do Tridion-related work on the side, but alas companies that buy this type of software don't have night and evening opportunities!
I was approached by a half-dozen "opportunities" from third-party recruiters--yes, it's a good market), but I had to apply (sorry, no glamorous come-work-for-us-offer) to my current job like anyone else (tip: an international call from California to SDL's HR office in Amsterdam aint cheap!).
So I'm a mix of someone who's...
  • new-to-consulting, but familiar with giving advice and teaching
  • new to having actual readers (hi Twitter bot and my dozen readers), but comfortable with informal, technical, and academic writing
  • the "new guy" that happens to have been around since the R5.3 release

When and When Not to use "SDL" When Talking about Tridion

Consider using "SDL Tridion" or #SDLTridion when communicating about your favorite Web content management system.*

*Okay it may not be your favorite. Use "Tridion" when complaining.

My main social media approach has three elements focused on being authentic and genuine (and improving my communication skills).
  • share interesting, useful, or amusing content (the quality of of which is determined by you, though I try to stick with things that I want to write about)
  • be authentic, personable, open, fair, and honest-as-possible-when-dealing-with-proprietary-info (it's an interesting balancing act for sure)
  • engage with others by giving/getting credit
    (one of my more popular recent posts wasn't about me, it was about the creative logo work from the Tridion PowerTools open source project.)

How to Get Started with SDL Tridion

How do I get started with Tridion development?
I've seen this question on Stack Overflow and Linked-In. If you'd like to develop with the SDL Tridion CMS, but don't have a license, see your options in order from the most-to-least costly:
*If I do know you, you know me, or I'm not eligible for a corporate referral bonus when you read this, replace my name with another employee, using the popular work-related social networking site at the time (Linked-In as of November 2011).

Update Nov 6, 2012: Added training as an option to get started and removed "development." It helps to be technical, but not all Tridion work is technical.

Matching Software Licensing to SDLC

Update: Thanks, Jeremy for the clarification on terms. See updates below and a new graphic to demonstrate the high-level "modularity" built into SDL Tridion.

One of the things I always wanted to get a chance to do was learn more about the Tridion templates that use template building blocks (TBBs). Originally called Tridion compound component templates (until someone must have mispronounced it in a critical sales meeting), these modular templates... I first heard of compound templates when I helped a company purchase Tridion R5.3. This modular templating approach lets template designers mix and match different pieces of re-usable functionality. This brings the modular approach full circle.

  • you can re-use whole sets of functionality (Tridion BluePrinting via parent and child publications)
  • you can re-use schema pieces (embeddable schema in regular schema)
  • you can re-use content pieces (components on a page), and now*
  • you can re-use template pieces (template building blocks in compound component templates)
*Modular templating isn't the new hotness anymore in the year 2011.
In my opinion, the hardest part about using creating re-usable classes in this "third type" of template development isn't the technology. It's getting an organization's IT operations (IT Ops) group, their development team, implementation organization, and Sales on the same page, which is far from an easy task.

On Software Costs

A rough trend I've detected with software licenses is the inverse correlation between size of the software's feature set and the physical size of the license metric. Features and price rise as the size of the individually licensed unit go down. At some point though, you can usually get the unlimited option for just $X more (for more fun on software pricing read Joel Splonky's Camels and Rubber Duckies post).

Nivlong's Observation of the Inverse Relationship Between Physical Size of the Software Licensing Unit and Total Cost™


Alvin vs. October. Alvin wins!

 I didn't have a chance to really pause starting since the end of September. But deep breath, here goes...

I had the last meeting of the 20 five-week classes to complete my Bachelor's of Science in IT (emphasis Business Systems Analysis) on Wednesday, September 28, followed by my last day at a job I loved on that Friday, then I packed that weekend while in San Diego, then went to Europe (missing a connecting flight along the way) to spend an awesome weekend with some very cool/friendly/helpful/smart people in a Portuguese fortress to help start one of the most high-profile volunteer projects I've ever worked on, then flew back to San Diego and right over to San Jose to help check out a new place to live, went back to San Diego to walk in my graduation ceremony, and then took the drive back up to San Jose to start my first week at the new job without the new place ready just yet.

Quick breath and then...

Tridion 2011 Queries

Tridion R5.3 content delivery (CD) queries use a string-based query that represents basically the "select" part of an SQL query. For example, to filter a component that has select metadata you can use something like:

(key_value LIKE 'color') and (key_string_value LIKE 'red')
OR
(key_value LIKE 'size') and (key_string_value LIKE 'big')
OR
(key_value LIKE 'shape') and (key_string_value LIKE 'ball')
GROUP_BY 3 and publication_id = 5"

Secondary Memory: "Didn't I ask that Before?"

I've been seeing posts that we're collectively outsourcing parts of our brain to online search engines like Google.

As a slight departure from the "sharing is awesome" theme, I wanted to describe how the TridionWorld forum has served a similar function for all-things-Tridion for me, with the following catch.
The more I document and share stuff, the easier it is to find later.
It's not a case of ego surfing when I recently searched for "XML IDE Alvin Reyes" on the forum. I wanted to find these keywords when the idea, "working on XSLT templates is so... manual without an IDE" popped into my head. Like other seemingly perceptive points, this wasn't the first time I thought of it.

Tridion-friendly XML Editors

Luckily, awhile back I had asked the Tridion gurus on TridionWorld what they used and we came up with the following list of XML IDEs (yay, developer tools!):

The PowerTools Team's Power

I wanted to recognize the work the PowerTools group has done with the code and setting up shared, re-usable resources (wiki updates, JavasScript base class, code standards, examples).
Here are some excellent take-aways from the group's first month. The PowerTools Team's power comes from collaborating, balancing best practices with understandable examples, and through sharing.

Collaborate

(help but also get help)
  • Team members don't hesitate to ask questions, share, and offer feedback. We may still need to be careful and pace ourselves to avoid burn out while enjoying the work. Volunteered time is appreciated, but not at the risk of someone's health, sanity, or career. I like seeing people take breaks, it makes the rest of us learn better. :-)
  • The team has started logging known issues and continues to add useful comments to source control. I personally love the progress on the wiki pages!
  • I'm not sure what in the group DNA that encourages the collaborative software, but I suspect this will make our next steps towards releasing version 1.0 (documenting, testing, and reviewing code) that much easier.

Inspect Publication Details with an XSLT Component Template

Ever need in-depth publication information from within your content management explorer (CME aka Tridion's GUI)? Curious about what XSLT can do for you?

I was hoping to make a every-example XSLT training component template (CT) with examples and everything you'd ever want to know about XSLT with Tridion, but I'll have to pace myself and settle for the following. See below on how to make an XSLT CT "inpsector" template. Preview it with any component to get publication details in a recursively-drawn HTML table.

Step 1 Create a new Component Template of type XSLT.

Details
  • Call it something like: "Publication Info (use on any component)"
  • Output format: XML Document or HTML Document (we're just previewing so either work)
  • Priority: any, but I chose "Never Link"
  • Component Presentations based on this Component Template will be:
    Published on a Page


Character Encodings with Tridion

This is probably a bigger subject to tackle in a single blog post, but I wanted to suggest the following if you ever run into a "strange character" or "my language looks wrong" problem with Tridion or any other content management system.
The correct Pavlovian response to character issues is to diligently search for any mismatched character encoding settings.

Troubleshooting Encoding Issues

Start with the source content (database, Word, text file) and work your way through the Content Management Explorer (CME), including schema filters and templates, then through the deployer, databases, presentation servers, databases and all the settings in between. Both Java and ASP.NET have global and page settings to confirm as well.

As a general guide to find all these settings, do an online search for {technology} + character encoding to find where to check for your given technology stack. Then check database settings with your DBA, web server settings with your development or design team, and Tridion settings with your implementation partner, developers, or support. Better yet, follow your content to determine where the issue happens and narrow down this long chain from authoring to presentation!

Midas Rule of Open Source Projects

You may be familiar with the Golden Rule, where we treat others how we want to be treated?

Or maybe the Petroleum Rule, where we treat others how they deserve? Yes, like petrol it's crude by valuable.

How about a new one, the Midas Rule of volunteer work and Open Source projects?

Background

King Midas loved gold so much that he wished everything he touched would turn into gold. He got his wish but sadly... he got his wish and everything he touched would turn into gold. The fable had a useful lesson about greed and being careful for what you wish for, but I'm going to toss those parts aside and focus on the "ooh, you touched it" part.

The Midas Rule:

Whoever touches something first (takes initiative) and cares the most gets to decide what to do with it.
In other words, "yes you can, but you have to do the work." It's similar to licking or touching your sandwich so the other kids don't try to take your food. "Eww, you touched it!" Note this refers to actually poking, working on, and contributing to something beyond thinking or talking about it.

Tridion Schema Change

Someone has probably warned you to be careful when updating Tridion schema (the basic Tridion item that defines fields for Tridion components). So, what really happens after you update a Tridion schema?

First of all, be very careful when updating schema as this could potentially wipe out existing content.

These are relatively safe:
  • add a new field
  • update description on exsiting field
  • change display type between radio, drop-down, or text select (might want to test this first)
  • add additional options (or add keywords to a category used by a text field)
Dangerous:
  • change xml name of a field or root
  • change a schema namespace
Annoying:
  • changing mandatory options (semi-dangerous, this may cause validation issues as well as confuse editors)
  • change options (old existing selections will not change, except for keywords, at least with Tridion 2011)
If you don't have any components, then feel free to change away! However, once you have content (components based on said schema), a change will have the following affect.

None. No effect on content... yet!

BlueBrinting Fridge Magnet Kit

Software developers and system architects love to draw boxes for servers, environments, classes, or to explain the system/software development life cycle. For Tridion functionality, the BluePrint design is a crucial step and prerequisite to implementation.


Feel free to use or improve on the following in your next Tridion BluePrinting session, workshop, or discussion.

Update (8-Dec-2011): I loaded a picture of the first prototype. Pros: visual and movable pieces. Cons: magnets are too strong to easily move the parts, labels are paper (not re-usable), and the background is too small for larger arrangements. Next version should have smaller magnets or a bigger board along with re-usable, more sturdy labels (or magnets you can write on).

Hating your Software?

I've supported internal users and developers in using SDL Tridion, a Web Content Management solution. I'd also occasionally answer questions on systems or software I was familiar with as well.

Ever have a problem, issue, or frustration with some data or process with your organization's computer system, external vendor, or other service?

I've helped end users realize the first steps start with the end-using expert themselves.

Is that problem...

  • Repeatable?
  • Involve only certain items?
  • Occurring during certain times?
  • Related to certain users?
Help Your Geek
If you can narrow the issue down to a specific item, file, format, user, or computer you have a possible workaround or at least a better understanding of where the problem is.

At any time through this process it feels like more work than it's worth, reach out to your nearest systems geek, service desk, or power user. Many are glad to help; it works best when you've made a good effort on your own and can describe the steps to reproduce the problem.

Otherwise get a screen shot and details to your IT department, your second level of help. There are additional layers of formal and informal levels of escalation. Even Twitter. :-)

Your organization invested in a solution for collaboration, WCMS, purchasing, eCommerce, or fill-in-the-blank. It's worth the time to ensure you can at least do your work.

Knowledge with some of these software packages is growing in importance in the market. Power users are needed for large scale software like SAP or SharePoint. The market is also good if you can find a leading package in the WCM, WFM (Workforce Management), or other large software with a smaller market.

In other words, there are likely companies with possibly smoother running systems paying well for your skills or familiarity with a particular package.

Vendors

Having struggling users is a good sign for software purchasers because it means the system is being used and can be improved. It means there are enough implementations out there to have some good and bad ones.

Negative buzz is even good for the software vendors because it can highlight weaknesses in the product, confirm people are using the software (I worry when I don't hear anything), and frankly increase publicity for your solution. Any feedback is valuable, though more constructive comments can help you fix issues. Congrats, if you have a "I hate you" group, perhaps you're approaching Coke vs Pepsi or Microsoft vs Linux/Unix/Mac notoriety.

And for third-party partners and consultants, visibility into issues can be an opportunity to help. A blatant response would be to attempt to sell services to a company based on its end-user complaints. A more nuanced approach could be offering information, examples, and shared knowledge to the software development community. Addressing user concerns can go a long way towards filtering good will and establishing your credibility.

Don't settle...

"Enterprise software" ranges in the tens to hundreds of thousands of dollars or more. Actual ERP can reach seven figures. With support costs typically running a fraction of the original license purchase, this means the annual support costs for that software might rival salaries of employees. A system never replaces everyone--it always includes processes, technology, and people.

But if a user hates a particular solution, by all means he or she should be able to make the case to management to replace the solution or improve it.

When all else is fails, the user can do it the old, possibly manual, way.

If Tridion's causing your ire and it's not a problem with your organization's setup, consider sharing a suggestion on the SDL Tridion Ideas site, where you can post and vote for ideas (open to Tridion users with an email).

Joining the SDL Tridion Community




At the SDL Tridion MVP 2011 retreat I had a chance to meet and collaborate with some of the top sharers in the SDL Tridion community. I felt like the "bee girl" from Blind Melon's No Rain video in what it's been like sharing my enthusiasm for Web Content Management. Watch from 1 minute 56 seconds for the reveal.

Fellow award winners Julian Wraith and Jeremy Grand-Scrutton have also blogged about the productive work, a flight "incident," and new friendships developed at the recent retreat.




Send-off to Fellow Graduates

Edit: clarified I was not selected to give a speech by emphasizing the "not" and the "proposed."


I was not selected to give the commencement speech for my University of Phoenix graduation ceremony. Rather than feeling bad about it, I'll do the next best thing and blog about it! Congratulations to my fellow Bachelor of Science in Information Technology graduates.

Proposed Speech

Greetings fellow graduates, faculty, family, and friends.


I have a confession. I came to University of Phoenix (UOPX) already with a job in IT, but I did not know the difference between IT, an Information Technology and IS, an Information System.

I've since learned An information system consists of:
People,
Processes, and
Technology

So let me end my two years as a University of Phoenix undergraduate by describing an education program involving:
People (me, the facilitators, and you)
A process of change, teams, and projects
And technology that includes the OLS (online learning system), lots of PowerPoint, plenty of Word documents, and more email than I want to remember.

People, process, technology

For myself, I came here to get in, get out, and maybe learn something. I came here so that my former-baby-but-now-inquisitive 3 year-old won't have an excuse not to go to college. I came here to show up my father, who with 20-years of service in the Navy went back and got two degrees and a new career in the time it took me to even sign up for Phoenix.

"Get in. Get out. Learn something." That was a simple goal that turned into something much grander because I was surprised by the people.

People like our facilitators. Their real-world industry experience surprised me. Where else can you ask 6 working professionals a question like, "so… how do you approach project management? How about that software development life cycle? What do you do when your coworkers annoy you in a corporate environment?"

My classmates surprised me. A very few in a bad way (for example, if you're going to copy someone else's work, be sure to change that name in the paper or Java program to match yours before posting it on OLS.

But for those of us that struggled and put in the effort and relied on each other, our facilitators, our advisors, and on the occasional YouTube video showing how to write a basic Java program… we've earned it. We'll be a bit more prepared because we put in the time and effort.

Let me describe an education involving people, process, and technology.

Part of the process was giving yourself permission to do something right for yourself. If you're like me, this degree has been a long time coming. If you're like me, you have your friends and family out there cheering you on.

If you've been embarrassed at not having a degree like me, maybe you're here just for yourself. And that's okay.

But the shame, hesitation, and guilt for not having a degree is not okay though. To get this far, we had to give ourselves permission to take a chance, to change our habits, to follow all the way through to today. You had nothing to prove, but you now have more skills than you realize.

The University of Phoenix education process is all about team-based projects and the constant back and forth feedback in class, on OLS, and between team members.

I hope you've learned to love and hate that feedback from your facilitator or from your peers--because it's how we grow. In the absence of hopefully constructive feedback, we won't know what's wrong or right with our writing, our thought processes, or project approach.

Feedback improves us as people.

You have people, process, and technology skills.

You have completed at least 20, 5-week projects covering a range of topics you may never have heard of before. You presented at least dozens of times over a few years on broad and in-depth industry topics, using Word, PowerPoint, OLS over and over again.

You can see the hanging-indent APA 6 reference format when you close your eyes at night!

In job interviews, when you ask for your next promotion or raise, or when you wonder if this was all worth it, remember your 2 plus years of project experience, immersed in a collaborative environment, working with and against your peers and facilitators.

When we get out there with these degrees it will be all about the people. We've done this for ourselves, for our family, to prove something, or because we have nothing to lose and only student loan debt to gain. Embrace the fact that you did this.

Diverse people, a tough process, and new technology. Don't doubt and think you can't change the World, you've changed yourselves, and that's a pretty good start.



Biography

Alvin Reyes restarted his educational career plans with University of Phoenix's Bachelor's of Science in Information Technology (Business Systems Analysis) program in 2009 to learn how to become a "real" Business Analyst. Wanting to finish a degree he started over a decade ago, he hoped to make his family proud and wanted to deny his then infant daughter any excuse to skip college.

College has rekindled his interest in public speaking, improved his writing skills, and gave him an opportunity to connect with other motivated, working professionals.

He has since won a local Toastmasters area speech contest and contributed enough online to be recognized as an "SDL Tridion MVP" by SDL, a leading Web content management software company. He also attributes two promotions and a more comprehensive understanding of project management, information systems, and IT to his experience with the program.

He has enjoyed learning from (and challenging) his classmates and the UOPX facilitators. He looks forward to continuing to help others understand projects and technology as he improves his leadership and communication skills. Find him online at http://alvinreyes.net.



Update: the actual diploma arrived the weekend of Halloween and the graduation images shortly after.



Give More. Get More.

As SDL Tridion MVP Selection Panel chair, Nuno Linhares has called others in the Tridion community to action and has recently blogged about the the art of knowledge sharing . He offers some reasons he's had to not share (knowledge = organizational value, faster to solve than teach, and fear others will steal) and compelling reasons to share (recognition, ability to scale, job/career mobility). I've seen both sides and share my background with sharing below. I'd like to add that sharing can be scary, especially when you're not sure of how a message will be received or confident in what you know.

I've enjoyed everything from mentor roles to being seen as "the guy who does too much" to being called arrogant and immature, so take the following from the perspective that I've done okay so far, I believe in the value of sharing in your chosen interests and industry, and I have a lot more to learn and grow.

I've found career and personal satisfaction from creatively contributing in authentic ways (yes, I'm a fan of Seth Godin's Linchpin). In terms of knowledge transfer and sharing, I've been "rewarded" with bigger and better projects the more I gave old projects away.

As a Web-development-intern-turned-researcher, I've reported on everything from software development tools to industry news to competitive assessments. From screenreader software that read websites to blind users to enterprise-level content/workforce management systems, I received bigger and more interesting prompts the more I put into the research.

Gave away Roles. Got new Roles.

Also known as "I killed my previous job" through sharing or intentionally making myself obsolete.
I helped train other interns, explaining everything from laptop setup to who's the right person to ask what question. I eventually helped the development team select their Web Content Management System (WCMS). Fascinated by the chosen solution (Tridion R5.3) and eager to learn, I effectively killed my previous job of manual Web content updates, HTML edits, and SQL scripts; I still apply these skills but in somewhat more interesting situations.

I got a new role as a business analyst (BA) to support the WCMS and continued to help end users and developers. I learned from, and then contributed on, the Tridion forums (enough to win a nifty, sharp, and deadly-looking SDL MVP award).

I documented everything from user guides to system diagrams to requirements and encouraged others to update and share their own write-ups. I offered expertise when requested (and sometimes when it wasn't!). This coincided with another shift in responsibilities towards vendor/partner implementations and a promotion to a (cross-functional or "weak matrix"... just so you understand I wasn't directly leading teams) project manager (PM).

As a PM, I was able to leverage vendor evaluation skills learned from WCM in a WFM (workforce management) assessment and eventual implementation. I've enjoyed the role, but missed the collaboration with the solution and community that helped shape my career.

Sharing your way into New Ventures

In terms of that intersection of skill, will, and motivation I've found a sweet spot between these various "jack-of-all-trade" roles of BA, PM, and resident Tridion subject matter expert; I've applied for, and accepted a new position as a functional consultant with SDL Web Content Management Services (professional services) (My site disclaimer still applies; this blog does not reflect the views of my current/past/future employer unless otherwise stated. I've accepted an offer but don't start for a few days.).

I owe so much to my previous roles and will always have love for American Specialty Health, but I'm looking forward to learning, growing, and sharing with my new team and helping other SDL clients.

Semi-final, random thoughts on sharing

  • Though I've played various roles, there is nothing wrong with becoming an expert in any given role. I'm not advocating leaving your existing job and the intention shouldn't be to "jump ship" as quickly as possible, but to transform our roles to include More Great Work (Michael Bungay Stainer).
  • Think big! There are lots of after-school activities where a single coach or instructor will attempt to help an elementary school. But what about a program that teaches teachers instead of a single classroom? How can we scale from classroom to district? From one company to several?
  • I've helped a development team, an IT department, a medium-sized corporation, and a community of Web content management customers. My long-term knowledge sharing goals include either contributing to an industry or combining current and past interests to offer something new.
  • I didn't plan or think I'd be qualified to join SDL. I believe knowledge sharing works better when you're authentic and genuine ("white hat" sharing preferred--I don't believe my specific "path" and approach would work if I only shared for personal gain). Daniel Pink's Drive confirms that rewards and incentives are more effective as "now that (you've done something good)" surprises rather than "if (you do this) then (you'll get rewarded)." I agree with Nuno--it only took a kind word or encouraging email to feel appreciated for sharing.
  • If you give a man a fish he eats for a day. If you post fishing video on YouTube you can reach thousands of viewers.
We share, teach, or advocate because we love a product, solution, or idea. If we're lucky and find that right intersection of an appreciative audience and fascinating topic, we can feel like the bee girl at the end of Blind Melon's No Rain. Well, at least that's the closest popular-media-metaphor for how I feel when collaborating on interesting projects or talking Tridion with other consultants.

Well, that's what knowledge sharing, teaching, and contribution has meant, and continues to mean to me. I'd love to hear your successes and challenges with your own attempts and sharing, advocating, and being an ambassador for whatever fascinates you.

Key-Value Lookup Example (Tridion R5.3)

The following is adapted from a post of mine on the Tridion World Forum (an account required which is available to Tridion clients). Key-value "lookup tables" can be stored in xml files to manage Tridion-related information such as identifiers (tcm ids) or  other not-so-friendly key names and their corresponding friendly values. For example, rather than hard-coding unique Tridion identifiers for each environment, we can output a text-based configuration file. This simple example highlights re-use, separation of layers, and ease of content (re)creation.

1) Ordered Pair - embeddable schema Consisting of two items:
  • key (text)
  • value (text)
Description can be first and second item, with mention of "key" and a friendly name. This could even be localized to match the needs of a given publication and/or (end-user) language.

2) List of Ordered Pairs - schema Consists of one item: ordered pair (the embedded schema above, allowing multiple values) (also give this a useful namespace such as: 
http://www.example.com/schemas/listorderedpair)


3) Key Value XML Output - Component Template (XSLT)
(match the namespace above, the names space will differ in different versions of Tridion)

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:tcm="http://www.tridion.com/ContentManager/5.0"
 xmlns:xlink="http://www.w3.org/1999/xlink"
 xmlns:tcmse="http://www.tridion.com/ContentManager/5.1/TcmScriptAssistant"
 xmlns:listorderedpair="http://www.example.com/schemas/listorderedpair"
 exclude-result-prefixes="xsl tcm xlink tcmse listorderedpair">
<xsl:output method="xml" indent="yes" omit-xml-declaration="no" />
<xsl:template match="/">
  <values>
    <xsl:apply-templates select="/tcm:Component/tcm:Data/tcm:Content/*" />
  </values>
</xsl:template>
<xsl:template match="*">
  <xsl:for-each select="//listorderedpair:orderedpair">
    <value>
      <xsl:attribute name="key">
       <xsl:value-of select="listorderedpair:key" />
      </xsl:attribute>
      <xsl:value-of select="listorderedpair:value" />
    </value>
  </xsl:for-each>
</xsl:template>
</xsl:stylesheet>

4) Ouput Generic XML - Page Template (VBScript, but any templating language can work)

[% 'this outputs a physical xml file
'component and corresponding component template that outputs actual xml via XSLT is required
 for each comp in page.componentpresentations
   writeout comp.content
 next

%]

To create the lookup XML file after setting up the embeddable schema, regular schema, and templates, first create a component based on List of Ordered Pairs. Then create the page, add the component (+ template = component presentation), and publish. The resulting file will look like:
<values>
 <value key="1">First Value</value>
 <value key="2">Second Value</value>
</values>
This example can relate  friendly names to their programatic equivalents. This can work in other scenarios and can serve as a general content-to-physical-xml file example.
If you've ever needed to make a quick and robust interface for this type of configuration data (or any content), a WCMS like Tridion can easily handle anything from the node and attributes values in an XML to rich-text, multimedia, and more complicated sets of content. 
Other use cases:
  • states and state abbreviation list
  • departments and abbreviations or codes
  • Tridion items and their tcm-ids (ids would be hardcoded, but example could be adapted to link to items directly)
  • other mappings for external databases or information
A few of these could be handled via web services, custom code, or other Tridion integration points. However, a lot can be done with Tridion's out-of-the-box functionality. Please feel free to leave suggestions, clarification, or questions. I'll likely overhaul this with a Tridion 2011 treatment as well.

Lessons Learned from WFM

In a previous role, I helped work research, purchase, and implement a call center scheduling "Workforce Management" (WFM) solution. WFM is software that helps call centers schedule their agents based on historical data as well as monitor real-time adherence to the schedules. Like other software that brands itself "enterprise" it includes integration with other systems, key-performance indicator (KPI) reporting, and dashboards. The particular package from Verint systems included shift-bidding and ELearning features.

Playing the role of cross-functional (weak matrix) project manager on the client-side, we compared vendors, used Gartner research, did several demos, and completed procurement (including the paperwork trifecta of order form, master services agreement, and statement of work or SOW) over a few months.

Here are a few things that validated concepts I've learned from PMBOK, school, and personal experience with other software purchasing situations.

During research, it's important to focus on the business needs over technical benefits, but make sure the solution is supportable and approved by IT.

A vendor may present a list of deliverables (SOW), but keep your own milestones, schedule, and success criteria. Though supported externally, it's still your project so it must meet your own objectives.

Technical issues need to be addressed and prioritized with the business owners, technical team, and third-party vendors. Large issue affect multiple stakeholders differently. When in doubt, ask!

Managing expectations and getting the right (amount of) information to the right people is a large part of the project management and purchase evaluation process. I don't envy line managers in the amount of data they have to handle.

Try to separate the technical issues from project progress; but don't hesitate to hold your vendors ("sellers" in PMBOK parlance) accountable to project goals.

Above-all, a positive focus on how to make the project work has seemed to be more productive than keeping tally only to blame someone later. Definitely track issues, but approach them with the vendor and other parties cooperatively.

Whatever the service or software, it makes sense to focus on the mission and work with the other team while still holding your partner accountable.

Good luck with your next implementation!