As a consultant, whether you're acting as a PM or otherwise part of the project team, it's your job to assure scope and effort are monitored. It's not always the responsibility of the project lead, or PM, to assure that tasks' hours are kept in check. Everyone contributes, and must participate in the regular evaluation of the spent budget and work remaining. The PM is absolutely accountable for the spend, but the project team is responsible for the spend.
In a public sector, the PM has to use extra caution because typically these funds are closely monitored and controlled by governing bodies. It's not always easy to generate a change order and there must be thoughtful audit trails applied to assure that these forks in the road can be addressed. It's not the fault of the consultant that change occurs, nor is it the fault of the customer. These things happen, and must be jointly observed, evaluated, and defined before such a path is selected.
In my experiences, the safest and cleanest way to assure minimal ambiguity around such scope changes is by way of a very complete and well constructed statement of work (SOW). You cannot assume that scope will work itself out in the project charter or by way of evaluation of each and every change instance; there must be clear boundaries applied at the contractual level to assure you have the means to keep a project's spend minimal, or at best "whole".
As I've preached for years, a good PM is also a very good legal writer. Whether he/she writes the SOW or works with account management to write the SOW, the PM cannot be absent of involvement here. After all, who's going to use this document? You are, the PM!! If I am going to asked to manage a project, I sure better be working closely with Sales/Acct Mgt to assure that it gets crafted in such a manner that I can definitively work within it to manage the project...
For instance, if we say that there will be requirements gathered from the user population by visiting several sites and that these requirements will define the design, and thereby implementation of such a solution to support all of those requirements inside the body of one SOW and around one cost structure, we're opening ourselves up for unplanned work, and most likely effort that exceeds estimates when dealing with a fixed price gig.
Working the customer to help them understand the project's structure, selecting a path to enlightenment, and assuring that there is sound evidence of this path, expectations, and boundaries living within the SOW, sounds like extra work. But, it will only make both parties satisfied because it will be clear that there is a vast unknown of requirements to gather. Out of these requirements, the customer can prioritize and select those requirements to go after and produce a design to support them. With a solid design and architecture, then the team can go about building it and the project spend has a far better probability of staying whole.
A love affair with software development using the project management discipline, sharing tools and topics that help advance professional and personal growth. Audience: Anyone seeking better insight into themselves. Focus areas: user interface design, usability design, information architecture, business analysis, quality, and development activities. Technologies and tools: .Net, Expression Blend/Designer, 2010 tools: Visual Studio, Team Foundation Server, SharePoint, Office, Project, etc.
2010-12-20
2010-12-17
SOA what?? Part I
Been a while since posting to my blog...whow knows what SOA is? I can tell you that's it's a powerful set of methodologies that serve many benefits. Most obvious is the way in which information can be exposed and avaialble for consumption, consumption far beyond just storing data, but building solutions that integrate with this data sharing concept in the cloud.
Exchanging data, or the concept of the data exchange, is a very cool way of making your data available; in turn, a consumer of this data can do something useful (write an app that uses this data to solve a business imperative, for example) with it or simply be a subscriber of it.
The interesting dilemma for an organization today is not in the creation of such a data exchange - this is the rather simple part of hte equation. We can stand up data exchanges all day long that expose information - albeit, there is a tremendous need for clean data, so the backend must be able to support this or some large data scrubbing effort is probably needed. The difficult part is writing or extending a client solution to consume this data and do something useful with it - the "work". Understanding business processes in that client organization and how this newly exposed information can be used to solve them requires time and money. It's ever apparent that most organizations simply do not have existing records, documentation, goals, and needs well documented to understand where in the current processes these calls to the data exchanges could/should be made in order to solve the business problem. This is where the bulk of the effort and work lies, and this is where a skilled team is needed to consult and help strategize the how/where/when/why's of hooking up to a data exchange. This requires business analysis, domain expertise, data architects, and tight inclusion of those stakeholders exposing the data to the exchange and those stakeholders expecting to utilize this data to do work.
Moreover, think of the complexities involved. We need to determine the granularity of such an exchange - to what degree is a business capability exposed - is it super granular such that the message interface (xml) is very narrow allowing getting minute pieces of that data structure (age, birthdate, last violation, etc) or do we provide an aggregated exchange, but also bloat the size of the message interface. Here, we could establish a capability to Add a Debt Collection. This could involve associating a person, a debt type, a payment type, a debt amount, etc.
Summary for now...a data exchange is a good exmample of the SOA software strategy, but it requires much work during planning of the data to be exchanged, but most importantly, requires tight integration with consumers of such data structures and even more so a deep understanding of how current or future solutions need to be written to successfully consume these exchanges - pushing work out to the cloud, while also utilizing this data to solve business problems.
...so what does SOA really mean? More on that later...still unsure what the acronym stands for? Ok, it means Service Oriented Architecture. Come back for more discussion.
Exchanging data, or the concept of the data exchange, is a very cool way of making your data available; in turn, a consumer of this data can do something useful (write an app that uses this data to solve a business imperative, for example) with it or simply be a subscriber of it.
The interesting dilemma for an organization today is not in the creation of such a data exchange - this is the rather simple part of hte equation. We can stand up data exchanges all day long that expose information - albeit, there is a tremendous need for clean data, so the backend must be able to support this or some large data scrubbing effort is probably needed. The difficult part is writing or extending a client solution to consume this data and do something useful with it - the "work". Understanding business processes in that client organization and how this newly exposed information can be used to solve them requires time and money. It's ever apparent that most organizations simply do not have existing records, documentation, goals, and needs well documented to understand where in the current processes these calls to the data exchanges could/should be made in order to solve the business problem. This is where the bulk of the effort and work lies, and this is where a skilled team is needed to consult and help strategize the how/where/when/why's of hooking up to a data exchange. This requires business analysis, domain expertise, data architects, and tight inclusion of those stakeholders exposing the data to the exchange and those stakeholders expecting to utilize this data to do work.
Moreover, think of the complexities involved. We need to determine the granularity of such an exchange - to what degree is a business capability exposed - is it super granular such that the message interface (xml) is very narrow allowing getting minute pieces of that data structure (age, birthdate, last violation, etc) or do we provide an aggregated exchange, but also bloat the size of the message interface. Here, we could establish a capability to Add a Debt Collection. This could involve associating a person, a debt type, a payment type, a debt amount, etc.
Summary for now...a data exchange is a good exmample of the SOA software strategy, but it requires much work during planning of the data to be exchanged, but most importantly, requires tight integration with consumers of such data structures and even more so a deep understanding of how current or future solutions need to be written to successfully consume these exchanges - pushing work out to the cloud, while also utilizing this data to solve business problems.
...so what does SOA really mean? More on that later...still unsure what the acronym stands for? Ok, it means Service Oriented Architecture. Come back for more discussion.
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;-).
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?
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;
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;
- 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.
- 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!
- 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.
- 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/
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.
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.
Subscribe to:
Comments (Atom)