Thursday, April 30, 2009

Roots of Agile Methodology

Bit of discussion at lunch today about agile methodology and roots.

IMHO, these 2 links are what I consider to be main roots of the modern agile movement:

If you are looking further, this paper looks pretty exhaustive with more than 50 year history of agile:

The paper refers to a very approachable book that compares / contrast different agile methodology. Worth a gander too:
  • Larman C. (2004). Agile and Iterative Development: A Manager's Guide. C. Alistair and H. Jim, Pearson Education, Inc.

Wednesday, March 25, 2009

10 Principles that Contribute to a Googley User Experience

Great description of guiding principles behind a Google User Experience. http://www.google.com/corporate/ux.html

"The Google User Experience team aims to create designs that are useful, fast, simple, engaging, innovative, universal, profitable, beautiful, trustworthy, and personable. Achieving a harmonious balance of these ten principles is a constant challenge. A product that gets the balance right is "Googley" – and will satisfy and delight people all over the world."

Their aspiration to follow the aesthetics / usability balance is really apparent.

Monday, January 5, 2009

UI Architect at McKesson/RelayHealth

As of January 5th 2009, I'm a UI Architect with a New Products group at McKesson/RelayHealth. My goal there is to help the group build up competency in User Experience as part of the product life cycle process. My particular "superpower" at RH is guiding our User Interface direction and developing the technical architectures to support this direction. I also have a knack for being able to 'talk UI' to users, psychologists, product managers, management, and developers -- I'm good at translating UI goals and concerns among these stakeholders. I sometime run into people that think User Experience means 'making it look pretty' and I have the task of educating them otherwise.

Monday, November 17, 2008

Patterns

It dawned on me that patterns seem to be a core "go to" of mine, but I've never stepped back and listed the main places I've either been or currently hang out. This list is more of a bookmark list for me, but feel free to browse and let me know if these are useful or you have any others...

GUI Patterns
Jennifer Tidwell's Design Interfaces (aka Time-Tripper for us older folks) http://designinginterfaces.com/ One of the first folks that took idea of design patterns and applied to UI's (over a decade ago). Original site eventually became her book.
UI Patterns.com Library - http://ui-patterns.com/
Welie Patterns - http://www.welie.com/patterns/ Was #2 on my goto list for a long time
Interaction Patterns - http://www.cs.helsinki.fi/u/salaakso/patterns/
Yahoo Design Pattern Library - http://developer.yahoo.com/ypatterns/ Growing, fresh, active community is building around this site.

General Software and Patterns Thinking
Gamma, et al (Elements of Reusable OO Software) - http://www.tml.tkk.fi/~pnr/GoF-models/html/ (just the diagrams, but if you throw a rock in your cube farm, you'll probably hit someone that has the book)
J2EE Patterns Catalog - http://java.sun.com/blueprints/patterns/catalog.html
and browsable diagram http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html
Martin Fowler GUI Architectures: http://martinfowler.com/eaaDev/uiArchs.html
Martin Fowler Enterprise Patterns: http://martinfowler.com/eaaDev/

Monday, September 29, 2008

Flex in a week update

Adobe just added Day 4 to their Flex in a Week training. This day focuses on "Adding Visual Appeal." http://www.adobe.com/devnet/flex/videotraining/

October Update: All 5 days are out there now.... They added Architecture and Advanced Topics... http://www.adobe.com/devnet/flex/videotraining/

Tuesday, September 9, 2008

Stewart Brand's How Buildings Learn Videos

Picked these up from a discussion over on the Agile Usability group....

Stewart Brand's How Building Learn Videos (1997)

These videos are based on Stewart Brand's book of the same name. (Publisher's Weekly says about the book: From Publishers Weekly
All buildings are forced to adapt over time because of physical deterioration, changing surroundings and the life within--yet very few buildings adapt gracefully, according to Brand. Houses, he notes, respond to families' tastes, ideas, annoyance and growth; and institutional buildings change with expensive reluctance and delay; while commercial structures have to adapt quickly because of intense competitive pressures. Creator of The Whole Earth Catalog and founder of CoEvolution Quarterly (now Whole Earth Review ), Brand splices a conversational text with hundreds of extensively captioned photographs and drawings juxtaposing buildings that age well with those that age poorly. He buttresses his critique with insights gleaned from facilities managers, planners, preservationists, building historians and futurists. This informative, innovative handbook sets forth a strategy for constructing adaptive buildings that incorporates a conservationist approach to design, use of traditional materials, attention to local vernacular styles and budgeting to allow for continuous adjustment and maintenance.
)

As you watch the videos, imagine we are talking about usable and adaptive software instead of buildings....

Part 1: Flow



Part 2: The Low Road



Part 3: Built for Change



Part 4: Unreal Estate



Part 5: The Romance of Maintenance



Part 6: Shearing Layers


Wednesday, August 6, 2008

Flex in a Week

They are not done with it yet (on Day 3 right now), but Adobe is offering a series of training videos called Flex in a Week.

Flex Notebook: Application Development Phases

Start of a semi-regular series called Flex Notebook which capture my thoughts on Flex as I distill the various Adobe-provided materials and user guides for myself.

Application Development Phases

Design. The folks at Adobe seem to be big on Design Patterns for Flex and ActionScript. The KingDaddy pattern that they push is the MVC - Model/View/Controller pattern. I'm not going to say too much about patterns except: 1) As a developer, you need to understand them so you can communicate with folks. The MVC pattern is something you should definitely take on as a task to understand today if you don't.

For the seasoned web guys, I want to make this note: Don't treat Flex as simply a V part in your architecture and feel that since it is a View you don't need to architect/design it. In fact, dig into most of the sample Flex apps and you will notice that the cool backend you are so interested in is reduced to a simple datasource in the minds of the Flex app -- a lot of MVC is happening inside the Flex app. Keep a open mind and consider that tiered MVC happens all over the place.

If you want a good book on design patterns for Flex/ActionScript, consider Lott and Patterson's Advanced ActionScript3 with Design Patterns.

Design also includes how you plan on reusing code for the future, how you are going to interact with environments around you (local and backend), how you components are structured and packaged (embedding assets, sharable libraries). All of this can be sketched out on a napkin or two or three. Get together with a senior mentor type person and have them show you some of their napkins.

Configure. Configuration at this point means looking at the environmental pieces of your design and asking if you can actually make this work in a distributed environment. Are there firewalls? Cross-domain data access? Can you configure the servers to allow cross domain access? Can you serve up the assets you need? For example, I tried using Flex inside a portlet being served up by WebSphere portal. Configuration research was a big piece making sure that we could actually deliver .swf files in portlets and extend the portal security into Flex. You are trying to reduce the risk of building something that works fine on your desktop, but can't be deployed into the real world.

Build. Compile-Debug-Test. Flex Builder does a lot of the heavy lifting for you, a little too much. Do you know the difference between compc and mxmlc? If you are a Flex Builder user, it may be worth your time to sidestep that tool and try to build your project by hand using the SDK command line tools. You don't have to do this every time, but you should have experience in doing it at least once. This will come in handy when you get to the point of trying to put Flex into an automated build process.

Flex and Air provide a variety of visual and command line debugging tools. We'll talk about this in greater detail later in the series. One thing to consider is the use of unit testing tools in your development process. We'll discuss later, but in the meantime, check out FlexUnit, a unit testing framework for Flex and ActionScript apps. It comes with a graphical runner as well.

Deploy. General considerations here: 1) Packaging. Do you put everything into one SWF, or do you chop up into pieces and load when needed. Embedding assets vs load on demand, Runtime Shared Libraries, and initial data loading are considerations. 2) Caching. Understand and control both server side and client side caching. 3) Wrapping Flex apps and placing them into web pages. Flex Builder can do automatically, or you can create a wrapper by hand.

Secure. The Flash Player provides a sandbox model of security and provides SSL communication with the backend. Flash does allow writing and reading from the local drives via a mechanism called SharedObjects. Like cookies, they are specific and secured to a specific domain. More on security in the next few weeks.

Summary. This was a fairly brief introduction into building and deploying Flex applications. In the upcoming weeks, we'll touch upon these topics in detail. Next Time: Flex Application Structure.

Thursday, July 10, 2008

Browsershots.org

Cory sends us this link: www.browsershots.org.

From their website:

What is Browsershots?

Browsershots makes screenshots of your web design in different browsers. It is a free open-source online service created by Johann C. Rocholl. When you submit your web address, it will be added to the job queue. A number of distributed computers will open your website in their browser. Then they will make screenshots and upload them to the central server here.

-----------

Note that the resulting Browsershots screen shots are open for all to see, so don't submit anything you want to keep under wraps. They can give you priority queue status for $15 month, not sure if there is any way to pay to keep your screens private.



Tuesday, July 1, 2008

Flex/Flash .SWF files now searchable

One advantage that HTML pages have over RIAs is that HTML content is readable and indexable by search engines, while content in RIAs is typically not exposed -- it's hidden from search engine crawlers and indexing systems. This inability to crawl and index RIA content is considered to be somewhat of a hindrance in the adoption of RIA technology.

That's changing.

Yesterday, Adobe announced that they are collaborating with Google and Yahoo! to roll the Adobe Flash player technology into the their respective search systems. This would allow the search engines to read and run .swf files, in turn allowing allow them to dynamically retrieve (crawl) and index information accessed via these .swf files.

According to the press release, Google has already begun to roll this ability out. Yahoo! is not far behind.