<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SAP Integration Experts - DataXstream &#187; SAP Functional</title>
	<atom:link href="http://www.dataxstream.com/category/sap-consultants-blog/sap-functional/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dataxstream.com</link>
	<description>SAP Certified Consultants</description>
	<lastBuildDate>Sat, 24 Jul 2010 11:29:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>SAP Project Management Consulting Clichés</title>
		<link>http://www.dataxstream.com/2010/07/sap-project-management-consulting-cliches/</link>
		<comments>http://www.dataxstream.com/2010/07/sap-project-management-consulting-cliches/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 13:45:47 +0000</pubDate>
		<dc:creator>Tim Cooper</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SAP Functional]]></category>
		<category><![CDATA[SAP Project Management]]></category>
		<category><![CDATA[SAP SolMan Blog]]></category>
		<category><![CDATA[SAP Strategy]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[SAP FICO]]></category>
		<category><![CDATA[sap tips]]></category>
		<category><![CDATA[Tim Cooper]]></category>

		<guid isPermaLink="false">http://www.dataxstream.com/?p=5146</guid>
		<description><![CDATA[There’s an old saying (aren’t they all old?) that instructs you to avoid clichés like the plague.  SAP has generated its own set of overworked buzzword terminology and has an eco-viral-collective that churns out more and more each day.  I can hardly keep up with the acronyms. Over the years I’ve accumulated three favorites of [...]]]></description>
			<content:encoded><![CDATA[<p>There’s an old saying (aren’t they all old?) that instructs you to avoid clichés like the plague.  SAP has generated its own set of overworked buzzword terminology and has an eco-viral-collective that churns out more and more each day.  I can hardly keep up with the acronyms.
Over the years I’ve accumulated three favorites of my own that I’d like to share.  The aim here is not to kill off the clichés, instead it is to suggest ways to head them off before you use one and have clients rolling their eyes at you&#8211;Or at least have a quick follow up so that the cliché actually has some value.</p>
<p><span id="more-5146"></span></p>
<h2>The Infallible 2-by-2 Matrix and the Magic Quadrant</h2>
<p>A long time ago I worked for one of the big consulting firms where every interaction with the client seemed to involve a 2-by-2 matrix.  It got to the point that some of the consultants and most of the client laughed whenever one of these was pulled out.  It became a contest to create 2-by-2 matrices for everything and at one point in my life I aspired to publishing a book of 2-by-2 matrices to enable and empower everyday people to make good life decisions.  I think <a href="http://www.graphjam.com/" target="_blank">someone beat me to it</a> at least in spirit.</p>
<p>I think the world has become conditioned by 2-by-2 matrices such that the goal is to always be in the top right hand corner – the so called magic quadrant – whereas being in the bottom left hand corner shows how much progress you still have to make.  As highly paid consultant I am supposed to help you find the path from where you are to where you want to be.  The funny thing about 2-by-2 matrices is that you can make them do whatever you want to serve your needs.  Take the example of where I should go for dinner tonight:  If I plot on one axis how likely the bill will conform to the client expense policy and plot on the other axis how well the restaurant menu prices align with my per diem I get something that looks like the graphic below.</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2010/05/Blog-040-0011.png" rel="shadowbox[post-5146];player=img;"><img class="alignnone size-full wp-image-5149" title="Blog 040-001" src="http://www.dataxstream.com/wp-content/uploads/2010/05/Blog-040-0011.png" alt="" width="490" height="329" /></a></p>
<p>If I follow this chart and adopt the recommendation of the magic quadrant I’ll be eating fast food every night because it’s cheap.  Unfortunately, I’ll feel like <a href="http://en.wikipedia.org/wiki/Super_Size_Me" target="_blank">Morgan Spurlock</a> in no time.</p>
<p>If I look at this chart with a more skeptical eye the two axes are showing similar information, so the whole thing is pretty bogus.  If you are going to use a 2-by-2 matrix to make a point with a client make sure it serves a useful purpose.  One of my favorite matrices plots employee/consultant willingness against ability as shown below.</p>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2010/05/Blog-040-002.png" rel="shadowbox[post-5146];player=img;"> <img class="alignnone size-full wp-image-5150" title="Blog 040-002" src="http://www.dataxstream.com/wp-content/uploads/2010/05/Blog-040-002.png" alt="" width="463" height="345" /></a></p>
<p>In an ideal world all workers fall in the magic quadrant, i.e. are both able and willing to perform a certain task (could this be the nirvana of a low maintenance, competent and talented worker?).  The individuals who fall into other quadrants are potentially much more interesting and I would wager that not every worker falls in the same quadrant all the time.  After all, I’m not a big fan of “busy” work: I am able to do it but not very willing because I don’t value it.  But when it comes to blogging I am both willing and able (obviously!) [Ed. Note: You, sir, are a very able blogger!].  Workers who are able but unwilling present a special set of challenges for project management (you can lead a horse to water but you can’t make him drink), whereas workers who are willing but unable may be lacking skills they want to acquire.</p>
<p>The takeaway here is that there is a place for 2-by-2 matrices in conveying a message: stating an objective; starting a discussion, etc. but use them sparingly and only when it is relevant.</p>
<p>In the meantime, send me your suggestions for 2-by-2 life decision matrices and I’ll see what I can about giving you a credit in my forthcoming publication: <strong><em>Top Right Sure Beats Bottom Left</em></strong>.</p>
<h2>It Depends</h2>
<p>I don’t know anyone working on SAP projects that doesn’t laugh or roll their eyes when someone says “it depends”.  As much as I mock it, the response does have some merit.  For example, if a client asks you how SAP processes purchase orders it is difficult to give a single definitive reply and “it depends” is a great cop out.  Purchase orders: would you like an account assignment with that?  Do you want to use info records?  Do you have quota arrangements?  Do have to have requisitions for every PO?  And so on.</p>
<p>It is critical to make a rapid transition from the non-value adding “it depends” to a discussion of what matters to your client.  This is where your knowledge of their business and prior project experience come into play.  I would hope that during the project scoping and requirements gathering phases you gained enough of an understanding that you only suggest SAP processing options that are applicable to your current situation.  After all you wouldn’t discuss logistics invoice verification if you are only processing A/P invoices directly through the FI module.</p>
<h2>This Happens on Every Project</h2>
<p>This phrase shows up in various forms and the two most common variants I’ve heard are “Every project runs into this kind of thing” and “I’ve seen this before on other projects”.  If you find yourself making statements similar to these pause for a moment about how your client will perceive it.</p>
<p>I have only come across these phrases being used when a project has gone astray and has run into a crisis of some sort: testing is revealing a whole new set of requirements that weren’t captured during blueprinting; test scripts don’t have enough details; functional specifications lack detail; too many overlapping yet dependent activities, etc.</p>
<p>The best comeback I heard to &#8220;This happens on every project&#8221; was from an exasperated client who asked: &#8220;Just so I&#8217;m not surprised when it happens, what other things happen on every project that I should know about?&#8221;.  (Thank you Patrick!)</p>
<p>In short “this happens on every project” can often be traced back to an earlier failure of project management.  Sometimes the situation is unavoidable, for example, despite your guidance about not moving on to the next project phase because of incomplete deliverables your client insists on going forward because the timeline says it is time to move forward.  Sometimes, key milestones are met but the sign-off is far more conditional than it should be.  Regardless of the underlying circumstances your client probably sees you do one of two things:</p>
<ul>
<li>Reactively tell them this happens on every project and then describe how every project goes through some level of fire drill and triage to get things back on track</li>
<li>Proactively manage their expectations and make clear the potential problems the project may run into: for example, designing and developing while integration testing is never a good idea.  In this way you provide leadership, not just management, and set a course to avoid a fire drill.</li>
</ul>
<p>Typically a client does not like surprises and pro-active behavior is better than reactive.  I like to think that as a project manager I exist to prevent forest fires, not to fight them.</p>
<h2>Consulting Catchphrases Conclusions</h2>
<p>My underlying thought is that the consulting clichés have an element of truth and validity to them and you should strive to use them as a springboard to bring value to your client.  Think about where the clichés came from – usually a negative experience – and see if you can anticipate where you might feel compelled to use these catchphrases on your project and (ahem, forgive me!) avoid them like the plague.</p>
<p>Please let me know if you have any favorite overworked project phases and I’ll do a follow up posting if I get a good number of responses.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dataxstream.com/2010/07/sap-project-management-consulting-cliches/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Art of Writing an SAP Functional Specification</title>
		<link>http://www.dataxstream.com/2010/04/writing-sa-functional-spec/</link>
		<comments>http://www.dataxstream.com/2010/04/writing-sa-functional-spec/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 13:00:25 +0000</pubDate>
		<dc:creator>Mike Salvo</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SAP ABAP Blog]]></category>
		<category><![CDATA[SAP Functional]]></category>
		<category><![CDATA[SAP Technical]]></category>
		<category><![CDATA[ABAP]]></category>
		<category><![CDATA[DataXstream]]></category>
		<category><![CDATA[functional specification document]]></category>
		<category><![CDATA[Mike Salvo]]></category>
		<category><![CDATA[RICEF]]></category>
		<category><![CDATA[SAP]]></category>

		<guid isPermaLink="false">http://www.dataxstream.com/?p=4599</guid>
		<description><![CDATA[The Art of Writing a Functional Specification Document Overview I am currently working on an SAP implementation project that is just starting its realization phase.  One of my first tasks, as a member of the technical implementation team, is to review completed functional specification documents for RICEF objects.  These documents, written by functional subject matter [...]]]></description>
			<content:encoded><![CDATA[<h2 style="text-align: center;">The Art of Writing a Functional Specification Document</h2>
<h3>Overview</h3>
<p>I am currently working on an SAP implementation project that is just starting its realization phase.  One of my first tasks, as a member of the technical implementation team, is to review completed functional specification documents for RICEF objects.  These documents, written by functional subject matter experts, are supposed to detail business requirements that address gaps, and which need to be incorporated into the system being implemented. The purpose of the review is to make sure that the functional specification documents are complete, accurate, and contain the approval signatures required to move on to the technical design phase.</p>
<p><span id="more-4599"></span>
In my career, I have had the pleasure of working with some first-rate functional analysts who know how to draft an excellent functional specification document in a timely manner.  It is this type of performance that helps to move a project along in the right direction, on schedule, and within budget.  Likewise, I have had the not-so-pleasant task of working with not-so-first-rate functional analysts, who draft functional specification documents that are not clear, inaccurate, and incomplete.  The risks here are ultimately manifest as project delays and cost overruns.</p>
<h3>The Good…</h3>
<p>A really good functional specification document contains enough detailed information about the business process to enable a technical designer to use it as the foundation for drafting a complete and accurate technical design document.  The functional specification document should not only highlight the presence of a gap, but should demonstrate how the business process, accompanied by automation, will close the gap.  This document must also indicate the abnormal processing requirements – what should happen when that report or interface does not run, what are the recovery steps, how are key employees notified of the problem, etc.  The content of a functional specification document must be tuned to the flavor of the RICEF object that it is describing.  Since they perform very different tasks, a report specification document should be very much different from an interface, conversion, enhancement, or form functional specification document.  Using functional specification templates helps to insure the appropriate content for each type of RICEF object.</p>
<h3>… and the Not-So-Good.</h3>
<p>I am sometimes astonished by the sparse content that is actually offered up for review.  “We need a report” really does not tell me a whole lot about the business process that I am supposed to automate.  Nor does it even hint at the report purpose, content, layout, user interface, execution mode, authorization requirements, or error handling.  And likewise, “Build me an interface” does not even begin to describe the direction, payload content, mapping, frequency, error handling and recovery steps.  It would be so wrong for me to attempt to build a technical design on such meager functional definitions.   One of my favorite cartoons shows a development manager standing in front of rows of programmers saying “You guys start coding.  I’ll go and find out what they want”.</p>
<p>I am further astonished by:</p>
<p style="padding-left: 30px;">a)      the project managers who apply pressure to accept inaccurate and incomplete functional specification documents, to give the impression that the project is actually moving forward and making meaningful progress.</p>
<p style="padding-left: 30px;">b)      the functional analysts who whine incessantly when their paltry functional specification document is not accepted.</p>
<p>A functional specification document that does not meet expectations must be upgraded until it does.  But bouncing a functional specification document back and forth like a ping pong ball between the functional team and a technical reviewer is inefficient and wasteful.  I find that the best way to quickly firm up a weak functional specification document is to thoroughly research all of the issues that I found in the document, formulate proposed solutions where possible, and then schedule a face to face collaborative meeting with the functional analyst and the business process owner(s).  This type of collaboration can save hours, days, or even weeks of wasted ping-pong posturing, and that is always best outcome for the project.</p>
<h3><a href="http://www.dataxstream.com/2010/03/sap-upgrades-offshore-resources/">Off-Shore Technical Resources</a></h3>
<p>This face-to-face quick resolution scenario typically cannot happen if you have an off-shore technical contingent in play.  In this case, it is absolutely imperative that the functional specification document be most accurate and complete to mitigate the risk of excessive time loss.   Why is that?</p>
<p>Off-shore resources are sometimes time zone shifted eight or more hours ahead of where the project is located.  If a functional specification document is released for review, it will not be analyzed until we have left for the day.  If the off-shore reviewer has questions or raises issues, we will not see these questions or issues until the next day when we arrive at the project site.  When we respond to the questions or issues, the off-shore team will not see our response until we have left for the day.  And so on.</p>
<p>Under these conditions, a poorly written functional specification document with issues takes days instead of hours to resolve.  This leads to unnecessary project delays and cost overruns.</p>
<h3>When One is Really Many</h3>
<p>That 3PL interface, which was scoped and planned by the business process owners as a single RICEF object named “The 3PL Interface”; and for which only one interface functional specification document is written, is actually many RICEF objects.  We need to move purchase orders, inventory receipts, advance ship notices, inventory picks, and cycle counts between the two interfacing partners.  Each of these represents a different payload, different mapping, is triggered by a different point in the business process, has separate error handling and recovery procedures, and requires a separate RICEF development object.</p>
<p>That single enhancement functional specification document, which addresses all of SD pricing, has the potential to extend into many different user exits.  I just finished coding an ABAP proxy that was functionally specified as one interface.  In fact it was four.  The requirement was to search the database for sales and invoice data starting with either an invoice number, sales order number, customer name, or company name.  Each of these search techniques required the development of a separate method.  The only pieces of code that were shared among the four search techniques were the input parameters and the output return table.</p>
<p>The point here is to make sure that the project planners understand the real complexity and effort required on the development side, and to make sure that the project plan and budget reflects these more realistic metrics.  This really goes a long way to stop everyone from wondering, “It’s only one interface!  What is taking development so long?”</p>
<h3>Great Expectations</h3>
<p>So what is a reasonable set of expectations for a really good functional specification document?  What is it that we are asking the business analyst to do?</p>
<p>First, let me describe what I do not expect.  I do not expect a business analyst to write code, build tables, design efficient database retrievals, or to decide that one BAPI, function module, class, or IDOC is better than another.</p>
<p>Here is what I do expect:</p>
<p style="padding-left: 30px;">A clear definition of a business process that is repeatable, and which actually works.  As a pre-automation test for data conversions, I always require the functional analyst to manually enter one of whatever, using the standard SAP transaction for which a conversion program is to be built. Many times, they can’t because the system is not configured correctly, the supporting data is not present, or any number of other reasons which cause the transaction to fail.  An interesting observation is that there is much indignant huffing and puffing during this manual entry “test” process.  But when the manual test fails, I simply remind them that I cannot automate a broken or non-existent business process.</p>
<p style="padding-left: 30px;">A clear definition of what should happen under abnormal or failure circumstances.  This must include error handling, notification, recovery and reprocessing steps.</p>
<p style="padding-left: 30px;">A business process that can efficiently be automated.  Requiring a search of sales order header text for the phrase “This is a red order” is a very bad design for automation purposes.  While such a design is technically possible to build, it will certainly be inefficient at run time, and may not always produce all of the red orders.  This is because the key value is a free-form phrase that can and will be misspelled, and abbreviated, along with countless other mutilations of the key phrase “This is a red order”.  There are much better business processes and technical implementations that will more efficiently and more accurately find all of the red orders in your system.</p>
<p style="padding-left: 30px;">An explanation of the need for development.  Exactly what is the gap, and how will automating the business process close the gap?</p>
<p style="padding-left: 30px;">Screen shots from SAP transactions depicting data that is to be retrieved or stored.  From the screen shot in the transaction, I can usually determine the exact table and field in the SAP database.  Note that some business analysts are very adept at identifying the actual underlying table and field name.</p>
<p style="padding-left: 30px;">Clear and concise details with respect to data mappings, formulae, data transformations, conditional processing, etc.  If I come to an intersection and it is unclear whether I should continue to go straight, turn left, or turn right, then the functional specification document needs a bit more detail behind it.</p>
<p style="padding-left: 30px;">
<h3>How to insure Consistency in Functional Specification Document Review</h3>
<p>Design a separate functional specification document review checklist for each flavor of RICEF object.  Distribute these checklists to the functional specification writers so that they know what the expectations are.  Using a checklist will help to make sure that your review process is consistent and accurate.  Improve these checklists over time.  My Form functional specification checklist document now includes the following check:</p>
<p style="padding-left: 30px;">Is it physically possible to print the specified content on the specified form using the specified font style and size?  Was an actual printed mock-up provided as proof?</p>
<p>- but only after I had received a functional spec for a form that required four inches of print content on a one inch label.  And somehow, the business analyst who wrote this particular request erroneously thought that it was my problem to solve.   After all, writing code is magic!  Isn’t it?  In this case, I pushed back and insisted that an actual printed mock-up be produced &#8211; one that I would then agree to automate.</p>
<h3>Summary</h3>
<p>A good functional specification document will help tremendously in moving a project forward in the right direction with minimal cost and risk.  A poor functional specification document has serious potential to cause project delays, and  schedule and cost overruns.  The best goal for the project is to achieve a good functional specification document, using whatever means required.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dataxstream.com/2010/04/writing-sa-functional-spec/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Ergonomic User Interface</title>
		<link>http://www.dataxstream.com/2010/03/the-ergonomic-user-interface/</link>
		<comments>http://www.dataxstream.com/2010/03/the-ergonomic-user-interface/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 14:00:53 +0000</pubDate>
		<dc:creator>Mike Salvo</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SAP ABAP Blog]]></category>
		<category><![CDATA[SAP Functional]]></category>
		<category><![CDATA[SAP Technical]]></category>
		<category><![CDATA[build an interface]]></category>
		<category><![CDATA[DataXstream]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Mike Salvo]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[SAP programming]]></category>

		<guid isPermaLink="false">http://www.dataxstream.com/?p=4110</guid>
		<description><![CDATA[Every Monday morning I hop on a plane, arrive at my destination city, pick up a rental car, and drive to my client’s site.  The car rental company gives me a different make and model car every week.  And yet, somehow, I am successfully able to open the car, adjust the seat and mirrors, start [...]]]></description>
			<content:encoded><![CDATA[<p>Every Monday morning I hop on a plane, arrive at my destination city, pick up a rental car, and drive to my client’s site.  The car rental company gives me a different make and model car every week.  And yet, somehow, I am successfully able to open the car, adjust the seat and mirrors, start the car, shift gears, and drive.  I can also operate the radio, air conditioning, heat, windshield wipers, and headlights.</p>
<p>Now, put me behind a keyboard in front of a computer application which I have never seen before. My user experience is all over the map – somewhere in the continuum between most excellent and very poor.  Some application user interfaces are extremely intuitive, well-designed and easy to navigate, logically follow the business process flow, and provide real meaningful help when needed.  Other application user interfaces are extremely difficult to navigate, are not intuitive, do not follow a logical business process flow, and offer little or no meaningful help. And sometimes in these difficult user interfaces, not only has the location of the steering wheel been moved to a totally unsuspecting location, but its appearance has been changed so that, even when I see it, I do not even recognize it as being the application’s steering wheel.</p>
<p>A well-engineered user interface is no accident.  It doesn’t just magically happen.  It must be woven into the fabric of the design and the code; and it should never be shoe-horned into the application as an after-thought.   It takes a lot of up front planning, designing, testing, functional effort and technical effort to produce a really good application user interface.  And yes, designing, building, testing, and implementing a good user interface for your application will extend the delivery time of whatever it is that you are building.</p>
<p>Why is a well-designed and ergonomic user interface so important?  You could have built the best application ever developed.  But if it is unusable, it will never get very far.   Countless hours are lost every day as thousands of frustrated users spend extra time and effort wrestling with poorly designed user interfaces, rather than focusing on their jobs.  And when the frustration levels reach a certain trigger point, the users will seek out and find alternative ways to perform their duties.</p>
<p>Here are a few examples of some very interesting user interface experiences that I have personally encountered.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<h2><span id="more-4110"></span>Let’s Punish the User</h2>
<p>I thought we had gotten over this one a long time ago, but I was bitten by it recently while I was completing a web form.  Here is the scenario:</p>
<p style="padding-left: 60px;">I am completing a screen form containing several fields, and I make an entry error in one of the fields.  When I try to submit the data, the application rejects the submission, and sends me a message indicating where the error field is, <strong>and then clears all of the fields on the screen and makes me re-enter all of</strong> <strong>the data again.</strong></p>
<p style="padding-left: 60px;"><span style="color: #3366ff;"> </span><em><span style="color: #3366ff;">Bad User!  And, because you made a mistake, you get to start the entire form all over again …   and again … and again … and again </span>&#8230; </em></p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<h2>When Help is not Help</h2>
<p>I am especially fond of this one.  I need help, so I look for the HELP ICON.  I find the HELP ICON (because it looks like a help icon should look, and it is located where a help icon is typically located … well, sometimes it is) and I press it.  The anticipation of actually getting the help I need is overwhelming.     And the help information finally appears on my screen and reads something like this:</p>
<p style="padding-left: 30px;">The exact details of what you want to know are located somewhere in our behemoth website.   Now, we could tell you exactly where and actually help you to solve your problem very quickly,    but we’re not going to, because then you won’t have spent hours wandering aimlessly through our website’s colossal labyrinth.  And while you are in there, don’t let the Minotaur get you!   Please go to <a href="http://www.needleinthehay.com/">www.needleinthehay.com</a>.</p>
<p>Well, at least they said “please”.</p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<h2>The Errant Error Message</h2>
<p>I can’t tell you how many times I have made a data entry mistake, only to be “helped” by this not-so-helpful error message:</p>
<p><span style="color: #3366ff;"><strong> Incorrect Entry</strong></span></p>
<p>This is irritating.  If I don’t know <strong>why</strong> it is incorrect, I can’t fix it!  If the application is intelligent enough to determine that the entry is incorrect, it certainly is intelligent enough to tell me which of its check rules were violated (in plain user-oriented language please).</p>
<p>I really like this one:</p>
<p><span style="color: #3366ff;"><strong>Program Error 1776</strong></span></p>
<p>This truly tells me everything I need to know!!!  Maybe the developer knows what error 1776 is, but I don’t.  Maybe I can find the meaning of error 1776 at <a href="http://www.needleinthehay.com/">www.needleinthehay.com</a>. (I hope the answer is not too close to the Minotaur’s lair.)</p>
<p>Hey developer – can I have your phone number so I can call you every time I see one of these messages?  Maybe then you will get the hint and stop the madness!</p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<h2>I’ve fallen in and I can’t get out</h2>
<p>Sometimes, I manage to navigate to a screen that has no obvious means of escape.  So I’m trapped until I can figure out the top-secret mouse click or keystroke combination.  Should I place the blue orb on the green pedestal?  I guess I really should have left a breadcrumb trail.  Or maybe the developer was a ZORK player!  Let’s try XYZZY!!!</p>
<p><strong><span style="text-decoration: underline;"><strong><span style="text-decoration: underline;"> </span></strong></span></strong></p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<h2>Just Give me a Good Example</h2>
<p>Like pictures, a good example is worth a thousand words.  Good examples are worth their weight in gold.  A really good example can get me to where I want to be – understanding what I need to know – much more quickly than an entire chapter of words.  Good examples are hard to come by.  They require lots of thought and planning.</p>
<p>Here is an example of a bad example:</p>
<p>2  @  2   =  4         where ‘@’ is some arithmetic operation.</p>
<p>OK &#8211; did we add or multiply here?  Who knows?  This is totally ambiguous, and a bad example.</p>
<p>Here is an example of a better example:</p>
<p>2  @  3   =  5         where ‘@’ is some arithmetic operation.</p>
<p>It is obvious here that the “arithmetic operation” was addition.</p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<h2>The Cluttered Screen</h2>
<p>One of my favorite games as a child was the type of puzzle where a group of objects is hidden somewhere in a very busy picture.  The names of the hidden objects are listed on the side of the page, and the object of this type of puzzle is to “find the hidden objects” that are on the list.</p>
<p>Some user interface designers and builders are very adept at hiding items on their incredibly busy user interface screens.   Perhaps in their youth, like me, they liked to play with “find the hidden objects” puzzles also.  The problem here is that they are designing “find the hidden objects” puzzles into their user interfaces!  Is it really necessary to squeeze in every data field and push button onto a single screen?  Is the perception here that a single screen, no matter how extremely busy, is somehow easier to use?</p>
<p>My end-user work instructions tell me that if I push the “show details” button, I will then know the meaning of life, the universe, and everything.  But where is the “show details” button?  I am really good at playing “Where’s Waldo”!  Just give me an hour or two and I will find it!</p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<h2>The Plethora of Scattered Screens</h2>
<p>The opposite of the tightly packing everything onto a single cluttered screen is the scattering of the user interface among way too many screens.  It becomes a memory exercise to remember the user interface elements that I have already touched, and a scavenger hunt to locate the interface elements that I haven’t found yet.  Let’s see … what was that part number that I entered on screen 152?  Or was it on screen 376?  And where do I go from here to get the order number?  Does anyone have a roadmap that I can follow?</p>
<p>Maybe if we could consolidate the enormous number of screens down to a few that represented logical work flow groupings, I could spend less time screen hopping and be more productive.</p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<h2>Let’s Get Colorful and Fontsy</h2>
<p><a href="http://www.dataxstream.com/wp-content/uploads/2020/12/userinterface.jpg" rel="shadowbox[post-4110];player=img;"><img class="aligncenter size-full wp-image-4356" title="userinterface" src="http://www.dataxstream.com/wp-content/uploads/2020/12/userinterface.jpg" alt="" width="660" height="75" /></a>
They use several different font styles, sizes, and colors.</p>
<p>I suppose that’s OK, isn’t it?  It really wasn’t too difficult to read the sentence above, was it?</p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<h2>Consistency is Key</h2>
<p>Let’s examine the rental car scenario that I posed at the beginning of this blog.  The reason that I am able to quickly enter the car and drive away is because a recognized user interface standard has been established and consistently applied to all automobile makes and models.  Among the various cars that I am faced with, the gas pedal always looks like a gas pedal, and is always located on the driver’s side floor to the right.  Likewise for the steering wheel, the brake pedal, and most other major user interface elements found in a car &#8211; they all adhere to standards of look and feel and placement.</p>
<p>It should not be too surprising then, that the not-so-ergonomic user interfaces that I have encountered do not even recognize that a standard might even exist. The really difficult user interfaces mix things up, and change the appearance, behavior, and location of controls from screen to screen.</p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<p><strong><span style="text-decoration: underline;"> </span></strong></p>
<h2>Summary</h2>
<p>The ergonomic user interface – the one that is intuitive, provides real help when needed, follows an organized logical workflow, and is easy to use are important components of a really great application that end users will want to use because it actually will be the best way to do their job.</p>
<p>Here are a few guidelines that I use whenever I build a user interface:</p>
<p>1)      Totally and completely understand what the business requirements are, and what the user needs to accomplish.  This is the first and most important step to building a good user interface.</p>
<p>2)      Design the user interface to follow the workflow.</p>
<p style="padding-left: 30px;">Organize and logically group functions together.</p>
<p>3)      Determine if standards exist and consistently use them everywhere.</p>
<p style="padding-left: 30px;">Position controls in expected and predictable locations.</p>
<p>4)      Give feedback to the user in a timely manner.</p>
<p style="padding-left: 30px;">Don’t wait until screen 3 to inform the user that there is a problem back on screen 1.</p>
<p>5)      Craft meaningful error messages in user-oriented language.</p>
<p style="padding-left: 30px;">Temper the messages appropriately – if everything is hot, then nothing is hot.</p>
<p>6)      Make sure that the “help” you provide really helps.</p>
<p style="padding-left: 30px;">Ask the user to confirm before deleting anything.</p>
<p style="padding-left: 30px;">Use list of values help whenever possible.</p>
<p>7)      Use default values whenever possible.</p>
<p style="padding-left: 30px;">This avoids potential data entry errors and makes the user interface more efficient.</p>
<p style="padding-left: 30px;">For example, if I work in warehouse 2, I should not have to enter that information every time I ship an item.</p>
<p style="padding-left: 30px;">Display default values in pre-populated, grayed-out fields; but add a pushbutton to allow for the rare occasion when the user must override the default value.</p>
<p>8)      Keep training documents current.</p>
<p style="padding-left: 30px;">As a developer, you may not own the training documents – but someone does.</p>
<p style="padding-left: 30px;">There is nothing more frustrating than a training document that does not match the actual program behavior screen for screen and mouse click for mouse click.</p>
<p style="padding-left: 30px;">
<p>I hope that this blog can provide some useful hints for building effective and efficient user interfaces.  Please reply to this blog if you have any most interesting user interface stories that you would like to share with our readers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dataxstream.com/2010/03/the-ergonomic-user-interface/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SAP Upgrades &amp; Recycling Project Artifacts</title>
		<link>http://www.dataxstream.com/2010/02/sap-upgrades-recycling-project-artifacts/</link>
		<comments>http://www.dataxstream.com/2010/02/sap-upgrades-recycling-project-artifacts/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 14:47:34 +0000</pubDate>
		<dc:creator>Tim Cooper</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SAP Functional]]></category>
		<category><![CDATA[SAP Project Management]]></category>
		<category><![CDATA[SAP Strategy]]></category>
		<category><![CDATA[SAP Testing]]></category>
		<category><![CDATA[SAP Upgrade Blog]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[sap upgrade]]></category>
		<category><![CDATA[Tim Cooper]]></category>
		<category><![CDATA[upgrade tips]]></category>

		<guid isPermaLink="false">http://www.dataxstream.com/?p=3877</guid>
		<description><![CDATA[In my previous post on SAP upgrades I discussed how to get started on your project and to determine whether you are doing (ahem!) just a technical upgrade or intend to venture into deploying additional standard functionality, too.  In this post I’ll talk about how you can plan, anticipate and potentially accelerate some of the [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://www.dataxstream.com/2009/12/sap-upgrades-part1/">previous post</a> on SAP upgrades I discussed how to get started on your project and to determine whether you are doing (ahem!) <em>just</em> a technical upgrade or intend to venture into deploying additional standard functionality, too.  In this post I’ll talk about how you can plan, anticipate and potentially accelerate some of the execution activities to verify the upgrade is working.</p>
<p><span id="more-3877"></span></p>
<p>In short, if you have done a good job with your earlier implementation activities you should have a plethora of materials that can be reused.  Remember that after an upgrade your basic goal is to still be able to do what you could do on the previous release along with anything new you are introducing.  The way you execute business functions may be slightly different, but the underlying objective should be much the same.</p>
<blockquote><p><em>For more on SAP Upgrades download the white papers:</em></p>
<h3><a href="http://www.dataxstream.com/success-stories/whitepapers/white-paper-request/">SAP  Upgrade Checklist</a></h3>
<h3><strong><a href="http://www.dataxstream.com/success-stories/whitepapers/white-paper-request/">Customization  Risk Analysis in an SAP Upgrade Project</a></strong></h3>
</blockquote>
<h1>SAP Project Artifacts for Upgrades</h1>
<p>In short, don’t reinvent the proverbial wheel if you have one available to you already.</p>
<p>As you went through your initial SAP implementation and ongoing support work you probably generated piles of documentation and if you managed this well throughout the ongoing project lifecycle there is a good chance that you can reuse it.  In essence, the better job you have done identifying, capturing and testing the functionality used in your SAP system the easier it should be to reuse those artifacts to confirm continuity of business processes in the new release.  It sounds easy, but it is a rare project that consistently maintains and updates project documentation as functionality is introduced through point releases, production fixes, etc.</p>
<p>Whatever information you have is worth reviewing to see if it can be reused or at least used as a basis for building out the scope of testing for the upgrade.  In addition to the testing scope, you may have test plans, procedures and protocols that can be adapted.  Typical project artifacts for consideration include:</p>
<h2>Functional Scope</h2>
<p>Any SAP project starts with an initial functional scope which grows over time.  This is a great start point for defining what you need to test and circling back to find where you implemented non-standard functionality.  The standard functionality is likely to stand up to the upgrade and work straight away, whereas the non-standard stuff is where you want to pay special attention.  In this scope you want to make sure you capture any special periodic processing, e.g. daily, weekly, monthly, quarterly and annual processes to be tested</p>
<h2>Business Process Procedure Documents</h2>
<p>In conjunction with your functional scope, you probably have business process procedure documents that provide detailed step by step instructions on how to execute job functions.  You can use these as a tool to verify whether business process steps have changed.  In the event that the steps have changed it is clear what documentation needs to be updated.</p>
<h2>Technical Objects Scope</h2>
<p>Similar to the functional scope you should have a catalog of technical objects, e.g. reports, custom programs, user exits, SAP modifications (if you went down that path), etc.  This provides a list of objects to examine and evaluate as part of the upgrade.  This is a topic covered in depth in a <a href="http://www.dataxstream.com/2009/11/sap-upgrade-and-customizations-1/">separate blog posting</a>.</p>
<h2>Test Plans, Scripts, Procedures and Tracking</h2>
<p>Now that you have a functional and technical scope defined you can also revisit any test plans you have.  Testing comes in many flavors (click <a href="http://www.dataxstream.com/2009/10/sap-testing-terminology/">here</a> to discuss some flavors) and you probably have prior test artifacts for functional testing, end-to-end testing, security and authorizations testing, etc. which are worth a review.  On top of this any regression test scripts and automated test tools may be re-deployable in support of upgrade testing</p>
<p>On top of this most projects have established procedures for tracking issues, resolution steps, and progress reporting.</p>
<h2>Testing Organization</h2>
<p>In conjunction with your test plans you probably have documented roles and responsibilities, test team organization structure, escalation routes and sign-off procedures.  Again, reuse all that you can.</p>
<h2>Partner Systems, Interfaces, Batch Processing, Performance Metrics and System Outputs</h2>
<p>Very few SAP installations are islands of functionality, instead there are numerous partner systems that interface with SAP as well various outputs in both electronic and hardcopy forms.  An inventory of these items provides another checklist for testing and identifies both internal and external partner systems you need to include in your upgrade test cases.</p>
<p>System performance is often critical for interfaces and batch processing and any historical activity that identified and tested these elements provides a potential guide for ensuring no degradation of these things as a result of the upgrade.</p>
<h2>SAP Upgrade Go-Live</h2>
<p>Again the experience from other go-live events may form a good basis for building the upgrade production implementation plan.</p>
<p>Supplement these artifacts with additional content for new functionality and modify for anything that has changed because of the upgrade.</p>
<h1>Get Organized for Your SAP Upgrade</h1>
<p>By no means am I saying that everything you have built and accumulated over the lifetime of your SAP installation is going to lend itself easily to being recycled in support of your upgrade activities.  However, I am saying that you put in a lot of work to get to this point, you already have a good idea of how to test SAP, you know the quirks and nuances of your organization, so don’t feel like you need to start from scratch.  Cast a careful eye over what you have in your project inventory and see what make sense to apply and what to discard.</p>
<p>And if your SAP project inventory is not a robust as it could be, think about how to strengthen it ready for the next time you have go through an exercise like this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dataxstream.com/2010/02/sap-upgrades-recycling-project-artifacts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>21 Things to Remember for Your Next SAP Upgrade</title>
		<link>http://www.dataxstream.com/2010/01/21-things-to-r%e2%80%a6xt-sap-upgrade/</link>
		<comments>http://www.dataxstream.com/2010/01/21-things-to-r%e2%80%a6xt-sap-upgrade/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 16:15:00 +0000</pubDate>
		<dc:creator>contentadmin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[SAP Functional]]></category>
		<category><![CDATA[SAP Project Management]]></category>
		<category><![CDATA[SAP Technical]]></category>
		<category><![CDATA[SAP Upgrade Blog]]></category>
		<category><![CDATA[DataXstream]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[sap checklist]]></category>
		<category><![CDATA[sap tips]]></category>
		<category><![CDATA[sap upgrade]]></category>
		<category><![CDATA[sap upgrade help]]></category>
		<category><![CDATA[Upgrade]]></category>
		<category><![CDATA[upgrade checklist]]></category>
		<category><![CDATA[upgrade tips]]></category>

		<guid isPermaLink="false">http://www.dataxstream.com/?p=3818</guid>
		<description><![CDATA[The choice to upgrade your company's SAP platform is a very important business decision.  Many criteria need to be considered when determining if an SAP upgrade is the right move and, if so, what type of upgrade needs to take place (ECC 6.0, Enhancement Packs, etc.).]]></description>
			<content:encoded><![CDATA[<h2>Is it time for your company to consider an SAP Upgrade?</h2>
<p>The choice to upgrade your company&#8217;s SAP platform is a very important business decision.  Many criteria need to be considered when determining if an SAP upgrade is the right move and, if so, what type of upgrade needs to take place (ECC 6.0, Enhancement Packs, etc.).  A successful SAP upgrade requires the determination of your upgrade requirements, proper planning, and an assessment of technical and functional risk.  Below is a sample of our <a href="http://www.dataxstream.com/success-stories/whitepapers/white-paper-request/">SAP Upgrade Checklist</a> white paper:</p>
<h4>Determine Your Upgrade Requirements</h4>
<ol>
<li><strong>What are the business reasons for upgrading? </strong> Support from the business for an upgrade project is most important.  If there are no business reasons for upgrading, then you should probably not do it.  Included here are the business risks incurred by not upgrading.</li>
<li><strong> What are the technical reasons for upgrading?</strong> Included here are the technical risks incurred by not upgrading.  (Posture increasing maintenance fees for old versions or complete support withdrawal as a business risk – not a technical risk.)</li>
</ol>
<blockquote>
<h3 style="text-align: center;">For the complete list, download the full white paper:</h3>
<h3 style="text-align: center;"><a href="http://www.dataxstream.com/success-stories/whitepapers/white-paper-request/">SAP Upgrade Checklist</a></h3>
</blockquote>
<p>Related Links:</p>
<ol>
<li><a href="http://www.dataxstream.com/sap-upgrade-project-plan/">SAP Upgrade Project Plan</a></li>
<li><a href="http://www.dataxstream.com/2009/12/sap-upgrades-part1/">SAP Upgrade Project Management Considerations</a></li>
<li><a href="http://www.dataxstream.com/contact-us/correspondence/">Contact Us</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.dataxstream.com/2010/01/21-things-to-r%e2%80%a6xt-sap-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Liveblogging SAP TechEd 09</title>
		<link>http://www.dataxstream.com/2009/10/liveblogging-sap-teched-09/</link>
		<comments>http://www.dataxstream.com/2009/10/liveblogging-sap-teched-09/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 17:29:58 +0000</pubDate>
		<dc:creator>Craig Stasila</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[SAP ABAP Blog]]></category>
		<category><![CDATA[SAP Basis Blog]]></category>
		<category><![CDATA[SAP EDI Blog]]></category>
		<category><![CDATA[SAP Functional]]></category>
		<category><![CDATA[SAP Interface Blog]]></category>
		<category><![CDATA[SAP Java Blog]]></category>
		<category><![CDATA[SAP PI Blog]]></category>
		<category><![CDATA[SAP Project Management]]></category>
		<category><![CDATA[SAP SolMan Blog]]></category>
		<category><![CDATA[SAP Strategy]]></category>
		<category><![CDATA[SAP Technical]]></category>
		<category><![CDATA[SAP Testing]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[Craig Stasila]]></category>
		<category><![CDATA[DataXstream]]></category>
		<category><![CDATA[Liveblog]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[TechEd]]></category>

		<guid isPermaLink="false">http://www.dataxstream.com/?p=2664</guid>
		<description><![CDATA[Are you stuck in your cube while Bob from BASIS is heading to SAP TechEd 09 in sunny Phoenix?  Are you afraid that you&#8217;ll miss out on all the sun and fun?  While we can&#8217;t send the sun, we&#8217;ll try to bring you the fun.  DataXstream will be liveblogging at SAP TechEd 09. Head over [...]]]></description>
			<content:encoded><![CDATA[<p>Are you stuck in your cube while Bob from BASIS is heading to SAP TechEd 09 in sunny Phoenix?  Are you afraid that you&#8217;ll miss out on all the sun and fun?  While we can&#8217;t send the sun, we&#8217;ll try to bring you the fun.  DataXstream will be liveblogging at SAP TechEd 09.</p>
<p>Head over to <a href="http://live.dataxstream.com">live.dataxstream.com</a> on Tuesday, October 13, 2009 to get up to second updates from the show.  We will be getting our liveblog on starting at 8am PDT (that&#8217;s 11am for you right-coasters) for the general keynote session.  We&#8217;ll also be liveblogging from SAP TechEd 09 Demo Jam at 8pm PDT on Tuesday.  The Demo Jam promises to be a great time, so plan to join us online after you put the kiddies to bed!</p>
<p>This is our first foray into liveblogging.  Hopefully it will go off without too many technical glitches.  We hope you&#8217;ll enjoy following the events with us!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dataxstream.com/2009/10/liveblogging-sap-teched-09/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
