tag:blogger.com,1999:blog-115995262024-03-13T08:23:17.409-07:00Looks Good Works WellThoughts on experience design & engineeringBill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.comBlogger195125tag:blogger.com,1999:blog-11599526.post-79919591249082268932013-12-24T17:22:00.002-08:002013-12-24T17:24:00.908-08:00Moving This Blog to from Blogger to GhostMy new blog is hosted at <a href="http://www.looksgoodworkswell.com/">http://www.looksgoodworkswell.com</a>. It runs on <a href="http://ghost.org/">Ghost</a>, a <a href="http://nodejs.org/">NodeJS</a> blogging platform.<br />
<h2>
Background</h2>
In 2005 when I started this blog the easiest thing to do was to snag a blogspot account and start posting. When I first started blogging it was really to just make notes for myself. Over time the blog became more popular and really outgrew what I would want to do with it on Blogger.<br />
<br />
But inertia is a terrible thing ;-) I remember having a conversation with <a href="http://ma.tt/">Matt Mullenweg</a> (founder of WordPress) 7 years ago and he told me how easy it was to migrate my blog to Wordpress. I promised I would since it was a much better platform. But I never did it. Just always felt like a little less important than all the other things in life.<br />
<br />
5 yrs ago, <a href="http://www.theresaneil.com/">Theresa Neil</a> & I released our book <a href="http://www.amazon.com/gp/product/0596516258/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0596516258&linkCode=as2&tag=looksgoodwork-20">Designing Web Interfaces</a> (and yes it is sorely in need of an update) and we launched a <a href="http://designingwebinterfaces.com/">companion blog</a> on Wordpress. I liked Wordpress, but I didn't love Wordpress. I think it had to do mostly with having to hack away in PHP. Mind you I don't hate PHP. I just don't love it. Due to this I found even less reason to move. I mean if I am going to move to a new blog platform I better really like the environment and believe in its mission.<br />
<h2>
Enter Ghost</h2>
I was really excited when the Ghost blog platform was <a href="http://www.kickstarter.com/projects/johnonolan/ghost-just-a-blogging-platform/">started on KickStarter</a>. It combined several things I really liked.<br />
<h3>
1. Markdown for Editing</h3>
I really hate writing a blog post and having to mess with a rich text editor or having to think about markup. I just want to write something. Blogger was terrible in the markup it generated. I felt dirty every time I wrote something. Not a nice thing to have run through your mind while trying to inspire the masses.<br />
<br />
But markdown -- now that is a <a href="http://www.fastcolabs.com/3015487/john-gruber-and-jeff-atwood-explain-why-markdown-is-still-growing-up">different story</a>.<br />
<br />
One of the challenges some of you that read this will face when you get a little older is it is too easy to get comfortable in a set of tools. Github certainly tipped the scale for me to awaken me to the simplicity and beauty of markdown. In fact the current book I am writing I am using the Mac app <a href="http://www.ulyssesapp.com/">Ulysses</a> which has a really nice markdown environment.<br />
<br />
In Ghost, markdown is the lingua franca. It has a really nice <a href="https://ghost.org/features/">side-by-side markdown/preview editor</a>. You can focus on writing and not on the formatting.<br />
<h3>
2. NodeJS as the platform</h3>
In case you didn't know, <a href="http://www.looksgoodworkswell.com/fluent-talk-releasing-the-kraken-clash-of-the-titans-nodejs-paypal/">I love NodeJS</a>. It has helped us start a revolution at PayPal for our engineers and soon our customers as experiences will start rolling out faster.<br />
<br />
The good news is Ghost is built on NodeJS. Not PHP. Not some bizarre 2001 platform like Blogger. Given that it is node I can spin up my blog locally or host it on nodejitsu (or any other cloud supporting node) or I can host it on ghost itself for a nominal monthly fee.<br />
<br />
Knowing how your blog works -- from how it stores your blog content, how it renders it, how it gets deployed, etc. is really powerful in itself. It's also cool that I can keep <a href="https://github.com/billwscott/lgww-ghost">my blog as a git repo</a>.<br />
<h3>
3. JavaScript Templating for Themes</h3>
It's simple to grab themes or write your own themes. It uses <a href="http://handlebarsjs.com/">handlebars templating</a> so is really easy to start working with. If you use the Ghost hosted solution (<a href="https://ghost.org/signup/">sign up for an invite</a>) you can just <a href="http://docs.ghost.org/themes/">hack on your theme</a>, run locally (or on another platform like nodejitsu) for testing and then when you are happy just upload the theme to ghost.io platform and you have your new look & feel.<br />
<h2>
Moving from Blogger to Ghost</h2>
<div>
Since Ghost is still early on, there are no direct import tools to bring Blogger posts to Ghost. What I did was use the Blogger to Wordpress <a href="https://support.google.com/blogger/answer/97416?hl=en">export to create a dump of my blog posts</a>. I then set up a temporary wordpress blog on one of my Dreamhost sites and imported the posts there.</div>
<div>
<br /></div>
<div>
Then I installed the "<a href="http://wordpress.org/plugins/ghost/">Wordpress to Ghost</a>" plugin in my temp Wordpress blog. Then I was able to export a JSON file suitable for Ghost.</div>
<div>
<br /></div>
<div>
Because I could install Ghost locally it was easy to import the JSON file and verify that all 205 posts had made it over correctly. Of course I found issues. There were links to images stored on blogger, links to resources that were scattered all over one of my servers and some links were hardcoded to the blogspot blog. </div>
<div>
<br /></div>
<div>
This gave me a chance to clean up all these links, have a better strategy for where to put files for my blog and so on. It actually felt good to clean up 9 years of crufty stuff.</div>
<div>
<br /></div>
<div>
I experimented with hosting the new blog on nodejitsu. The big issue right now is jitsu deploys are destructive so each deploy blows away your content (the blog database is stored in the content directory and thus pushed with the deploy). <a href="https://github.com/Swaagie">Martijn Swaagman</a> has helpfully written a <a href="https://github.com/nodejitsu/persistent-ghost">persistent-ghost wrapper</a> for nodejitsu that allows you to install ghost with jitsu CLI and then when you deploy it copies the database out to its mongo grid, does the deploy and then restores the blog post. Yes, a hack, but it seems to work fine. I did run into an issue with running my blog locally in this configuration. The node module node_sqlite3 doesn't install correctly with node-gyp so you have to do a <a href="https://github.com/mapbox/node-sqlite3/issues/228">manual install of it</a>.</div>
<div>
<br /></div>
<div>
In the end I decided to just go with the Ghost hosted platform. I figured I would get better support (you do), better analytics, better integration with their marketplace and they would worry with keeping it running and secure.</div>
<div>
<br /></div>
<div>
However, having the ability to run it locally or any node based cloud solution gives me peace of mind for the future. Even if they failed as a company, I have the blog software and can deploy it and manage in any way I see fit.</div>
<div>
<br /></div>
<div>
I started with a free theme called <a href="http://marcosn.com/willsong-ghost-theme/">WillSong</a>. Nice simple theme. I did hack it a good bit to get it to be a little better at responsiveness for mobile and added a third column for bio area, etc. But this is what is cool about the themes. They are really easy to change since it is just Handlebars, HTML5/JS/jQuery, etc. (or they could be any solution you want). Since a theme is self-contained, you just zip it up and can upload it to the hosted blog and you have the new look & feel.</div>
<h2>
Follow Me at Ghost</h2>
<div>
Please update your link to <a href="http://www.looksgoodworkswell.com/">http://www.looksgoodworkswell.com</a> for any new blog posts coming my way. Of course the best way to keep up with me is to <a href="http://twitter.com/billwscott">follow me on twitter @billwscott</a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<br />Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com0tag:blogger.com,1999:blog-11599526.post-66064822213343023942013-08-29T22:01:00.002-07:002013-08-29T22:02:21.070-07:00Hiring in AustinMy team in PayPal Austin is hiring. We are looking for user interface engineers that can span the stack from node.js up to backbone.js. As part of <a href="http://looksgoodworkswell.blogspot.com/2013/08/fluent-talk-releasing-kraken-clash-of.html" target="_blank">the change</a> we have been bringing to PayPal, our UIE teams partner closely with our design teams following the <a href="http://looksgoodworkswell.blogspot.com/2012/10/lean-ux-agile-development-rationalizing.html" target="_blank">Lean UX</a> methodology. And instead of just focusing on the HTML/CSS/JS client bits, we also work on the nodejs server bits as well. The process & tech stack allows us to move much faster than ever before.<br />
<div>
<br /></div>
<div>
We recently refocused the Austin team to own the <a href="http://developer.paypal.com/">developer.paypal.com</a> experience as well as other aspects of the external and internal developer community. If you haven't check out developer.paypal.com recently, <a href="https://www.paypal-forward.com/innovation/sxsw-2013-paypal-launches-next-generation-developer-tools-and-support-for-mobile-payments-technology/" target="_blank">you should</a>. New APIs, new experience, but much, much more coming. Come be a part of this team to take our developer experience to a completely new level.</div>
<div>
<br /></div>
<div>
Contact me @billwscott on all normal channels: twitter, gmail, linkedin, etc.</div>
Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com0tag:blogger.com,1999:blog-11599526.post-57298096652693506472013-08-29T22:00:00.000-07:002013-08-29T22:00:07.387-07:00Fluent Talk: Releasing the Kraken. Clash of the Titans: NodeJS & PayPal<p>In a most unlikely place. We have unleashed the Kraken.</p>
<iframe width="560" height="315" src="//www.youtube.com/embed/tZWGb0HU2QM" frameborder="0" allowfullscreen></iframe>Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com0tag:blogger.com,1999:blog-11599526.post-16798825432445558052013-01-31T13:28:00.000-08:002013-01-31T13:28:31.549-08:00Key Position: Sr. UIE Manager for our Wallet teamI have <a href="http://looksgoodworkswell.blogspot.com/2012/09/why-you-should-work-with-me-at-paypal.html" target="_blank">discussed</a> in the past that we have been on a mission to change the culture, technology, process and experiences at PayPal. 15 months into my adventure here I have never been more excited.<br />
<br />
Starting last year we moved away from Java & JSP for rendering our UIs and instead went to <a href="http://engineering.linkedin.com/frontend/client-side-templating-throwdown-mustache-handlebars-dustjs-and-more" target="_blank">JavaScript templating</a> (<a href="http://dust.js/">dust.js</a>), using <a href="http://lesscss.org/" target="_blank">LESS</a> for our CSS pre-processing, <a href="http://require.js/">require.js</a> for module dependency, jQuery, <a href="http://twitter.github.com/bootstrap/" target="_blank">Twitter Bootstrap</a> and bunch of other open source goodness. In addition, we have been using <a href="http://node.js/">node.js</a> as the underpinning for building our user experience code in a rapid, high iteration fashion. And even more exciting we are working on getting node.js to the point of production ready to build our app stack on top of it.<br />
<br />
In addition, <a href="http://looksgoodworkswell.blogspot.com/2012/10/lean-ux-agile-development-rationalizing.html" target="_blank">we have been</a> pioneering <a href="http://uxdesign.smashingmagazine.com/2011/03/07/lean-ux-getting-out-of-the-deliverables-business/" target="_blank">Lean UX</a> as a working model that puts our user interface engineers in the room directly with product & design to help lead our new experiences.<br />
<br />
And we have been hiring some <a href="http://looksgoodworkswell.blogspot.com/2012/05/welcome-crock.html" target="_blank">great talent</a>.<br />
<br />
Speaking of talent, I need to find a great manager for one of our most important teams -- the Wallet team. All of the consumer experiences fall under this area and cover desktop, tablet and mobile. We are also leading the charge on mobile first and the wallet team has many exciting opportunities to rethink the consumer's wallet across these channels.<br />
<br />
Here is a link to the job description:<br />
<a href="http://jobs.ebaycareers.com/silicon-valley/user-experience/jobid3066378-sr-uie-manager-wallet-paypal-jobs">http://jobs.ebaycareers.com/silicon-valley/user-experience/jobid3066378-sr-uie-manager-wallet-paypal-jobs</a><br />
<br />
What am I looking for? You should be passionate about all things front end. You should have a good solid history of writing and delivering front end applications in JavaScript and have a strong understanding of all of the industry best practices as well as the industry trends and key open source projects. Some experience with node is a plus.<br />
<br />
What do I need you to do? Since the team is about a dozen in size, I don't need you coding on a daily basis. What I want you to do instead is to take this great team to greater heights. Inspire them. Grow them. Mentor them. Help instill great engineering into the team (continuous integration/deployment/social coding). I also need you to be passionate about experience. And passionate about delivering this experience to multiple channels. Ensure that we are utilizing responsive web design in every possible way.<br />
<br />
You will need a strong working relationship with our product team, middle/backend engineering teams, and user experience teams. You will set the example for how this team gets stuff done. I need you to be a leader!<br />
<br />
If you are interested in this exciting challenge then ping me right away. I am on twitter <a href="https://twitter.com/billwscott" target="_blank">@billwscott</a> or same handle for my email at gmail.com.<br />
<br />Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com0tag:blogger.com,1999:blog-11599526.post-74660078666445755822012-12-16T11:42:00.002-08:002012-12-16T11:58:18.602-08:00Indispensable Principles for Debugging - Book Recommendation<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.debuggingrules.com/Debugging_cover.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://www.debuggingrules.com/Debugging_cover.gif" /></a></div>
Don't judge a <a href="http://www.amazon.com/gp/product/B002H5GSZ2/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=B002H5GSZ2&linkCode=as2&tag=looksgoodwork-20" target="_blank">book</a> by it's <a href="http://www.debuggingrules.com/Debugging_cover.gif" target="_blank">cover</a> (or it's <a href="http://www.debuggingrules.com/" target="_blank">website</a>... or it's <a href="http://www.debuggingrules.com/Poster_download.html" target="_blank">poster</a>). Especially true in this situation. David Agan's book "<a href="http://www.amazon.com/gp/product/B002H5GSZ2/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=B002H5GSZ2&linkCode=as2&tag=looksgoodwork-20" target="_blank">Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems</a>" is a great find, chocked full of simple wisdom on how to find and fix bugs. Some of you will be turned off by his use of Comic Sans (see his note at the <a href="http://www.debuggingrules.com/" target="_blank">bottom of his website</a> for his funny comment on why he sticks by his comic sans guns).<br />
<br />
<b>What it is not.</b><br />
It is not a tutorial for any debugging tool. It is not a primer for debugging in any specific language. It is not an exhaustive tome on debugging. It doesn't have specifics on debugging for the web.<br />
<br />
<b>What it is.</b><br />
Short and sweet. It contains 9 principles that are timeless and can be applied to any system you are trying to debug. Timeless aspect.<br />
<br />
<b>Why this book?</b><br />
I have often wondered why some engineers seem to be able to debug and fix issues and others just create a mess when they try. Of course some minds work in a more systematic manner than others and some have more insight. This book teases out the principles that underly finding and fixing issues. The principles are dead simple and completely obvious when you glance at them. But I promise you that a lot of our colleagues don't practice even a portion of these.<br />
<br />
I also like this book because it is a little older and it doesn't try to tie itself to the current trends. One of his first "war stories" is about debugging one of the original Pong games. Love it. First published in 2002, and then again in 2006, it is kind of hard to find. I bought the last 7 copies from ebay today but you can get it from the <a href="http://www.amazon.com/gp/product/B002H5GSZ2/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=B002H5GSZ2&linkCode=as2&tag=looksgoodwork-20" target="_blank">kindle bookstore</a>.<br />
<br />
<b>Nine Principles</b><br />
<br />
<ol class="ol1">
<li class="li1">Understand the system</li>
<li class="li1">Make it fail</li>
<li class="li1">Quit thinking and look</li>
<li class="li1">Divide and conquer</li>
<li class="li1">Change one thing at a time</li>
<li class="li1">Keep an audit trail</li>
<li class="li1">Check the plug</li>
<li class="li1">Get a fresh view</li>
<li class="li1">If you didn't fix it, it ain't fixed</li>
</ol>
<br />
Do you have other suggestions for teaching the basics of debugging? Comment below.<br />
<br />Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com4tag:blogger.com,1999:blog-11599526.post-27768521705437514782012-11-23T22:48:00.001-08:002012-11-23T22:48:58.453-08:00User Interface Engineering Disciplines & SkillsOne of the first things I did when I joined PayPal was rename the "webdev" to "User Interface Engineering". Now while there is nothing wrong with the title web developer, at PayPal webdevs were considered one step below a "dev".<br />
<br />
Changing a title in itself is fairly meaningless. But at the same time names are powerful.
Over the last year I believe we have been really growing into the title. Recently I started sketching all of the engineering disciplines as well as web development skills needed for this role. Here is the diagram I created.
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://billwscott.com/share/blog/uie-skills.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Engineering disciplines & skills needed for UIEs" border="0" height="698" src="http://billwscott.com/share/blog/uie-skills.png" width="540" /></a></div>
<br />
<br />
<a href="http://billwscott.com/share/blog/uie-skills.txt" target="_blank">Here is an accessible version</a> of the diagram above.
<br />
<br />
One of our next steps is to flesh out curricula that ties to the diagram above. We are calling this courseware "Bring Design to Life University" since our job as UIEs is to bring great design to life.<br />
<br />
<br />Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com7tag:blogger.com,1999:blog-11599526.post-53091576509823129222012-11-23T22:22:00.000-08:002012-11-28T21:47:32.367-08:00List of Mockup/Prototyping ToolsStarted keeping a list of these tools. No particular order.<br />
<div>
<br /></div>
<div>
<div>
Creately</div>
<div>
<a href="http://creately.com/">http://creately.com/</a></div>
<div>
<br /></div>
<div>
Axure RP</div>
<div>
<a href="http://axure.com/">http://axure.com/</a></div>
<div>
<br class="Apple-interchange-newline" />
InVision</div>
<div>
<a href="http://www.invisionapp.com/">http://www.InVisionApp.com</a></div>
<div>
<br /></div>
<div>
Mockingbird</div>
<div>
<a href="https://gomockingbird.com/">https://gomockingbird.com/</a></div>
<div>
<br /></div>
<div>
Balsamiq Mockups</div>
<div>
<a href="http://balsamiq.com/products/mockups">http://balsamiq.com/products/mockups</a></div>
<div>
<br /></div>
<div>
Ratchet</div>
<div>
<a href="http://maker.github.com/ratchet/">http://maker.github.com/ratchet/</a></div>
<div>
<br /></div>
<div>
Justinmind</div>
<div>
<a href="http://www.justinmind.com/">http://www.justinmind.com/</a></div>
<div>
<br /></div>
<div>
HotGloo</div>
<div>
<a href="http://www.hotgloo.com/">http://www.hotgloo.com/</a></div>
<div>
<br /></div>
<div>
FlairBuilder</div>
<div>
<a href="http://www.flairbuilder.com/">http://www.flairbuilder.com/</a></div>
<div>
<br /></div>
<div>
Mockflow</div>
<div>
<a href="http://www.mockflow.com/">http://www.mockflow.com/</a></div>
<div>
<br /></div>
<div>
mocklinkr</div>
<div>
<a href="http://www.mocklinkr.com/">http://www.mocklinkr.com/</a></div>
<div>
<br /></div>
<div>
Mockabilly</div>
<div>
<a href="http://www.mockabilly.com/">http://www.mockabilly.com/</a></div>
<div>
<br /></div>
<div>
moqups</div>
<div>
<a href="https://moqups.com/#!/">https://moqups.com/#!/</a></div>
<div>
<br /></div>
<div>
AppMockupTools</div>
<div>
<a href="http://www.appmockuptools.com/">http://www.appmockuptools.com/</a></div>
<div>
<br /></div>
<div>
WireframeSketcher</div>
<div>
<a href="http://wireframesketcher.com/">http://wireframesketcher.com/</a></div>
<div>
<br /></div>
<div>
JustProto</div>
<div>
<a href="http://www.justproto.com/">http://www.justproto.com/</a></div>
<div>
<br /></div>
<div>
Napkee</div>
<div>
<a href="http://www.napkee.com/">http://www.napkee.com/</a></div>
<div>
<br /></div>
<div>
ForeUI</div>
<div>
<a href="http://www.foreui.com/">http://www.foreui.com/</a></div>
<div>
<br /></div>
<div>
Jumpchart</div>
<div>
<a href="http://jumpchart.com/">http://jumpchart.com/</a></div>
<div>
<br /></div>
<div>
Protoshare</div>
<div>
<a href="http://www.protoshare.com/">http://www.protoshare.com/</a></div>
<div>
<br /></div>
<div>
iPhoneMockup</div>
<div>
<a href="http://iphonemockup.lkmc.ch/">http://iphonemockup.lkmc.ch/</a></div>
<div>
<br /></div>
<div>
Lumzy</div>
<div>
<a href="http://www.lumzy.com/">http://www.lumzy.com/</a></div>
<div>
<br /></div>
<div>
Pidoco</div>
<div>
<a href="https://pidoco.com/">https://pidoco.com/</a></div>
<div>
<br /></div>
<div>
Proto.io</div>
<div>
<a href="http://proto.io/">http://proto.io</a></div>
<div>
<br /></div>
<div>
AnteType</div>
<div>
<a href="http://antetype.com/">http://antetype.com</a></div>
<div>
<br /></div>
<div>
AppSketcher</div>
<div>
<a href="http://appsketcher.com/">http://appsketcher.com</a></div>
<div>
<br /></div>
<div>
MockupBuilder</div>
<div>
<a href="http://mockupbuilder.com/">http://mockupbuilder.com</a></div>
<div>
<br /></div>
<div>
PowerMockup</div>
<div>
<a href="http://powermockup.com/">http://powermockup.com</a></div>
<div>
<br /></div>
<div>
AppCooker</div>
<div>
<a href="http://www.appcooker.com/Overview.php">http://www.appcooker.com/Overview.php</a></div>
<div>
<br /></div>
<div>
Tiggzi</div>
<div>
<a href="http://tiggzi.com/home">http://tiggzi.com/home</a></div>
<div>
<br /></div>
<div>
iPlotz</div>
<div>
<a href="http://iplotz.com/whatisiPlotz.php">http://iplotz.com/whatisiPlotz.php</a></div>
<div>
<br /></div>
<div>
Serena</div>
<div>
<a href="http://www.serena.com/products/prototype-composer/index.html">http://www.serena.com/products/prototype-composer/index.html</a></div>
<div>
<br /></div>
<div>
fluidIA</div>
<div>
<a href="http://www.fluidia.org/">http://www.fluidia.org/</a></div>
<div>
<br /></div>
<div>
FrameBox</div>
<div>
<a href="http://framebox.org/ECIN">http://framebox.org/ECIN</a></div>
<div>
<br /></div>
<div>
Naview</div>
<div>
<a href="http://www.naviewapp.com/">http://www.naviewapp.com/</a></div>
<div>
<br /></div>
<div>
DENIM</div>
<div>
<a href="http://dub.washington.edu:2007/projects/denim/">http://dub.washington.edu:2007/projects/denim/</a></div>
<div>
<br /></div>
<div>
UIreframe.com</div>
<div>
<a href="http://uireframe.com/app/">http://uireframe.com/app/</a></div>
<div>
<br /></div>
<div>
GUI Machine</div>
<div>
<a href="http://gui-machine.com/">http://gui-machine.com/</a></div>
<div>
<br /></div>
<div>
inPreso Screens</div>
<div>
<a href="http://www.inpreso.com/inpresoscreens/">http://www.inpreso.com/inpresoscreens/</a></div>
<div>
<br /></div>
<div>
UXPin</div>
<div>
<a href="http://uxpin.com/">http://uxpin.com/</a></div>
<div>
<br /></div>
<div>
SoftAndGUI</div>
<div>
<a href="http://www.softandgui.co.uk/">http://www.softandgui.co.uk/</a></div>
<div>
<br /></div>
<div>
Notism</div>
<div>
<a href="https://www.notismapp.com/home">https://www.notismapp.com/home</a></div>
<div>
<br /></div>
<div>
MockupScreens</div>
<div>
<a href="http://www.mockupscreens.com/index.php?page=Screen-Prototypes">http://www.mockupscreens.com/index.php?page=Screen-Prototypes</a></div>
<div>
<br /></div>
<div>
MockupTiger</div>
<div>
<a href="http://www.mockuptiger.com/">http://www.mockuptiger.com/</a></div>
<div>
<br /></div>
<div>
JotForm</div>
<div>
<a href="http://www.jotform.com/">http://www.jotform.com/</a></div>
<div>
<br /></div>
<div>
Keynotopia</div>
<div>
<a href="http://keynotopia.com/">http://keynotopia.com/</a></div>
<div>
<br /></div>
<div>
Handcraft</div>
<div>
<a href="http://handcraft.com/">http://handcraft.com/</a><br />
<br />
Added after original publishing of this article:<br />
<br />
LucidChart<br />
<a href="http://www.lucidchart.com/">http://www.lucidchart.com</a><br />
<br />
Twitter Bootstrap<br />
<a href="http://twitter.github.com/bootstrap/">http://twitter.github.com/bootstrap/</a><br />
<br />
JetStrap<br />
<a href="http://jetstrap.com/">http://jetstrap.com/</a><br />
<br />
<br /></div>
</div>
Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com12tag:blogger.com,1999:blog-11599526.post-39390272159902925202012-10-06T19:02:00.001-07:002012-10-06T19:02:50.331-07:00Lean UX & Agile Development. Rationalizing the Two MethodologiesI really enjoy <a href="http://www.siliconvalley-codecamp.com/" target="_blank">Silicon Valley Code Camp</a>. Lots of speakers, lots of local attendees. Very informal and always a good crowd. No different today. Really engaged audience.<br />
<br />
One topic I covered was how <a href="http://uxdesign.smashingmagazine.com/2011/03/07/lean-ux-getting-out-of-the-deliverables-business/" target="_blank">Lean UX</a> and <a href="http://en.wikipedia.org/wiki/Agile_software_development" target="_blank">Agile</a> work together in harmony. Here is a diagram I shared that I have been using at work to explain how they are related and how they are different.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-F1dtpAmTkcc/UHDEVuGRzdI/AAAAAAAAAPs/NRo5dxycUvk/s1600/lean-agile.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Lean UX & Agile: Two separate but aligned workstreams" border="0" height="271" src="http://2.bp.blogspot.com/-F1dtpAmTkcc/UHDEVuGRzdI/AAAAAAAAAPs/NRo5dxycUvk/s400/lean-agile.png" title="Lean UX & Agile" width="400" /></a></div>
Agile focuses on iterative delivery. It is by nature engineering-centric (though it has been applied to non-engineering tasks) as it produces software meeting specific acceptance criteria. It has numerous ceremonies instead of heavy process like waterfall methodologies require.<br />
<br />
Lean UX focuses on refining the experience through collaboration, shared understanding and continuous customer feedback. While agile finds its roots in engineering, Lean UX stems from work borrowed heavily from Eric Ries in the <a href="http://www.amazon.com/gp/product/0307887898/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0307887898&linkCode=as2&tag=looksgoodwork-20" target="_blank">Lean Startup</a> and applies it to refining customer experience. Lean dispenses with agile ceremonies but like agile also dispenses with extraneous documentation. Lean UX gets its cadence from getting prototypes or mockups in front of customers regularly while agile gets its cadence from delivering working software released at the end of each sprint.<br />
<br />
In the <a href="http://billwscott.com/share/presentations/2012/svcc/lean-agile.png" target="_blank">above diagram</a> I call out this separate stream of work -- the Lean UX stream. It is separate from the agile streams, but does not replace the agile streams. It runs ahead of the agile streams like Sprint 0 methodology but it does not stop with sprint 1 (nor is it confined to starting one sprint ahead). It continues to run in parallel with the agile tracks. What gets learned in the LeanUX stream (essentially a continuously evolving living prototype) gets fed into the agile streams and becomes some of the user stories. Its cadence may change (we usually start with weekly usability testing and then slow down to every 2 weeks or so) but its purpose does not. <a href="http://looksgoodworkswell.blogspot.com/2012/07/my-lean-ui-tech-presentation-from-open.html" target="_blank">Separately</a> I have <a href="http://looksgoodworkswell.blogspot.com/2012/09/why-you-should-work-with-me-at-paypal.html" target="_blank">noted</a> the technology changes we have introduced that allow us to have seamless movement between Lean UX streams and Agile streams with respect to software delivered. This is an essential ingredient to making this work well.<br />
<br />
Lean UX & Agile work together well. And while they share lots of common principles they are distinct work streams. Lean UX & Agile aren't the whole picture on how to create great products. You also need to be able to gather customer insights, define customer problems, refine solution concepts, deliver & test solutions and then rinse & repeat these steps. Lean UX is one tool to help us refine & test solution concepts. Agile helps us deliver solutions. A/B testing helps us test what we deliver. <a href="http://www.insideintuit.com/intuit_success_factors.htm#Customer Driven Innovation" target="_blank">Customer driven innovation</a> (pioneered at Intuit) defines a broader methodology that Lean & Agile fit nicely inside of.<br />
<br />
Ok, so with that context here are <a href="http://billwscott.com/share/presentations/2012/svcc/LeanUXAntipatterns.pdf" target="_blank">the updated slides from the talk I gave earlier today on Anti-Patterns for Lean UX.</a> You can see an earlier version on <a href="http://www.slideshare.net/billwscott/lean-ux-antipatterns" target="_blank">slideshare</a>.<br />
<br />
Are you using Agile & Lean UX methodologies? How are you approaching innovation & experience delivery in your organization?<br />
<br />Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com4tag:blogger.com,1999:blog-11599526.post-71010442200040573412012-09-08T21:32:00.001-07:002012-09-08T21:32:18.538-07:00Three Key Principles to Operating as a LeanUX TeamCoaching teams here at PayPal on what it takes to operate like in a LeanUX manner. I have typically boiled it down to just 3 key principles.<br />
<h2>
Three Principles</h2>
<h3>
1. Maintain a Shared Understanding at All Times</h3>
This was key <a href="http://52weeksofux.com/post/2403607066/building-a-shared-understanding" target="_blank">when I was at Netflix</a> and I see it even stronger now. A lack of a shared understanding means you will have have to lots of documentation. Having documentation that is predictive in an iterative environment is problematic. It is not realistic since you need to be able to change assumptions and solutions early in the cycle. Historical documentation becomes more necessary as teams downstream need them.<br />
<br />
A good way to alleviate much of the documentation normally needed is to pull the teams that are normally downstream (like QA, Localization QA, Localization, etc.) and bring them up further in the earlier cycles. Additionally you can create tools earlier in the process that proxy for these teams and reduce the number of those representatives you will need. Tools downstream should be automation driven as much as possible.<br />
<br />
In a recent LeanUX project I kept referring to a/b testing. At some point it became apparent that not all the team understood what I meant by a/b testing (remember this is what I ate, drank & slept at Netflix). It was an easy solve to get us a shared understanding, but the mistake was assuming we had one already on all topics.<br />
<br />
<h3>
2. Collaborate, Collaborate, Collaborate</h3>
<div>
Walls between teams get erected whenever teams get big, become overly specialized and work in isolation. Agreeing to work as a team, trust each other and make collaboration the underpinning of the team's ethos will ensure the walls will come down.</div>
<div>
<br /></div>
<div>
It's not easy. We like to retreat back to the comfort of going solo or dictating to another the way things work. How can you tell where the walls are? It will be at those hand-off points that happen across disciplines. Collaboration is the opposite of this toss it over the wall mindset.</div>
<div>
<br /></div>
<div>
It's ok for teams to take time to work separately or have sessions to reflect. But if you are doing this to avoid working as a team then watch out. Trouble is already at your door.</div>
<div>
<br /></div>
<h3>
3. Build/Test/Learn -- or Get to the Customer Early & Often</h3>
<div>
This is the secret to getting rid of team politics, getting rid of the prima donna, getting rid of analysis paralysis. Getting to the customer in usability tests, research, a/b testing and so on and doing it on a weekly or bi-weekly basis if at all possible keeps the team pure. It is the difference between a stagnant pond or a clear lake fed by streams. User data & user feedback will keep the team focused on the customer and the real goals of the product. </div>
<div>
<br /></div>
<div>
Believe me this really works. It is astonishing to see how much ownership takes over the team when they sit in all the usability sessions as a team and watch the successes and failures of their work. I have seen the full team time & again go out of a session that didn't go so well with a renewed determination to nail it next time. Customer feedback is the elixer to what ails you (now I just have to mention that all of the standard practices of how to gather this feedback and what to do with it still apply).</div>
<div>
<br /></div>
<h2>
It's Pretty Simple</h2>
Fragile is often the name given to agile projects that are busted. I have used the term "Lean-Fall" to describe that ugly mix of waterfall & LeanUX. When I talk with teams that are struggling to work in an agile manner it could be a host of issues. There is a lot of machinery from an agile practice standpoint that might need tweaking.<br />
<br />
But frankly, over and over I have seen it come down to one or more violations of these three principles. If you don't have shared understanding, collaboration and continuous customer feedback, no amount of scrums, scrum of scrums, agile coaches, etc. is going to make a difference.<br />
<br />
View what you are doing as a team in light of these principles and see if it doesn't give you a fresh perspective on acting like a startup.<br />
<br />
If you like this article, you might want to check out my <a href="http://looksgoodworkswell.blogspot.com/2012/06/anti-patterns-for-lean-ux.html" target="_blank">Anti-Patterns for LeanUX presentation</a>.Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com3tag:blogger.com,1999:blog-11599526.post-60401960716029172402012-09-06T21:40:00.000-07:002012-09-06T21:40:07.531-07:00The Who, What, How of Satisfaction for Frontend EngineersThis is an over-simplified view. But I was thinking about what really matters to frontend engineers in their jobs (besides money).<br />
<br />
<h3>
It matters <u><i>who</i> they work with</u></h3>
<br />
<ul>
<li>They want to be challenged by people smarter than themselves.</li>
<li>They want to work for someone who gets it and values what they do.</li>
</ul>
<br />
<h3>
It matters <u><i>what</i> they work on</u> with who they work with</h3>
<br />
<ul>
<li>The experience must matter. It must not be an afterthought.</li>
<li>The technology stack must be industry standard and make development fast.</li>
<li>The work must be relevant to our customers.</li>
</ul>
<br />
<h3>
It matters <u><i>how</i> they work on</u> what they work on with who they work with</h3>
<br />
<ul>
<li>They want to partner early & often with product & design.</li>
<li>They want to work in a lean, collaborative environment.</li>
<li>They want to have customer feedback integrated throughout the lifecycle.</li>
<li>Some parts of their work must be given back to the open source community.</li>
<li>They must be valued for the unique contribution they make.</li>
<li>They must be able to grow in their job to reach new heights.</li>
</ul>
<div>
<br /></div>
<div>
What do you think?</div>
<br />
Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com4tag:blogger.com,1999:blog-11599526.post-89221177972237581072012-09-05T20:26:00.002-07:002012-09-06T21:28:24.820-07:00Forming a new Accessibility Team at PayPal -- Welcome Victor Tsaran & Srinivasu Chakravarthula!I am excited to share that we are formalizing the already ongoing effort at PayPal in Accessibility by forming an official Accessibility team.<br />
<br />
And to kick things off right, I am thrilled to announce that <a href="http://www.linkedin.com/in/victortsaran" target="_blank">Victor Tsaran</a> will be joining PayPal on Monday 9/10 to lead this team. Many of you know that for the past 7+ years Victor has been the face of <a href="http://yaccessibilityblog.com/wp/" target="_blank">Accessibility at Yahoo</a> (along with the excellent <a href="http://www.disaboom.com/disability-rights-and-advocacy-general/disability-accessibility-and-assistive-technology-interview-with-alan-brightman" target="_blank">Alan Brightman</a>) And if you were reading my blog back in 2005 you will also know that I wrote a piece about Victor's impact on my views about accessibility. I was just 2 months into my career at Yahoo! Here is a snippet <a href="http://looksgoodworkswell.blogspot.com/2005/09/rich-accessibility.html" target="_blank">from that article</a>:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
<b>Confession</b></blockquote>
<blockquote class="tr_bq">
Ok, I'll start with a confession.</blockquote>
<blockquote class="tr_bq">
I think accessibility issues have always been an abstract concept to me.</blockquote>
<blockquote class="tr_bq">
It usually was an afterthought, something that the usability folks dinged us for. You know the text wasn't dark enough or the font was too small. It seemed to me that every experience I had with accessibility was from the negative perspective.</blockquote>
<blockquote class="tr_bq">
You see, I love rich interfaces. I love visualizations. I enjoy pushing the envelope. Somehow in my mind I just saw accessibility and richness as mutually exclusive.</blockquote>
<blockquote class="tr_bq">
<b>Conversion</b></blockquote>
<blockquote class="tr_bq">
This all changed over the last two weeks. It happened almost the first time I met Victor Tsaran, Yahoo!'s Accessibility Evangelist/Manager. Victor is an incredibly bright engineer who happens to be non-sighted. If ever there was an evangelist and champion for accessibility, Victor is the man.</blockquote>
<blockquote class="tr_bq">
Victor does not come at accessibility from the negative aspect. Not at all. He approaches it with an enthusiasm, a sense of humor, and a challenge to create rich interfaces that are richly accessible.</blockquote>
</blockquote>
My thinking hasn't changed. That's why when I started thinking about forming this team there was only one person in my mind -- Victor.<br />
<br />
Here is a great intro to Victor and his work at Yahoo!<br />
<br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/kfHVHTRCxVU" frameborder="0" allowfullscreen></iframe><br />
<br />
In addition, I want to call out an equally incredible hire by our QA team in Chennai, India -- <a href="http://srinivasu.org/blog/" target="_blank">Srinivasu Chakravarthula</a>. Vasu was the Senior Manager, Inclusive Design at Yahoo! Bangalore. Vasu is well known in the industry (like Victor). You can follow Vasu on twitter <a href="https://twitter.com/VasuTweets" target="_blank">@vasutweets</a>.<br />
<br />
We are stoked to have these two great advocates for accessibility on the PayPal team. We look forward to bringing Inclusive Design to the fore on all of PayPal's products & services.<br />
<br />
They will join together with the excellent work that Cathy O'Connor, Dennis Lembree and Nawaz Khan have been doing to bring accessibility to the fore at PayPal to form this multi-disciplinary team (design, engineering & QA).<br />
<br />
Welcome Victor & Vasu!<br />
<br />Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com4tag:blogger.com,1999:blog-11599526.post-22615235346906349142012-09-04T20:44:00.000-07:002012-09-04T20:44:44.880-07:00Looking for "UI Engineer, Developer Experience"Just one of the many places we are upping the game at PayPal is in our developer experiences. A few months back PayPal formed an Application Platform team. Part of its charter is to create great developer experiences as well as simple developer APIs. <a href="http://www.linkedin.com/in/deepaknadig" target="_blank">Deepak Nadig</a>, the Technical Director of this team, is looking for two UI Engineers to work on exciting projects in this area.
Here is part of the job description:<br />
<blockquote class="tr_bq">
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>ZH-CN</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<div class="MsoNormal">
<i>We are creating a world where ‘payments’ is synonymous with
PayPal. The PayPal Application Platform is a suite of web services, which are
used by internal and external developers to enable payments anytime, anywhere
and anyway. The Application Platform is complemented by a comprehensive
Developer Experience that enables these developers to find, learn and use these
APIs effectively. The Application Platform processes billions of requests each
month, and enables PayPal and its partners to rapidly innovate on new payment
scenarios and enable new experiences. Therefore, the evolution of the Application
Platform is integral to PayPal’s long-term strategy. </i></div>
</blockquote>
<blockquote class="tr_bq">
<div class="MsoNormal">
<i><o:p></o:p></i></div>
<div class="MsoNormal">
<i>As a UI engineer in our development experience team you will
be responsible for the development and delivery of the web experience used by
developers to find, learn and use our APIs. You will work closely with our product
and experience and/or integration teams to understand the developer needs and deliver
the experience that meets their needs.</i></div>
</blockquote>
Please reach out to me directly if you are interested. bill.scott _AT_ paypal.com.Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com0tag:blogger.com,1999:blog-11599526.post-42476563221570785202012-09-03T15:10:00.000-07:002012-09-03T15:10:12.461-07:00Why You Should Work with Me at PayPalI have <a href="http://looksgoodworkswell.blogspot.com/2012/01/my-paypal-update-paypal-rocks.html" target="_blank">blogged a little</a> in the past as to <a href="http://looksgoodworkswell.blogspot.com/2011/10/excited-about-my-new-role-sr-director.html" target="_blank">why I came to PayPal</a>. Today I want to talk about why you should come to PayPal to work with me.<br />
<br />
To start with let's be frank. Last year when I contemplated joining PayPal it was clear PayPal had long lost its luster as the darling innovator of Silicon Valley. PayPal had changed the face of payments when it came on the scene. And the innovators DNA is evidenced by one of its founders going on to create the first viable electric car and the successor to the Space Shuttle program. To get a fuller look at the innovator DNA of early PayPal, check out the wikipedia article on the <a href="http://en.wikipedia.org/wiki/PayPal_Mafia" target="_blank">PayPal Mafia</a>.<br />
<br />
But what I sensed when I joined PayPal last October was a desire to get back to its innovation roots. Back to a desire to innovate again. This desire coupled with a very healthy financial position seemed to me to be a no brainer. I decided to take the chance. So what has happened in the past 10 months? From my perspective three things: New leadership, new way of working and new talent.<br />
<br />
<h3>
New Leadership</h3>
How often do companies the size and age of PayPal get a complete makeover? Not often. But that is just what has been underway here. Take a look at just some of the new leadership in the company:<br />
<br />
<ul>
<li><a href="http://www.linkedin.com/in/dmarcus" target="_blank">David Marcus</a>. President. David came into PayPal a year ago as part of the <a href="http://www.linkedin.com/company/zong" target="_blank">Zong</a> (mobile payments) acquisition. David is a product, user experience, social & mobile guy at heart. He is passionate about innovation and his motto is GSD (Get sh*t done!). Before PayPal I believe the largest organization he led was 200 people (Zong). He believes in small teams empowered with really smart people working with great business context. I could not be happier than I am working at PayPal with David at the helm.</li>
<li><a href="http://www.linkedin.com/in/jamesbarrese" target="_blank">James Barrese</a>. James became the CTO of PayPal earlier this year. James brings the challenge to think differently to the technology organization. James also brings a wealth of experience leading technology at eBay with lessons learned from what worked and what didn't. </li>
<li><a href="http://www.linkedin.com/in/hillferguson" target="_blank">Hill Ferguson</a>. Head of Product & Mobile. Hill also joined PayPal through the Zong acquisition. Hill has strong mobile & financial roots and is a passionate leader bringing together all of our product & mobile teams together in a single team.</li>
<li><a href="http://www.linkedin.com/pub/hendrik-kleinsmiede/0/62a/840" target="_blank">Hendrik Kleinsmiede</a>. VP of Global Design (UED). Hendrik joined in January and brings with him a passion to create great experiences by attracting top talent and collaborating deeply with product & engineering. Hendrik & I have a very close working relationship and in our short time have collaborated on bringing LeanUX and Mobile First thinking in as first class citizens of PayPal.</li>
<li><a href="http://www.linkedin.com/in/kirstenwolberg" target="_blank">Kirsten Wolberg</a>. VP Technical Business Office (Project Management). Kirsten believes in Agile approach through & through having led the Salesforce IT org to become agile there. I am working in a team with Kirsten to make working in small teams a reality across PayPal.</li>
<li><a href="http://www.linkedin.com/pub/allen-olivo/0/6b/89a" target="_blank">Allen Olivo</a>. Head of Global Marketing. Allen is a luminary in the industry having led Apple during the Steve Jobs transition back in the fold. He has places like Amazon & Yahoo in his past as well. Like the new fresh PayPal look? That is Allen & his team.</li>
<li><a href="http://www.crockford.com/" target="_blank">Doug Crockford</a>. JavaScript Architect & Industry Luminary! Need I say more?</li>
</ul>
<div>
This is not an exhaustive list. I am sure I am forgetting to mention someone. I could also make a much longer list of VPs, Sr. Directors and Directors that have joined in the last year bringing fresh perspectives into the company. But I should mention that there are many existing leaders (like my former boss who recruited me) that also have this DNA of change.</div>
<br />
<h3>
New Way of Working</h3>
I have mentioned before that PayPal is in the midst of a transformation from working in silos in a slow waterfall manner to a lean, startup approach. Earlier in the year I had the privilege of helping to kick off a new way of working on a core part of our business. We took <a href="http://www.amazon.com/gp/product/0307887898/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0307887898&linkCode=as2&tag=looksgoodwork-20" target="_blank">lessons from startups</a> and decided that going forward (this was with David's total blessing as well as mandate) we would not work the way we had in the past.<br />
<br />
We gathered our designers, our product folks and our engineers and took over a few conference rooms and began to operate like a startup. Design was done on whiteboards and coded in real time. Usability tests were weekly so the pace was fast and furious. But we were able to try dozens of experiences across desktop, tablet and mobile in the time that would have taken years at PayPal before. Build/Test/Learn became our mantra.<br />
<br />
To date we have trained several hundred designers, engineers, product, QA, and other employees in <a href="http://uxdesign.smashingmagazine.com/2011/03/07/lean-ux-getting-out-of-the-deliverables-business/" target="_blank">Lean UX methodologies</a>. In addition, we are in a huge transformation project bringing more and more of PayPal into this mode of working every day. Currently I am involved in at least 6 new innovation projects all operating like a startup within the company.<br />
<br />
You can read about this approach in my presentation on the <a href="http://www.slideshare.net/billwscott/the-lean-tech-stack" target="_blank">Lean UI Stack</a> as well as see my cautions for what can go wrong in the presentation <a href="http://www.slideshare.net/billwscott/lean-ux-antipatterns" target="_blank">Anti-Patterns for LeanUX</a>.<br />
<br />
<h3>
New Technology Stack </h3>
I am really excited about this part of the transformation. For years PayPal's UI has been built on top of XML/XSLT technologies. If you know me you will no doubt have heard me rant violently about how this technology is the bane of good UI engineering. I won't go into it here, but suffice it to say that the only thing worse than XML/XSLT is a proprietary form of XML/XSLT -- which of course is what PayPal was built on (C++ on the backend).<br />
<br />
In the last year the company has moved to Java for all new projects. I am very comfortable with Java. In fact since 1996 I have personally built 4 UI frameworks on top of the Java stack. However, I long ago lost my excitement for using Java in any way, shape or form for the experience layer. Typically Java Server Pages (JSP) is the standard Java solution for UIs. And not very surprisingly this is exactly what was in flight when I joined PayPal.<br />
<br />
Knowing that Java was an improvement over C++ and JSP was an improvement over XML/XSLT wasn't enough to satisfy my requirement that UI Engineering (UIE) needed to be able to "Bring great design to life quickly". Elsewhere I have written about how the <a href="http://looksgoodworkswell.blogspot.com/2012/04/experimentation-layer.html" target="_blank">UI layer is actually the experimentation layer</a>. And that you must design for build/test/learn. Which means designing for volatility and throwaway-ability. Iterating in Java and JSPs just didn't cut it based on my experience.<br />
<br />
So with the launch of the new "startup" for one of our core businesses we began to experiment with <a href="http://nodejs.org/" target="_blank">nodejs</a>. Node is an extremely powerful development environment for applications. <a href="https://npmjs.org/" target="_blank">Many node modules</a> exist to bootstrap an application. And coupled with the right stack on the UI layer we saw it as a winning combination.<br />
<br />
We wanted to be able to iterate faster than we could with the JSP stack and we wanted to be able to bring new talent in the door and have them checking in code within the first few days of hiring. In our mind this was only possible by using open source software as much as possible. Here are some of the choices we made at the UI layer:<br />
<ul>
<li><a href="http://akdubya.github.com/dustjs/" target="_blank">Dust JS</a> for our templating. We are partnering with <a href="http://engineering.linkedin.com/frontend/leaving-jsps-dust-moving-linkedin-dustjs-client-side-templates" target="_blank">LinkedIn</a> as well as contributing to their fork of the <a href="https://github.com/linkedin/dustjs" target="_blank">Dust JS code on github</a>. Dust is great because it compiles down to JS and so the same templates can be run in the server as well as in the client (page-oriented vs applications).</li>
<li><a href="http://backbonejs.org/" target="_blank">Backbone JS</a> for eventing/model/structure to our applications. Of course <a href="http://documentcloud.github.com/underscore/" target="_blank">underscore JS</a> comes along for the ride.</li>
<li><a href="http://twitter.github.com/bootstrap/" target="_blank">Twitter Bootstrap</a>. For our components. Very nice.</li>
<li><a href="http://jquery.com/" target="_blank">jQuery</a>. Naturally.</li>
<li>For mobile: <a href="http://www.jqmobi.com/" target="_blank">jQMobi</a>. Although we are continually re-evaluating choices here.</li>
<li><a href="http://lesscss.org/" target="_blank">Less</a>. For CSS pre-processing. </li>
<li><a href="http://requirejs.org/" target="_blank">Require JS</a>. For module discipline, dependency management, packaging and minification.</li>
</ul>
<br />
However, we were faced with a dilemma. PayPal had invested significantly in the Java layer. It was easy enough to develop with these UI technologies on top of node. But what about the Java/Spring foundation below?<br />
<br />
What we did was a rather elegant hack. We added a new ViewResolver in Spring to handle running Dust templates within the Java server stack. We use RhinoScript as the resolver since it is the JS execution engine for the Java VM world.<br />
<br />
On the node side, we continued to use it for all of our mockup/prototyping of the actual product. The UI stack sits nicely on top of this node stack. And at anytime we just push the UI portion of the app over to the production Java stack and it runs the same as it did in node. In effect we have made our UI prototyping code be the same as our UI production code.<br />
<br />
We continue to investigate the feasibility of using Node in production and working with our PayPal infrastructure team are continuously adding modules to Node to have it operate as a first class citizen in the PayPal environment. In addition, the team has built a node bootstrap that allows you to gen up applications, views, controllers for our node apps -- a lot like the Rails scaffolding.<br />
<br />
Another great change internally has been the addition of GitHub to our full enterprise. Nothing like having GitHub as your blessed code repository. All of our node code lives there so the whole org is can make it better.<br />
<br />
What has been the result?<br />
<br />
<ul>
<li>New UI Engineer hired and within 4 hours was checking in code! PayPal record as far as I know.</li>
<li>"Coding is fun again" -- quote from UIE after working in our new tech stack.</li>
<li>Spun up half-dozen new projects behaving like startups using the new technology stack with very little training (if you can google it you don't need a week-long class to teach it).</li>
<li>Innovation is happening. We are seeing high levels of collaboration and continuous build/test/learn cycles happening in multiple teams.</li>
</ul>
<br />
<h3>
New Talent</h3>
Last but not least is the talent. I was pleasantly pleased to find good to great talent within PayPal when I joined. Two top engineers at Netflix joined my team and are leading out on a lot of the innovation. The existing members are actually folks I sought out to work for me before and are doing excellent work. I have hired great talent from Yahoo! as well as other places and am looking to deepen the talent further. But I don't want to stop there. I am looking for talent density within my organization and across PayPal.<br />
<br />
What about you? If you are a top-flight UIE (frontend engineer, web developer, etc) and it jazzes you to imagine the change we can bring with the resources of PayPal focused correctly, then why not drop me a line. I always have room for top talent. Come help be part of the new PayPal mafia :-)<br />
<br />
Contact me now at bill.scott _AT_ paypal.com.<br />
<br />
<br />
.Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com8tag:blogger.com,1999:blog-11599526.post-20695789913542867462012-07-29T16:02:00.001-07:002012-07-29T19:58:00.473-07:00Parenthesis of ForgetfulnessI am reading the excellent book <a href="http://www.amazon.com/dp/0805092811/ref=as_li_ss_til?tag=looksgoodwork-20&camp=0&creative=0&linkCode=as4&creativeASIN=0805092811&adid=1SC7KE1D0B9EPET86D6Q" target="_blank">Sleights of Mind: What the Neuroscience of Magic Reveals about our Everyday Deceptions</a>.<br />
<br />
In discussing how magicians manipulate attention (looking at the way <a href="http://www.istealstuff.com/" target="_blank">Apollo Robbins</a> the Gentleman Thief picks pockets) they described a technique called time misdirection. This is when your attention is misdirected in the time dimension. Magicians may introduce delays between the <i>method</i> behind a trick and the <i>effect</i> itself, which makes it difficult to link the two (see pg. 69).<br />
<br />
Here's an example from the book:<br />
<blockquote class="tr_bq">
Imagine that a magician fakes a coin transfer from his left to his right hand, and then opens his right hand to reveal that it is empty. Because there is no separation between the sleight (the fake transfer) and the magical effect (the vanished coin), you may easily conclude that the coin was never actually transferred but remained concealed in the magician's left hand. A more accomplished magician will introduce a separation -- a <b>parenthesis of forgetfulness</b> -- between the method and the effect. For example, after the fake coin transfer, and before revealing his empty right hand, he may reach into his pocket for the overt purpose of retrieving a magic wand, but in fact he is also dropping the palmed coin inside his pocket. Then, touching the magic wand in his left hand to his right hand, he shows that the coin has disappeared.</blockquote>
You can also see the master of sleight, Slydini, using time misdirection over & over in this routine on the Dick Cavett show:<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/8k4UET_YX8Y" width="420"></iframe><br />
<h3>
<br /></h3>
<h3>
Parenthesis of Forgetfulness</h3>
A primary skill of magic is to learn how to hide information. In this case, magicians use the delay of time to take advantage of the way our brains work and misdirect you from the method to the effect. However, when we are designing interfaces this <i>parenthesis of forgetfulness</i> can work against us (often the things that magicians employ, designers have to avoid).<br />
<br />
When designing an experience we need to keep the <i>result</i> as close to the <i>action</i> as possible. In other words we have to shorten the parenthesis of forgetfulness.<br />
<br />
<b>Performance delays</b> can create this parenthesis. Let's say you want to withdraw or send funds on your bank's web site. If you withdraw funds but it takes a while to show your balance updated in context on the page then your brain will have to work harder to causally tie the action and the result together. One solution is to keep refreshing the user's memory of the relationship by such methods as progress indicators while the user is waiting for the result.<br />
<br />
<b>Taking the user out of context</b> through a page refresh to show the result of an action will also create this parenthesis. The time it takes to get to the result (the new page) as well as the change blindness that results from the refresh zaps the brain and takes it to the zone of forgetfulness. A solution to this is to draw the user's attention to what just happened. For example, highlighting the change will work as it refreshes the user's memory and ties the action and result together. But the best solution is to not have action & result span a page refresh. This will remove the parenthesis altogether. Elsewhere I have <a href="http://looksgoodworkswell.blogspot.com/2009/06/anti-pattern-needless-fanfare-turbo-tax.html" target="_blank">written</a> about this disconnect before, especially as it relates to <a href="http://uxmag.com/articles/change-blindness" target="_blank">change blindness</a>.<br />
<br />
What examples of the parenthesis of forgetfulness have you seen in web & mobile experiences? What solutions have you found for these situations?<br />
<br />
<br />Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com2tag:blogger.com,1999:blog-11599526.post-13707853293751901552012-07-14T20:12:00.001-07:002012-07-14T20:12:39.703-07:00My Lean UI Tech Presentation from Open Web Camp 2012Thanks to <a href="http://john.foliot.ca/">John Foliot</a> for putting on an excellent Open Web Camp. It was especially great as we got to host here at PayPal at our Town Hall facility.<br />
<br />
Lots of great talks. Check out the presentations at <a href="http://openwebcamp.org/slides">http://openwebcamp.org/slides</a> (more to come).<br />
<br />
Here is my talk from this morning.<br />
<br />
<div style="width:427px" id="__ss_13639805"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/billwscott/the-lean-tech-stack" title="The Lean Tech Stack" target="_blank">The Lean Tech Stack</a></strong> <object id="__sse13639805" width="427" height="356"> <param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=leantech-leanux-openwebcamp-120714113807-phpapp01&stripped_title=the-lean-tech-stack&userName=billwscott" /> <param name="allowFullScreen" value="true"/> <param name="allowScriptAccess" value="always"/> <param name="wmode" value="transparent"/> <embed name="__sse13639805" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=leantech-leanux-openwebcamp-120714113807-phpapp01&stripped_title=the-lean-tech-stack&userName=billwscott" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="427" height="356"></embed> </object> <div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/billwscott" target="_blank">Bill Scott</a> </div> </div>Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com0tag:blogger.com,1999:blog-11599526.post-85925260338962265852012-06-27T23:51:00.001-07:002012-06-27T23:51:41.201-07:00Anti-Patterns for Lean UXWe are going full bore on LeanUX at PayPal. This presentation just captures a lot of cautions for our teams. These anti-patterns call out bad behaviors or situations that can become bad which will stifle collaboration.
<br />
<div id="__ss_13479262" style="width: 425px;">
<strong style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/billwscott/lean-ux-antipatterns" target="_blank" title="Lean UX Anti-Patterns">Lean UX Anti-Patterns</a></strong> <iframe allowfullscreen="" frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/13479262" style="border-width: 1px 1px 0; border: 1px solid #CCC;" width="425"></iframe> <br />
<div style="padding: 5px 0 12px;">
View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/billwscott" target="_blank">Bill Scott</a> <br />
<br />
What anti-patterns have you seen?</div>
</div>Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com1tag:blogger.com,1999:blog-11599526.post-8356175271572435452012-05-12T07:15:00.001-07:002012-05-12T07:29:02.508-07:00Welcome Crock!<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-vRHms4OomGU/T65zODAedJI/AAAAAAAAAOw/-lLNxITZ1t0/s1600/crock.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="176" src="http://1.bp.blogspot.com/-vRHms4OomGU/T65zODAedJI/AAAAAAAAAOw/-lLNxITZ1t0/s400/crock.JPG" width="400" /></a></div>
<p style="clear:both;">Welcome aboard Doug! Stoked to be working with you again :-)</p>
<p>Interested in where PayPal is headed in the world of Javascript/User Interface Engineering? Ping me. bill.scott at paypal.com.</p>Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com8tag:blogger.com,1999:blog-11599526.post-73750116503123588312012-04-22T20:22:00.000-07:002012-04-23T21:40:57.215-07:00The Experimentation Layer<style>
em {
font-weight:bold;
font-size:14px;
}
</style>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<h2>
Designing for Reusability</h2>
<a href="http://en.wikipedia.org/wiki/Code_reuse">Code reuse</a> has been a major concern of mine throughout my career. I graduated with a computer science degree and was taught the value and beauty of <a href="http://en.wikipedia.org/wiki/Loose_coupling">loosely coupled</a>, <a href="http://en.wikipedia.org/wiki/Modularity_(programming)">modular code</a> with a clear <a href="http://en.wikipedia.org/wiki/Separation_of_concerns">separation of concerns</a>. In fact some of my most rewarding experiences have been writing user interface frameworks (a few dozen over the last 30 years).<br />
<br />
The same goes for designing experiences. Early on I realized that interaction designs could also be reused. Sometime after reading the gang of four book (<a href="http://www.amazon.com/gp/product/0201633612/ref=as_li_ss_tl?ie=UTF8&tag=looksgoodwork-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=0201633612">Design Patterns</a>) I started thinking that patterns could be used to define experiences as well. It was after that I stumbled upon Jennifer Tidwell's excellent work which would later become the book <a href="http://designinginterfaces.com/">Designing Interfaces</a>. A few years later, I went on to help launch the <a href="http://developer.yahoo.com/ypatterns/">Yahoo! Design Pattern library</a> and write a <a href="http://designingwebinterfaces.com/">book</a> on the subject.<br />
<br />
I mention all this to set the context that I am a huge fan of reuse.<br />
<h2>Designing for Throwaway-ability</h2>
In my prior role at Netflix, I quickly discovered a wrinkle to the reuse mantra. If you know a little about Netflix you will know that experimentation is the bread and butter of refining the experiences there. The big "aha!" moment came (2008) when I counted the number of experiments we fielded vs the number of experiments that became a lasting part of the site. I discovered that<br />
<br />
<em>Only about 10% of the UI code written to craft the experience lasted more than a year. 90% of the UI code needed to be thrown away.</em><br />
<br />
Could that really be right? In some cases we were testing 10+ test cells over a couple of months time. Only 1 cell (or sometimes a combination of cells) was selected as a winner. The winning cells often led to a new hypothesis that led to another set of test cells being fielded (perhaps another 10+ cells). And of those a new cell (or control) would end up as the winner. It doesn't take too many 9 out of 10 losers to start seeing that a lot of code needed to be thrown away over the course of a year. (I am over-simplifying this a bit. There is often reuse between test cells as well as the number of cells fielded will vary.)<br />
<br />
Now to a typical user the experience doesn't seem to change much in the short term. User A might be in a control cell (the standard experience). And in the next set of tests User A might still get allocated to the standard experience again. So to User A the site seems pretty stable. However if you plot the arc of the experience year over year you will see some substantial changes occur (think: Amazon, Netflix, Twitter, Facebook) as newly minted experiences are released to the full user population.<br />
<br />
The epiphany for me was that for the most volatile part of the experience...<br />
<br />
<em>We needed to design for throwaway-ability and not as much for reusability.</em><br /><br />
What does that even mean? Design for throwaway-ability? It means not over-investing in the scaffolding for reuse. It means designing a way to select code for experiments in a simple grokkable manner (like using the file system or packaging mechanisms for bundling experiments together). It means externalizing the logic for selecting experiments as much as possible. It might even mean copy and paste reuse to make it easy to modularize the experiments. It means don't start with writing components, instead start with creating the experience.<br />
<h2>Heresy!</h2>
When I had this epiphany it certainly felt heretical. Over time I have come to see the wisdom of knowing when to reuse and when not to reuse. However, lest I be next for a good stake burning for giving others a license to writing crappy code (since one could argue that it will be thrown away anyway ;-) let me provide some nuance.<br />
<h2>Reuse is Still a Good Thing</h2>
Not all of the UI layer changes with experimentation. The nuance is the UI layer contains different levels of volatility. The code to make a button or render a template doesn't change with an experiment. However, the placement of the button or the contents of the template will often vary from test to test.<br />
<br />
For the more stable areas of the experience, the great news is we have a rich set of open source libraries and frameworks that can provide a lot of this reuse right out of the box. Examples include component libraries like <a href="http://yuilibrary.com/">YUI</a> or <a href="http://jquery.com/">jQuery</a>; templating solutions like <a href="http://mustache.github.com/">mustache</a> or <a href="http://akdubya.github.com/dustjs/">dust</a>; <a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller">MVC</a> patterns like those expressed in <a href="http://documentcloud.github.com/backbone/">backbone.js</a>; common javascript extensions like those found in <a href="http://documentcloud.github.com/underscore/">underscore.js</a> and so on. In addition each organization will find certain aspects of their user experience that benefit heavily from thoughtful reuse.<br />
<br />
The truth is volatility increases as you get closer to the user experience and reuse opportunities increase as you move down the software stack.<br />
<br />
<div style="text-align: center;">
<a href="http://2.bp.blogspot.com/-K8GzcWN-ocU/T5SMvnT-vqI/AAAAAAAAAOA/WbtzMMm3phc/s1600/volatility-stack.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="152" src="http://2.bp.blogspot.com/-K8GzcWN-ocU/T5SMvnT-vqI/AAAAAAAAAOA/WbtzMMm3phc/s320/volatility-stack.png" style="cursor: move;" width="320" /></a></div>
<div style="text-align: center;">
<i>This funnel illustrates the relationship of volatility and reuse </i></div>
<div style="text-align: center;">
<i>as you move up and down the software stack.</i></div>
<h2>UI Layer = Experimentation Layer</h2>
What I want to impress upon you is a simple thought.<br />
<br />
<em>The UI layer should be thought of as the experimentation layer</em><br />
<br />
Think of the topmost layer of the user interface code (especially the HTML, CSS and Javascript for experiments) as the experimentation layer. As a corollary<br />
<br />
<em>You should always create an experience before thinking about creating a component </em><br />
<br />
In other words seek to use before reuse. I have found in my conversations at PayPal, talking about the UI layer as an experimentation layer is a great way to shift the conversation to the experience rather than to spending months building components and interface scaffolding. The goal is to get code in front of the user as fast as possible. Instead of starting with reuse, we start with the experience.<br />
<h2>What about Consistency?</h2>
Now let's be clear, experimentation is not the silver bullet that will create the perfect experience. A lot of understanding about the user, scenarios, and just good solid design principles are needed to make a good start on the experience. Experimentation can often lead to local optima instead of finding the overall experience. But given a good experience, experimentation can allow you to refine the experience in the right direction.<br />
<br />
One of the valid complaints that designers will often raise about experimentation is that it can lead to different experiences across the product families as the experimentation often is chasing specific business metrics in a specific area of the business. This can lead to some inconsistency when we allow the experience to be experimented on (at Netflix we call this the Frankenstein phase). There is a natural tension between innovation and standardization and the truth is healthy products will swing back and forth between loosening the constraints and innovating and then pulling back in the reigns and standardizing.<br />
<br />
Design standardization (read: patterns, guidelines) can be used to bring consistency. But I have often seen design standards teams position themselves at odds to innovation. And on the converse I have seen design innovation teams totally ignore basic patterns that could be employed. Both are wrong. Consistency without informed learnings during phases of innovation is the dead letter. And innovation without the learnings of the past & best practices is just wild speculation.<br />
<br />
Engineering teams will struggle with when to invest in the reuse scaffolding and when to simply create an experience that is quick to build and quick to tear down.<br />
<h2>The Bottom Line</h2>
The key thing to remember is everything must be in service to the user's experience. It's way to easy to forget this and get in an endless cycles of finessing the UI - which I must remind you might not even be the right experience.<br />
<br /></div>Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com7tag:blogger.com,1999:blog-11599526.post-18724532178311364122012-01-28T12:12:00.000-08:002012-01-29T14:55:32.738-08:00My PayPal Update: PayPal Rocks.The last three months have been a blur. The last blog I posted was right before joining PayPal. So I thought it would be good to give an update on my honest impressions about PayPal.<br />
<br />
Here are my take-aways.<br />
<br />
<b>#1 PayPal is positioned like no other company to change the way people use money. </b><br />
I am really excited to be part of changing something that is so fundamental to the way the world works. I sensed that PayPal was at an inflection point. And now seeing the products we are working on has convinced me we can do this and we welcome the competition. At Netflix we changed the way people view movies. At PayPal we change the way people use money :-) I am totally stoked about our business future.<br />
<br />
<b>#2 The wisdom is in the crowds! </b><br />
I interviewed over 100 different people in the organization in my first 6-8 weeks. My theory was the "smarts" was already in the organization. My interviews confirmed this. In many ways my job is collecting the intelligence, distilling it, and connecting the right people and information together and ensuring that we remove friction, indecision and instead multiply the ability of our makers to make.<br />
<br />
<b>#3. Innovation is blooming all around the organization</b><br />
I think this surprises colleagues of mine when I tell them that innovation is alive & well at PayPal. At PayPal's quarterly Leader's day they have a great tradition of every new leader (director & above) standing up and telling about where they came from, what's unique about them and what they will be doing. At the November meeting it took us over an hour to get through all the new people. I would estimate that 15-25% of the leaders were new. Either through acquisition or new hire. All this new blood brings in change with it. Couple the sparks from the new blood with the kindling of the wisdom in the crowds (to mix a few metaphors) and you have a roaring fire. I can assure you the PayPal you see on the site today and on merchant sites around the world will not be the same paypal you see in the future.<br />
<br />
And the competition from our friends at Google, Square and many others is awesome. Thank God for good competitors. This is energizing and refines a company and makes it lean.<br />
<br />
In fact I am in the middle of hiring for my head of UIE Innovation. This is a kick-butt role that partners directly with UED & Product in a lean & mean & collaborative manner to burn through as many ideas as possible and marry technology & innovation.<br />
<br />
<b>#4 The Technology Platform is being Re-Invented</b><br />
Prior technology choices on the front-end have hindered productivity. Using XML/XSLT is a HORRIBLE choice. It is a curse that thankfully is being rooted out. We are migrating all of the products to a simpler architecture that supports true client side development. I am happy to report that my team and the infrastructure team are building strong alliances and we have a shared vision that is about making UI development as nimble as possible. We are building towards a rapid experimentation platform.<br />
<br />
<b>#5 My Leadership Team Rocks</b><br />
Ok, so you might say "well you would say this because some of your leaders will read your blog." Regardless, it is true. I have never been as challenged by my leaders to be bold, make quick decisions, lead, allow no excuses to paralyze us as I have been here at PayPal.<br />
<br />
I can't speak for the past at PayPal. And we certainly are not where we need to be yet. But I can assure you that we are unified on empowering an army of change agents. And we have the right vision, the right story that defines where we will be.<br />
<br />
<b>We are Hiring</b><br />
How about it? Want to join me in this grand adventure? I am on the lookout for talented user interface engineers. I need strong developers. Strong computer science skills. JavaScript rock stars. HTML5/CSS3 aficionados. If you have the chops contact me at billwscott over on gmail.<br />
<br />
<br />
<br />
<br />Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com2tag:blogger.com,1999:blog-11599526.post-74258566712222437112011-11-20T15:21:00.001-08:002011-11-20T15:56:59.435-08:00Shared Understanding Resource: Head First HTML5I am constantly talking about creating a "<a href="http://52weeksofux.com/post/2403607066/building-a-shared-understanding">shared understanding</a>" between design and engineering. And I love it when I find a book or resource that creates more bridges across these two worlds.<br />
<br />
<a href="https://twitter.com/#!/erictfree">Eric Freeman</a> & <a href="https://twitter.com/#!/elisabethrobson">Elisabeth Robson</a> have done the community a great favor with the addition of <a href="http://shop.oreilly.com/product/0636920010906.do">Head First HTML5 Programming</a>. If you are a designer or product manager or backend engineer (though as the latter you will have to get past the less serious tone you may be accustomed to) then this book is for you.<br />
<br />
As with all of the books in the Head First series they aren't meant for mid to advanced level developers. Where they shine is as a first introduction to a set of technologies. In this case they do an delightful job of introducing the HTML5 family of technologies.<br /><br />
The first thing to understand is what they mean by "HTML5". They aren't restricting the discussion to just HTML5 markup and the technologies that are strictly part of the current HTML5 spec. Instead they take a looser, more popular perspective on what HTML5 is. I actually like this approach. I like it because it is just too confusing to constantly explain to the public what is in and what is out of the spec at any given time. And I really need an easy way to talk about this collection of technologies. So using the term "HTML5" in this sense becomes more expressive. I don't even mind when CSS3 gets lumped into the bucket. I know call me a heretic.<br />
<br />
Ok, back to the review...<br />
<br />
The book ends up covering a lot more than I expected: markup (of course), JavaScript, DOM manipulation, geo-location (complete with a google maps/geo-location integration), AJAX, Canvas, Video, web storage and web workers. There is also some discussion of CSS3 and styling and selection.<br />
<br />
Overall, I really liked the examples and was pleasantly surprised at how real world they were. Another great touch was the Bullet Points section which summarized each chapter in a single page.<br />
<br />
Its really hard to write a book for the complete newbie yet remain technically accurate. The authors have done this and more. Let the shared understanding grow. <b>Highly recommended</b>.<br />
<br />
<i>Full Disclosure: I received a free copy for review. However, if I didn't like it I wouldn't have bothered to write anything. The review above would have been the same even if I had bought it.</i>Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com0tag:blogger.com,1999:blog-11599526.post-82576913244887768632011-10-19T21:16:00.000-07:002011-10-19T21:16:24.759-07:00Excited About My New Role - Sr. Director, Web Development @ PayPalElsewhere I have updated my bio to reflect my new job as head of web development for PayPal (which starts on 10/24). The 'elsewheres' being on my twitter profile, facebook profile, blogger profile, linkedin profile, etc. I also tweeted it and updated my status that I had taken this new role. However, those formats are shorter so I thought I would discuss what I am up to and why I am making this change.<br />
<br />
As many of you know, I returned to Netflix after a short stint away and have just wrapped up being back a year. Altogether I spent about 4 years at Netflix and had some wonderful experiences and especially wonderful folks that I got to work with (in particular I am partial to those who worked for me).<br />
<br />
The first stint at Netflix was a strategic role in which I had the opportunity to define & build the UI engineering organization there as well as guide the architecture and build the talent. I also helped build out the UX design team and especially worked closely with that team. The second stint had some of the same elements as I focused on the ECommerce side and we built out a UI architecture using <a href="http://mustache.github.com/">Mustache</a> (the <a href="https://github.com/spullara/mustache.java">java version</a> -- thanks <a href="http://www.javarants.com/">Sam Pullara</a>!). And as a team we rewrote the whole code base back to front, internationalized and localized it in just 7-8 months and launched in 43 more countries. In addition, we were able to simplify the device UI code base to handle multiple devices, resolutions and input handling. Even with those good things it was one of the more exhausting experiences I have had in my career. And once the dust settle I quickly realized the role was becoming way too tactical and too focused on one aspect of a single product.<br />
<br />
So I popped my head up and decided I would start looking for an opportunity (thinking I would make the move in 6 months or so). But within just a few days this awesome opportunity at PayPal showed up.<br />
<br />
<b>Why PayPal?</b><br />
PayPal continues to be the world leader in online payment. And with the formation of <a href="https://www.x.com/">x.commerce</a> the position of PayPal as the payment provider and more importantly the <a href="https://www.x.com/developers/x.commerce/products/paypal-access">payment identity</a> for online transactions around the globe, I could see the huge upside to the business. Couple this with what is to come in offline payments (POS, mobile, tablet, etc.) and the huge resources of eBay as the parent company and I was sold on PayPal as the company.<br />
<br />
<b>Why this role?</b><br />
While PayPal has all this goodness, they felt strongly that one thing they needed was a strong Web UI leader who could help define a nimble, open source based UI architecture, who could help bring design & engineering together, who could help simplify the process of getting design to life and who could attract top UI talent to the organization. That is a tall order. But as we talked about this role and my background we felt it was the right match. And just 2 weeks after the initial conversations I accepted the role as Sr. Director of Web Development.<br />
<br />
Looking back at my career the most successful & enjoyable times for me have been when I am in the role of influencer or change agent. Back at Sabre I was able to found the common web & desktop UI engineering teams as well as the UX design team and influence many of the core products. At Yahoo! as evangelist I was able to influence dozens of their sites and evangelize great engineering & design internally & externally. And as I mentioned, the same for my time at Netflix. So this seems the most logical next step for me.<br />
<br />
I will have a lot to learn as I join PayPal. There are many people there I look forward to learning from. I certainly don't have all the answers, but I do have the confidence that I will be able to join forces with other smart people there and at the right time know what is the next best step to take. It's a little like improv. I can tell you a lot of stuff I might try, but until I get there and get a deeper understanding of the needs & the assets I won't know what will make the most sense to try.<br />
<br />
<b>It takes a Team</b><br />
If you work at PayPal, be sure to reach out to me and let me know who you are. I need others like you in order to make the right impact. Or if you don't work there but would like to join me somehow in this opportunity please reach out also. And while I don't know yet what my open positions will be, don't hesitate to reach out in an exploratory manner.<br />
<br />
<b>Contact Me</b><br />
You can always find me at billwscott on all social networks and on gmail. Look forward to talking with as each of you that reach out to me.<br />
<br />Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com8tag:blogger.com,1999:blog-11599526.post-46183278561908879912011-10-06T11:22:00.000-07:002011-10-06T11:43:39.952-07:00Join Me in Boston for User Interface 16!I am excited to be part of UI Engineering's upcoming <a href="http://www.uie.com/events/uiconf/2011/">User Interface 16 Conference</a> in Boston. The full event is November 7-9th and will be held at the beautiful <a href="http://www.uie.com/events/uiconf/2011/venue/">Renaissance Boston Waterfront Hotel</a>.<br />
<br />
I will be giving a <a href="http://www.uie.com/events/uiconf/2011/workshops/bill-scott/">full day workshop</a> Monday, November 7, on "<a href="http://www.uie.com/events/uiconf/2011/workshops/bill-scott/">Designing Rich Interactive Experiences</a>." You can check out & signup for my workshop <a href="http://www.uie.com/events/uiconf/2011/register/">here</a>.<br />
<br />
Additionally on <a href="http://www.uie.com/events/uiconf/2011/agenda/#tuesday">Tuesday, November 8</a>, I will be presenting a talk on "<a href="http://www.uie.com/events/uiconf/2011/agenda/#BillScott">Designing for Mice & Men</a>" which focuses on experiences across mobile, tablet, TV & Web.<br />
<br />
There are a host of <a href="http://www.uie.com/events/uiconf/2011/agenda/">other great speakers</a> as well: Kevin Hoffman, Luke Wroblewski, Jared Spool, Hagan, Brandon Schauer, Kim Goodwin, Steve Portigal, Stephanie (Sullivan) Rewis and Greg Rewis.<br />
<br />
<a href="http://www.uie.com/events/uiconf/2011/register/">Join us</a> in Boston for an awesome lineup of topics & speakers.Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com0tag:blogger.com,1999:blog-11599526.post-14222645329261461082011-08-22T13:45:00.000-07:002011-08-22T13:51:41.816-07:00Looking for a User Interface Engineer for our Account UI teamHow about it? Want to work at Netflix? If you have strong user interface engineering skills coupled with solid computer science skills then my latest opening may be just the fit for you.<div>
<br /></div><div>The ECommerce Team at Netflix is responsible for all member account & profile experiences (including help). It's time to grow the team so I am looking for a talented, passionate engineer who will take on the following responsibilities:</div><div><ul><li>In concert with design and product management, deliver multiple simultaneous experiences in an A/B test environment</li><li>Develop the full stack from data marshaling in Java, to JSP, Mustache, HTML5, CSS and JavaScript to create these experiences</li><li>Work in close concert with backend web development team, be able to understand the impact on the whole product, and suggest and plan the best solution with backend to UI in mind</li><li>Take full ownership of a feature set from first discussion to bringing it live on the site</li><li>Turn requirements into simple, elegant, optimal solutions that balance the needs of the health of the technology stack but always guided by our business needs</li></ul><div>If you are interested or know someone interested, please email at bscott -- over at netflix dot com.</div></div><div>
<br /></div><div>Full description here (or apply here):</div><div><a href="http://www.netflix.com/Jobs?id=7563&jvi=oN5TVfwq">Senior User Interface Engineer - ECommerce</a></div><div><span class="Apple-style-span"><span class="Apple-style-span" style="font-size: 12px; line-height: 16px; ">
<br /></span></span></div>Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com0tag:blogger.com,1999:blog-11599526.post-64197255687668977832010-12-02T09:46:00.000-08:002010-12-02T09:47:57.911-08:00Check out the new Netflix Tech BlogLots of interesting technical stuff happening to get movies to your living room, mobile devices & browser. You can read about the technical side at <a href="http://techblog.netflix.com/2010/12/netflix-tech-blog.html">techblog.netflix.com</a>.Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com0tag:blogger.com,1999:blog-11599526.post-11786107014801094992010-11-15T09:31:00.000-08:002010-11-15T09:39:33.749-08:00New - Social Systems Engineering Team at Netflix<a href="http://howsoftwareisbuilt.com/2009/08/28/interview-with-michael-hart-director-of-engineering-at-netflix/">Michael Hart</a> is now leading a new Social Systems Engineering Team here at Netflix. He has a <a href="http://jobs.netflix.com/DetailFlix.asp?jobid=flix4362">couple of immediate openings</a>. Here is a partial from the job description:<div><div><i><blockquote>Netflix is the leading online movie and TV service, reaching almost 17 million households in the US and Canada and growing over 50% in the last year. Many of the other fastest growing companies today have achieved that growth in part by leveraging Facebook's social graph. As a founding member of the new Social Systems engineering team at Netflix, you'll be challenged with helping us leverage the social graph to propel Netflix's growth even higher.</blockquote></i></div></div><div>I am really excited to see what Michael and his team will accomplish with this new dimension of the Netflix experience. Wouldn't it be a blast to be a part of this team? If you are interested <a href="http://jobs.netflix.com/DetailFlix.asp?jobid=flix4362">apply for the job here</a>.</div><div><br /></div>Bill Scotthttp://www.blogger.com/profile/12024727845077253669noreply@blogger.com