Pages

2009-08-06

Designer / Developer workflow

So, I wanted to take a fresh look in the community again to see what others are doing in this space. Specific to the .Net 3+ stack, we've been using various workflows for over five years now, but I'm always curious to get fresh insights as to what works and doesn't work. Visual Studio 2008 and Expression Blend 3 afford some luxuries to solve this dilemma to some degree, but truly doesn't provide a seamless mix of tools and support that fixes this in all cases - let's face it, resources have their own constraints, and we'll have to live with that. And frankly, this is where the breadth of an org's resource pool (when properly distributed with the right roles) really shines. So, I don't want to convey a forcing function to standardize "proper" workflow for both Designers, Developers, and Integrators (if you don't know the meaning of the latter role, at least our meaning, please read Nathan's article on the Integrator here as well as his very straight forward article on integration therero found here) - aka, Deselopers, Devigners.

In my Web travels this morning, I found a good article from Tim Aidlin @ MixOnline called "How we work (and sometimes skip some steps)". From this read, I have one key takaway that really sums up my feelings. "It depends - wireframes are great tools when used properly". And here's a two-fold statement on this behalf. As a consulting org and a project manager, we don't always get the most ideal resources for the job. We make do with who we get, and cater the project around their strengths to deliver results and good success for the client. Secondly, in terms of necessities for taking the design directly into production, like HTML, CSS (or more specifically for us, as basic XAML) assets really depends on what we're trying to solve for the problem at hand. Now, I'm not trying to say that we should toss any old resource at the problem, and getter' done one way or the other:-). What I am suggesting though is that we need to be very critical about how and why we're bringing on a particular resource for the job - an Information Architect from the creative team, vs. an Interactions Designer from the creative team, vs. a Visual Designer from the creative team, vs. a resource with some mix of Integration and Creative skill sets.

Hopefully, I've still got your attention - I do, right?? If we're trying to comprehend a client's issues, we must first have a solid problem statement that defines what our client is trying to solve and to what degree, and craft this immediately into the Opportunity phase of this project. From here, we should be able to deduce which "role type" we need to bring in to help. For instance, if we think taking use cases w/user personas and generating some high level wireframes to solve these needs is vital, you'd better be asking yourself, "...how necessary is this? Will our client truly need a redesign to its existing solutions, has visual style already been well defined and we shouldn't mess with that tier, is layout and general interface design important at this point or already approved elsewhere, can I break ground with my new technology stack, did my client see something cool at some conference and they say, I want. Did you ask, why?" Likewise, if I bring in an Interactions Designer to exploit my target platform by way of motion tests and wireframes on the whiteboard, am I truly doing right by my project because of the list of questions above?

Wireframes should be used when appropriate for the situation. Conversely, despite my remarks here, I am a firm believer that the Information Architect (or he who creates wireframes in your org) needs to set in motion, by way of an agnostic nature, the required flows through the proposed solution. To say that wireframing, in our line of work, inside of Blend or SketchFlow is the Holy Grail is a falsity - I'm on the wagon that says down and dirty whiteboarding and team collaboration is very important. We don't skip wireframes, for the sake of expeditiousness, and take the designs directly into comps using your design tool of choice: Photoshop, Illustrator, Expression Design. I don't want to agrue over which method is best; there isn't one IMO. Introducing visual style, interface, and UX into the mix should happen in parallel with the wireframes. I regress to my earlier statement about using the resources you have on your project...unless truly junior, each resource has its own way of conveying wireframes and working with the creative team to stitch them into interface comps, perhaps even prototyping interactions in 3rd party utilities, or taking design directly into Blend.

Furthermore, have you really decided which workflow method you'll use for your project at hand? So, back to the title of my post...how does all of this affect the developer who needs to be tightly coupled as well? Perhaps we can we take the project from wireframes directly into Blend if we've got a resource capable of spilling out the app's framework mostly in XAML. Next, we introduce the Developer/Architect type build the custom controls necessary to support the design. In tandem with this, the Interactions Designer gets a textual handoff from the wireframer that describes the intended interactions; this resource gets to work building these. Then, the Integrator and the Developer integrates the design into the solution...What about the converse to this (no, not, the "low top, All Stars" you're wearing)? If the solution is going to mimick an existing interface and interactions, why not consider letting the Developer build the core logic, functionality, and custom controls needed to support the "expected" vision in code - doing so with sound architecture and integration in mind along with lookless controls such that the creative team can provide a design to skin it? From here, the Integrator can stitch together the design and polish up the visuals where needed with the creative team? This is a risky option in some cases, and yes, can somewhat distance the creativeness that your team can bring. But if nothing else, I've learned one thing over the years as a consultant...we're not building the solution for ourselves - don't treat the project like a household pet. To reiterate, provide good user experiences and user interfaces commensurate with what the client wants - not your secret fancy for dancy bears and 3D rotations at every corner.

Still, as I've stated in several older posts over the years, as soon as we master this Designer/Developer workflow, I'll let you know;-).

2009-07-16

RFP Respons[iveness]

Nothing brings resources together closer than an RFP Response team. Team members are hounded, questioned, examined, challenged, corrected, but most of all praised for a job well done. In the end, a solid RFP Response shows critical thinking and experience in the craft. It's not easy, it's not even always fun, but two-thirds of the way through one of these, I get jazzed and the puzzle seems to fall in place. Quarrels and sleeplessness abound, it is a part time job for most of us, but we need to make the most of our time and impress our customers.

Still learning, but here are some takeaways to share?
  • Force engineering and integration teams to work very closely together in the estimation - Siamese would be best :-). Challenge the level of innovation, the complexity of design, and the overall spirit of the completed solution since if these two teams get it wrong, we're doing something w/o a paddle.
  • Rely on SME's to assist in the estimation, but don't assume and request the entire org get involved. It's too expensive, and context switching for resources makes it worse. Define an RFP Reponse Team (RRP) and don't alter resources since learning curve is usually very high.
  • Just because there's solid RFP details doesn't and shouldn't limit the need for scrutinizing everything - RFP owners expect to answer questions as long as they're posted before the deadline. Put 'em to work!
  • Run a tight ship as a PM and consider this a project - a far more critical project than others perhaps since a) you're sucking bandwdith from the org, and b) a painful, incomplete response can lead to dissatsifaction quickly.

2009-07-10

Other people's code

A good read from Thomas Lewis from Mix Online.

http://www.visitmix.com/Opinions/Why-Does-Your-Code-or-Design-Suck

I love the drive-by tweet metaphor from the article...it's so true. And not necessarily just from the design side; it's apparent in engineering, too. From a project management side, this can be quite harmful to a project since the shared goals of delivering on time and making a happy customer can bring unneeded chaos for the project and its team members. My way or the highway just can't cut it in all situations. This is especially true if you're bringing on new team mebers into a project. You can't break down the walls and start over - there's simply no funds for this scenario.

As a PM, create positive outcomes for the project by preventing OPC-syndrome by way of a few must-have's;
  1. Brief the onboarding team members as to why they've been assigned the project, what are their goals, their mission, and what framework do they need to work within to assure project success. This is not always "perfect" success, but we have to ship software, right, and budget doesn't grow on trees, especially in a consulting org.
  2. Bring the correct resources into the project to perform the work. Tasking an Integrator to define a better UX metaphor will only disenchant the creative team - that's their job!
  3. A senior developer needs to establish and lay down the application's architecture - don't expect devs to be happy if they're being tasked to super clue fixtures to a solution. On the flipside, we can't afford to overarchitect some fixtures for the sake of ego - ego my Eggo.
  4. Critique and feedback is welcome from within, just be sure it's well organized and not flung hapzaxzzardly to the team - the peanut gallery can get ugly. Put a forcing function to funnel feedback through someone so the trivial pieces are diverted from the team. And raraly in a UI/UX driven project is there sufficient time to sit back and iterate and iterate on the deliverable. So, there may be a week left till final delivery when the completed experience is put together. Encourage the team, and take the flaming arrows with your trusty shield. Conversely, don't ignore internal feedback altogether. That's not my suggestion - working peer relationships only strengthen through listening and learning.

Cool Silverlight stuff

This Sobees social networking client ported to Silverlight 3 - don't forget the offline experience avaialble from the context menu. So fast and clean. Nice job, guys.
http://www.sobees.com/

And this beautiful nugget in the banner area front and center is built atop Silverlight 3. Parallax panel to the rescue with smooth streaming media and a slick flip animation sequence.
http://www.microsoft.com/silverlight/

2009-05-14

A good article on why to wireframe for your project

Good read from Thomas on visitmix.

http://www.visitmix.com/Opinions/Should-We-Kill-Wireframing#200905140354378

For Rich Internet and desktop applications, rectangles, buttons, textboxes, and breadcrumbs simply don't do it for wireframes. They serve to ground the logic flow of an experience, but for this low-degree of effort, it's not reasonable to assume that your client will understand or even what you've come up with here. There is truly a balance between visually sound and agile prototyping. To make a bold statement on a unique UX for a particular scenario will win over a client's trust in your abilities. Still, we can't expect that every scenario will have that special user experience or we'd all be broke, right? We need to wireframe what is absolutely going to be a pain point for the client. Sketch quickly, prototype the design collaboratively, and best of all, if the client is unable to accept how an interaction will take place or how that flow of information will take place, lean on an animator to stitch together a few keyframes to illustrate the pitch. Make it quick and dirty, but most importantly, pitch the right UX metaphor for the interaction. Sell the wireframes on the key moments, not by designing a black/white web site. No matter how cool Sketchflow and other tools sound, there's no substitute for back of the napkin, whiteboarding. Still, if you pitch a wireframe, you better be sure the client knows if it's been blessed from engineering or not.

2009-05-13

Good talent can actually be had

IdentityMine is truly on the cusp of greatness. Some of the finest visual and creative designers I've had the pleasure to work with are noodling forward on concepts and ideas that are both very interesting with good business sense behind them. I love my job.

2009-03-23

Planning for Microsoft Surface

Rarely in the past has software development hit so many avenues. Microsoft Surface provides methods of reaching users previously unexplored. There's always something to be said about good project planning, but in this realm, you've got to nail down not only teh basic logic of the app, but also the visual feedback presented to the user as well as audible feedback - it doesn't make sense not to have sound employed. Introduce loads of risk into the solution if you don't have a good backup plan for just about every UI element when schedule is compressed. Showing off technologies like this requires patience and a team willing to take quick dives into feasbility and the PM knowing when success is possible or diversion if needed. There are accept states, deny states, active states, click states, hover states, drag states; there are gestures embedded within controls that require special architecture/finesse to construct.

And all of this needs to lie neatly into a package of work items with little specificity between Dev and Integration. These are good times and workflows only get better as a team gets more experienced.