tag:blogger.com,1999:blog-209802852009-04-07T09:49:38.768-04:00Elegance Technologies BlogThis is the corporate blog for Elegance Technologies. It contains information about product releases, tips, and software development.Roger | A Content Lifenoreply@blogger.comBlogger23125tag:blogger.com,1999:blog-20980285.post-47767750305816204102008-03-14T10:00:00.002-04:002008-03-14T10:01:03.739-04:00Fast Formatter 1.2 released!We have released version 1.2 of Fast Formatter. This release add full support for Visual Studio 2008.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-4776775030581620410?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-36964597427983675212008-03-12T10:24:00.003-04:002008-03-12T10:27:44.832-04:00outsourcing article in Morning CallI am quoted in an article on outsourcing in the Morning Call,<br />which is a local newspaper in the Lehigh Valley. Check it out:<br /><br /><a href="http://www.mcall.com/business/local/all-outsource.6218186mar12,0,6551465.story">http://www.mcall.com/business/local/all-outsource.6218186mar12,0,6551465.story</a><br /><br />Clif<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-3696459742798367521?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Clif Kussmaulhttp://www.blogger.com/profile/07068397192359176014noreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-57326639932045863742008-02-07T10:17:00.000-05:002008-02-07T10:20:36.568-05:00Lucid Spec 1.5 released!We have released version 1.5 of Lucid Spec. Version 1.5 is a minor version upgrade that includes the following:<br /><ul><li>Added Date Picker widget. </li><li>Added Time Picker widget. </li><li>Added Full Screen mode so that you can expand the Simulation to take over the screen. </li><li>Added ability to add images and tables to text sections. </li><li>Improved Text Box widget with masked edit and password capabilities. </li><li>Improved Combo Box widget with always down and editable capabilities. </li><li>Improved Tree widget with optional icons for tree nodes. </li><li>Improved data file format to shrink files by up to 30%. </li><li>Fixed several problems related to Vista. </li></ul><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-5732663993204586374?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-64878628917258225992008-01-26T06:26:00.000-05:002008-01-26T06:56:52.210-05:00articles & presentationsIt's been a long time since I've posted anything. Here are some updates:<br /><br />The <a href="http://www.bacollective.com/">BA Collective</a> has just published a short article I wrote on <a href="http://www.bacollective.com/content/view/17/1">Better Business Analysis through UI Prototyping</a>.<br /><br />I will be giving a presentation at <a href="http://www.projectsummit.com/philadelphia/index.html">Project Summit &amp; Business Analyst World Philadelphia</a> in April. I went to the PS&amp;BA World Chicago meeting last fall and met plenty of interesting people.<br /><br />Finally, we have a chapter on prototyping for web development in a book that should be published this Spring.<br /><br />More details coming soon, I hope.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-6487862891725822599?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Clif Kussmaulhttp://www.blogger.com/profile/07068397192359176014noreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-66737332522843211502007-05-14T07:58:00.000-04:002007-05-14T08:03:19.029-04:00C-Sharpener For VB 2.3 releasedWe have released a new version, 2.3, of C-Sharpener For VB. Version 2.3 is a minor version upgrade that includes the following:<br /><ul><li>Improved support for Microsoft Vista. </li><li>Improved code generation by removing unreachable code. </li><li>Added support Web Application project (Visual Studio 2005 only). </li><li>Added support for LBound and UBound VB translation. </li><li>Fixed error in casting. </li><li>Fixed error in handling of the split method. </li><li>Fixed exception if exe is present in the Solution. </li><li>Fixed XML exception. </li><li>Fixed error with two constructors being created for forms. </li><li>Fixed error with Page Load events in web projects (Visual Studio 2005 only). </li><li>Fixed error related to misplaced closing brace. </li><li>Fixed error with DateTime. </li></ul><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-6673733252284321150?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-84576433430889762472007-03-08T08:00:00.000-05:002007-03-08T08:04:43.311-05:00New website!We have just done a major redesign of our website. We hope that the website now looks more "modern". One thing we still have to do is make the blog design match or overall website design.<br /><br />Please let us know if you have any suggestions for making it better.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-8457643343088976247?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-1160664383663927392006-10-12T10:43:00.000-04:002006-10-23T16:42:40.116-04:00Lucid Spec 1.4.0 releasedWe have released Lucid Spec 1.4.0 today. It has the following new features and fixes:<br /><ul><li>Added Tool Bar widget.</li><li>Added ability to drag a widget from anywhere within the widget.</li><li>Added jump to capability to individual nodes in Combo Box, List Box and Text Spin widgets.</li><li>Added ability to copy/paste and drag/drop images to Screen Design.</li><li>Improved application look and feel.</li><li>Improved installer to optionally start application and tutorial.</li><li>Upgraded application to use .Net 2.0.</li><li>Fixed distorted Radio buttons and Check Boxes in printer output.</li><li>Fixed jump to problem in Grid Columns.</li><li>Fixed crash when Panels are rearranged.</li></ul><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-116066438366392739?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com2tag:blogger.com,1999:blog-20980285.post-1150133431646402402006-06-13T13:30:00.000-04:002006-06-13T13:47:14.353-04:00Top ten tips for software prototypingToday's users have become more sophisticated. They don't want software that just works - they want software that is easy to use. A software prototype is useful for understanding the user interface and making it easier to use. Unfortunately, many managers, analysts, and developers don't understand how to efficiently create software prototypes. Here are the top ten tips to help you rapidly prototype software:<br /><ol><li><span style="font-weight: bold;">Start from a high-level requirements specification.</span> This can be relatively short document with a few key <a href="http://en.wikipedia.org/wiki/Use_cases">use cases</a>.<br /></li><li><span style="font-weight: bold;">Start with screen flow.</span> Don't worry about individual screens initially. Instead, try to figure out the number of screens and how the screens relate to each other.<br /></li><li><span style="font-weight: bold;">Start with the most imporant screens.</span> Identify the most important screens based on the most common use cases and prototype those first. Initially, your software prototype should ignore simple or infrequently used screens.</li><li><span style="font-weight: bold;">Start with low fidelity screens and refine.</span> Your software prototype should be crude initially. Just get the right controls and text on the screen. You can worry about making the screens beautiful later.<br /></li><li><span style="font-weight: bold;">Get feedback early and often.</span> As soon as your software prototype has one or two screens, start showing them to users and other interested parties. Every time you add or revise screens, get feedback as soon as possible.<br /></li><li><span style="font-weight: bold;">Involve real users.</span> Make sure that you involve people that will actually use the system. If there is more than one type of user, make certain that you have a reprentative of each type. For instance, if managers use one part of the software and low-level employees use another part, then you need to review the relevant parts of the system with both managers and low-level employees.<br /></li><li><span style="font-weight: bold;">Use a "fast" software prototyping tool.</span> The software prototyping tool should be easy and fast to change. Otherwise, you will be reluctant to make necessary changes. We believe that our <a href="http://www.elegancetech.com/ls.aspx">Lucid Spec</a> product is the perfect tool :)<br /></li><li><span style="font-weight: bold;">Pay attention to validation and business rules.</span> Once you have prototyped screens and defined flow, you need to capture the validation and business rules of the system from users. You will usually identify missing features in your software prototype when you do this.<br /></li><li><span style="font-weight: bold;">Finish with a functional specification.</span> The functional specification should contain screen shots with additional validation and business rules. Review the functional specification one last time with users.<br /></li><li><span style="font-weight: bold;">Use common sense.</span> Always ask yourself "what is the least understand or riskest part of the software?" This will help you decide where to spend time on your software prototype.<br /></li></ol><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-115013343164640240?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-1150130966912252442006-06-12T12:34:00.000-04:002006-06-12T13:26:05.543-04:00Types of Software SpecificationsDevelopers often confuse the various types of software specifications. There are many types of software specifications, but here I'm focusing on describing the most common types: requirements, functional, and design.<br /><ul><li><span style="font-weight: bold;">Requirements Specification</span>: Requirements Specifications are used to define the problem(s) that you need to solve. In other words, they define the "what". Requirements Specifications may contain both qualitative requirements (the software should be easy to use) and quantitive requirements (response time must be less than 2 seconds). They often contain high-level <a href="http://en.wikipedia.org/wiki/Use_case">Use Cases</a>.<br /></li><li><span style="font-weight: bold;">Functional Specification</span>: Functional Specifications define how you are going to resolve the Requirements Specifications. In other words, they define the "how". If a user interface is involved, they usually contain screenshots and descriptions of how the screens work. We (Elegance Technologies) created <a href="http://www.elegancetech.com/ls.aspx">Lucid Spec</a> to help write Functional Specifications.<br /></li><li><span style="font-weight: bold;">Design Specification</span>: Design Specifications define how you are going to implement the Functional Specifications. In other words, they also define the "how", but the "how" is related to software implementation issues. This software specification usually contains things like <a href="http://en.wikipedia.org/wiki/Unified_Modeling_Language">UML</a> class diagrams, interaction diagrams, database design diagrams, etc.</li></ul>Many software organizations use <a href="http://en.wikipedia.org/wiki/Agile_Software_Development">Agile software development</a> processes today. As a result, some developers believe that they don't need to write software specifications anymore. This is not true! Developers may not write all the software specifications upfront, but they should write the portion of the software specifications relevant to their current software development iteration.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-115013096691225244?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-1149003646135455582006-05-30T11:37:00.000-04:002006-05-30T11:42:00.190-04:00Lucid Spec 1.3.0 releasedWe have released a version 1.3.0 of Lucid Spec today. The new version includes the following:<br /><ul><li>Added Hotspot, Numeric Spin, Scroll Bar, Slider, and Text Spin widgets.</li><li>Added ability to specify footnote numbers and control widget order in the widget table.</li><li>Added optional toolbar to the Requirements Panel.</li><li>Improved help file to include documentation on all widgets.</li><li>Improved consistency of Grid heading height.</li><li>Improved Screen and Section load performance.</li><li>Fixed pasting text incorrectly in Describe and Sections.</li><li>Fixed wrong font displaying in Describe and Sections.</li><li>Fixed crash when updating Screen names.</li><li>Fixed crash in Simulate mode.</li></ul><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-114900364613545558?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-1146658183236173402006-05-03T08:08:00.000-04:002006-05-03T08:28:39.253-04:00Low vs. High Fidelity PrototypingIn an <a href="http://www.elegancetech.com/blog/2006/02/low-fidelity-non-feature-in-lucid-spec.html">earlier blog post</a>, Roger said:<br /><table id="posts" class="posts"><tbody><tr id="snippet-focused" class="snippet"><br /></tr><tr><td><p><span style="font-style: italic;">Therefore, I assumed that many users of Lucid Spec would request a low fidelity option to automatically morph all screens into a simple black and white style. I assumed wrong. In fact, not one user has requested this feature. I'm not really sure why this is. Are low fidelity prototypes something that you should do, but don't? Do people that create low fidelity prototypes only use paper? It remains a mystery to me.</span><br /></p></td></tr></tbody></table><br />There's good evidence (e.g. [1]) that low and high fidelity prototyping are basically equivalent in terms of finding usability issues, and low fidelity is much, much faster. On the other hand, other authors [2] recommend high-fidelity prototypes because they sell better to management & other stakeholders.<br /><br />I think this is a key distinction - low fidelity is most efficient for finding &amp; resolving problems, but high fidelity is most effective for persuading stakeholders.<br /><br />I also think many people don't recognize the power of low fidelity prototyping. I recently led a workshop on prototyping for computing faculty and students. In one of the workshop activities, teams of participants spend 10 minutes creating a paper prototype, and 5-10 minutes reviewing it with a member of another team. Many of them were surprised by the issues and ideas that came up in such a short time. This is especially difficult for experienced programmers - we're conditioned to pay attention to little syntax details in our code, and it's hard to break such habits and create a quick and dirty prototype.<br /><br /><span style="font-size:130%;"><span style="font-weight: bold;">References</span><br /></span>1. Miriam Walker, Leila Takayama, and James Landsey. <span style="font-weight: bold;">High-fidelity or low-fidelity, paper or computer? Choosing attributes when testing web prototypes</span>. <span style="font-style: italic;">Proceedings of the Human Factors and Ergonomics Society (HFES) 46th Annual Meeting</span>, 661-665, 2002.<br />2. Jim Rudd and Scott Isensee. <span style="font-weight: bold;">Twenty-two tips for a happier, healthier prototype</span>. <span style="font-style: italic;">Interactions </span>1(1):35-40, 1994.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-114665818323617340?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Clif Kussmaulhttp://www.blogger.com/profile/07068397192359176014noreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-1145906091938828442006-04-24T15:14:00.000-04:002006-04-26T08:50:12.270-04:00C-Sharpener For VB 2.2.0 releasedWe released C-Sharpener For VB version 2.2.0 today. The new version includes the following:<br /><ol><li>Increased the trial limit to 1000 lines of code. </li><li>Improved handling of manifest files. </li><li>Improved installer for Visual Studio 2005 when Visual Studio 2003 is not installed (Visual Studio 2005 only). </li><li>Improved handling of long project paths. </li><li>Fixed several errors in parsing when multiple VB statements are on the same line separated by ":". </li><li>Fixed error in converting the "<>" operator. </li><li>Fixed error in converting local variables in a Case statement. </li><li>Fixed error in parsing Catch blocks. </li><li>Fixed error in updating language attributes in .aspx files (Visual Studio 2005 only). </li><li>Fixed error in converting For loops that decrement. </li><li>Fixed error in converting Try statements that have comments. </li><li>Fixed error in converting inconsistent accessors in partial classes (Visual Studio 2005 only).</li></ol>Also, for a limited time, the Professional Edition comes with <a href="http://www.elegancetech.com/ff.aspx">Fast Formatter</a> for free!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-114590609193882844?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-1143648166357339662006-03-29T11:01:00.000-05:002006-06-17T07:44:02.846-04:00Fast Formatter 1.1.0 releasedWe have release the first commercial version of Fast Formatter. Fast Formatter rapidly and precisely reformats C# code in Visual Studio .Net 2005. You can find out more here:<br /><br /><a href="http://www.elegancetech.com/ff.aspx">http://www.elegancetech.com/ff.aspx</a><br /><br />A single license costs $59.<br /><br />We welcome any and all feedback!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-114364816635733966?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com2tag:blogger.com,1999:blog-20980285.post-1143472897072279352006-03-27T10:18:00.000-05:002006-03-27T10:21:53.566-05:00Lucid Spec 1.2.0 releasedWe have just released version 1.2.0 of Lucid Spec! It has the following new features and fixes:<br /><ul><li>Added automatic edit so that you can just start typing when certain text widgets (Textbox, Button, Groupbox, etc.) are selected.</li><li>Added customizable templates that you can select when you create a project.</li><li>Added context menu to Describe tab and Sections.</li><li>Added ability to show or hide footnote numbers.</li><li>Added standard footer for printing that can be hidden or displayed when editing.</li><li>Added menu option to reset all Panels to original size and position.</li><li>Added a Recently Opened Files menu option to the File menu option to make it quicker to open files that you recently opened.</li><li>Improved in-place editing of Labels, Buttons, etc. to use the display font while editing.</li><li>Improved the clarity and borders of the screenshots in the Describe tab and Sections.</li><li>Fixed problem with existing text not updating when fonts are changed in the Options dialog.</li><li>Fixed memory leaks.</li><li>Fixed problem with incorrect control sizes printing when you print a single Screen.<br /></li></ul><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-114347289707227935?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-1142541778605203592006-03-16T15:16:00.000-05:002006-03-16T15:42:58.646-05:00Lucid Spec - not just for software anymore...Although our original vision for Lucid Spec was focused on software user interfaces, I keep thinking about other applications, such as designing user interfaces for non-software products. Actually, it might be more accurate to say "for products that aren't software-only", since software is a key part of many physical products - think of cell phones, video players & recorders, televisions, etc.<br /><br />VCR interface design is a bit odd - the front panel of the VCR usually has only a few controls, while the remote control usually has many more controls, and the front panel usually has a small, limited display, while almost anything can be displayed on the TV monitor. (Interestingly, our 15-year-old VCR finally died, and the new VCR/DVD replacement has <span style="font-weight: bold;">no</span> display - I miss the clock and timer - and many more front panel controls.)<br /><br />Periodically I work on a VCR design in Lucid Spec. I use a template screen with crude drawings of three physical devices - a VCR, a remote, and the television monitor - and widgets for the various controls on each device. The big challenge so far is that a specific physical control tends to be modal - it performs different functions depending on some internal state of the system. For example, if the tape is stopped, the fast forward button causes it to advance very quickly without displaying anything, but if the tape is already playing, the same button causes it to play more quickly, or even to speed up.<br /><br />I've thought about designing a cell phone in Lucid Spec, but that would be even worse - a typical cell phone has around 20 buttons to handle photos, calendar, contacts, phone settings, text messaging, and even phone calls...<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-114254177860520359?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Clif Kussmaulhttp://www.blogger.com/profile/07068397192359176014noreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-1140807497603475672006-03-08T14:00:00.000-05:002006-03-08T14:25:03.456-05:00Fast Formatter beta released!Consistent C# formatting makes code easier to read, which reduces development and maintenance costs. It also reflects positively on you and your team's ability and professionalism.<br /><br />Today, we released a beta version of Fast Formatter. Fast Formatter makes code formatting painless by rapidly and precisely reformatting your C# code inside the comfort of Visual Studio .NET 2005. You and your team can use Fast Formatter on code you develop or on legacy code that you inherit.<br /><br />The beta version is free and fully functional. You can find out more on our main website:<br /><br /><a href="http://www.elegancetech.com/FF.aspx">http://www.elegancetech.com/FF.aspx</a><br /><br />We would really appreciate any comments or feedback that you have.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-114080749760347567?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-1140821936940470152006-02-24T17:53:00.000-05:002006-02-25T16:14:53.670-05:00Low tech simulation logic in Lucid SpecIn Lucid Spec, we're often trying to balance power and ease of use. Actually, it's less a matter of "either ... or" and more a matter of "both ... and" - we want novice users to be productive quickly, <span style="font-weight: bold;">and</span> we want experienced users to be productive in larger and more complex projects. We try to keep this in mind as we evaluate potential new features (thanks for your suggestions - please keep them coming!).<br /><br />A good example is the issue of enhancing simulation capabilities. In the first release of Lucid Spec, most widgets (buttons, text fields, etc) have a "jump to" property - if the value of this property is a screen name, then Lucid Spec will jump to that screen when the widget is activated during simulation. A user can type the screen name, or select it from a menu. For example, a login screen typically has two text fields and a button or two - you enter a username and password, click on a button, and go on to the next screen in the application. Not surprisingly, we get requests and suggestions for more power and flexibility.<br /><br />Some ideas involve saving user-supplied data on one screen so it can be reused later in the simulation. So if I enter "kussmaul" as my username on the login screen, I should be able to see "kussmaul" on other screens in the simulation. Would this be nice? Absolutely. Could we implement it in an easy-to-use-but-powerful fashion? Probably - although this is the sort of feature that can lead to more and more related features, until suddenly we've reinvented Visual Basic. Is it essential for GUI prototyping? I'm not so sure - it might encourage users to spend more time than they should early in the project.<br /><br />Others present a bigger concern - suppose that data values I enter on one screen affect which screen I will see next? For example, the login screen might lead to different screens for different categories of users.<br />This sort of situation is pretty common, and there are several ways we might accomplish it:<br /><ol><li>Make multiple copies of the source screen (perhaps all based on a single master screen), each going to a different destination screen. This might be OK with a login screen for each category of users, but it gets more complicated quickly, and I try to avoid duplication. </li><li>Add widgets to the screen that won't be part of the final application, but can be used to select the appropriate destination. For example, the login screen could have buttons labeled "login as guest", "login as admin", "login as user", or an extra menu with these options. This approach could work on simple screens (especially if we use different colors or fonts to suggest that the extra widgets are someone different), but could interfere with the layout of crowded or more complex screens.</li><li>Use what I've been calling a "helper screen". When a user clicks on the login button, they see a screen with a menu or set of buttons that lets them choose the next screen in the simulation. I usually make helper screens with different background colors or fonts to emphasize that they won't be in the final application. In this approach, the simulated screens don't have to change, and we can support much more complex interactions with minimal duplication.<br /></li></ol>We could also extend the existing "jump to" capability in Lucid Spec to include some sort of selection logic that can use widget data values to determine the next screen. Once again, the slippery slope towards Visual Basic. Furthermore, we're trying to fix defects and make other enhancements, so we might not get to this right away.<br /><br />If you have other ideas, or more reasons why we should enhance simulation logic sooner rather than later, please let us know!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-114082193694047015?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Clif Kussmaulhttp://www.blogger.com/profile/07068397192359176014noreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-1139715091529678312006-02-14T11:30:00.000-05:002006-02-14T11:49:43.280-05:00The low fidelity non-feature in Lucid SpecI'm a big fan of the book <a href="http://www.amazon.com/gp/product/1558608702/sr=8-1/qid=1139783634/ref=pd_bbs_1/104-7389052-8753523?%5Fencoding=UTF8">Paper Prototyping</a> by Carolyn Snyder. The book discusses how to create low fidelity (crude black and white) paper prototypes and then use the prototypes to get useful user feedback to better understand requirements and general usability. Joel of <a href="http://www.joelonsoftware.com">Joel On Software</a> has said similar things about creating low fidelity functional specifications to flesh out design and usability issues. The basic idea is that low fidelity prototypes help users focus on how something is supposed to work rather than on whether something is pretty. You may have been in design meetings where users become focused on the color of a widget instead of whether that widget provides the necessary functionality. I know I have.<br /><br />Therefore, I assumed that many users of Lucid Spec would request a low fidelity option to automatically morph all screens into a simple black and white style. I assumed wrong. In fact, not one user has requested this feature. I'm not really sure why this is. Are low fidelity prototypes something that you should do, but don't? Do people that create low fidelity prototypes only use paper? It remains a mystery to me.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-113971509152967831?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-1138373346522884422006-02-06T09:04:00.000-05:002006-02-12T03:17:12.786-05:00Creating Lucid Spec documents for existing applicationsI spent several hours using Lucid Spec to explore possible enhancements to an existing application, and I'd like to describe some of the issues I encountered and how I approached them.<br /><br />The application's user interface is similar to Outlook and other apps. There's a menu bar and tool bars across the top, a tree-like menu down the left side, and the remainder of the window contains a panel or a set of panels. The application performs complex, multi-step mappings, and I wanted to explore ways to help users visualize the steps and their contents. I didn't need to reproduce the entire application in Lucid Spec, but I did need to be able to simulate many of the key panels. I considered several approaches.<br /><br />First, I could focus only on the parts of the app directly related to my goal of visualizing steps, and simply ignore everything else. This "low res" approach is a bit like paper prototyping. However, some of the people who would be looking at the spec might be confused by the visual differences - my quick low res mockup wouldn't look much like their familiar application.<br /><br />Second, I could try to replicate large parts of the app in Lucid Spec, so that my mockup would look more like the actual application. Given the number of menu and toolbar items, and the complexity of many of the panels in the application, this would be difficult and time consuming, even if I didn't try to match all of the colors, styles, and fonts. This approach might make more sense if we were planning a complete GUI redesign, but it seemed like overkill for my more limited goals.<br /><br />As usual, truth and beauty lie somewhere between the two extremes. I wanted something visually similar to the original app, but which would allow me to focus my time and attention on a few key pieces. This led to a third approach, which worked pretty well. I captured screenshots of the app (with <a href="http://www.techsmith.com/snagit.asp">SnagIt</a>), imported them into LucidSpec, positioned transparent rectangles over the widgets that I needed to link to other screens in the short term, and then added new screens and widgets for new functionality. No problem!<br /><br />Actually, it did take some work. All of my screenshots shared a menu bar and tool bars, and many also shared the menu on the left side of the screen. So first, I used SnagIt to remove the content panel from a screenshot (leaving the window frame, menu bar, and tool bars), and used that as the background image for a master screen in Lucid Spec. Second, I trimmed a screenshot so that it contained only the left menu, and inserted it as an image in a second master screen, based on the first. I then trimmed the other screenshots to show only the relevant panels, and inserted each as an image in a new screen, based on one of the first two master screens. Once I had all of the screens I needed, I went back to the master screens and added transparent rectangle widgets over the key controls, and linked them to the appropriate screens. I could now simulate the original flow between screens &amp; panels! Using this as a basis, I started experimenting with other ways of presenting the steps and their contents.<br /><br />I found myself wanting a callout or postit note widget that I could use to annotate the original screenshots.<br />One more thing for the future feature list for Lucid Spec, I suppose.<br /><br />In the future, we might try to make this sort of project easier to accomplish in Lucid Spec. If this is something you need or would really like to see, or if you want to suggest possible approaches, please let us know!<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-113837334652288442?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Clif Kussmaulhttp://www.blogger.com/profile/07068397192359176014noreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-1138243314019725832006-01-31T15:32:00.000-05:002006-01-31T15:01:31.410-05:00Is Visual Basic destined to fade away?I'm bound to get in trouble for this post, but I'm going to try anyway. I believe that Visual Basic (VB) is destined to slowly fade away. Please bear with me while I explain my logic. My logic is based on market forces - it has nothing to do with the power of the VB language or my opinion of it.<br /><br />Special Note to VB Programmers: For the record, I admit that I'm primarily a C# programmer, but please don't come to my house and lynch me for what I'm about to say. Thanks!<br /><br />Historically, VB was created by Microsoft to make it easier to create Windows desktop applications. VB made it possible for both developers and non-developers to create new application that wouldn't have been able to do the work in C/C++ (the main alternative when the VB development environment launched). VB was nicely differentiated from C/C++; it wasn't as powerful as C/C++, but it was much easier and faster to use. Even C/C++ developers (who were usually language bigots) also used VB to create application prototypes.<br /><br />Today, Microsoft (MS) has VB.Net and C# which are both based on the .Net Framework. VB developers switched to VB.Net and C++/C developers switched to C#. Both languages have the same underlying power and complexity because they are based on the same framework. In fact, VB.Net and C# are semantically equivalent; they only differ by syntax (and products like <a href="http://www.elegancetech.com/csvb.aspx">C-Sharpener For VB</a> can convert between them). The differentiation between the two languages has disappeared.<br /><br />The question is what language does a new developer choose to do desktop and web development on Windows? I think he or she will choose C# for two reasons. The first reason is that most new developers are learning Java in school which is syntatically similar to C#. It is an easier transition. The second reason is that most commercial development is done on Linux or Windows. Java is normally used for Linux and C# is used for Windows. A new developer would like to have some career flexibility. It is easier to keep both Java and C# in your head than Java and VB. Therefore, the new developer is more likely to pick C# than VB to maximize his career options.<br /><br />As new developers choose C# over VB, the number of VB developers will slowly decline and VB will fade away.<br /><br />Uhoh, I think I hear some VB programmers banging on my door; I have to go now. :)<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-113824331401972583?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-1138370674533855882006-01-27T08:32:00.000-05:002006-01-27T10:26:57.333-05:00How to get user feedback in Lucid Spec Player?The free Lucid Spec Player allows the <span style="font-weight: bold;">authors </span>of a Lucid Spec document to share it with other people (clients, colleagues, sub-constractors, etc - I'll call them all <span style="font-weight: bold;">reviewers</span>) who don't have the full Lucid Spec application. (Of course, we hope some of the reviewers will decide to get full copies of Lucid Spec...) The main reason to review the spec is to get feedback, and we've been thinking about different ways to capture feedback.<br /><br />The most obvious approach is for the authors to sit with reviewers and watch them explore the spec. They can ask each other questions, clarify vague requirements or features, and brainstorm possible changes. This is easiest if everyone is in the same room, but can also work via web conferencing tools like <a href="http://www.webex.com">Webex </a>or <a href="http://www.festooninc.com/">Festoon</a>.<br /><br />Another approach is for the reviewers to write down comments and questions, and email them to the authors. We've gotten a lot of great feedback in this format for Lucid Spec, and we log it all in <a href="http://www.edgewall.com/trac/">Trac</a>. It takes a bit longer, and may disrupt the flow of simulating the application, especially if the reviewers have to wait for the authors to respond to questions.<br /><br />We're thinking about ways that Lucid Spec (and especially the Player) could simplify this process. For example, Lucid Spec could generate feedback templates based on the document structure, so that reviewers could more easily comment on the spec, or even assign numerical ratings to specific pieces. Lucid Spec could also provide a way for reviewers to enter comments for each screen (perhaps with something like the Details panel), and an easy way to send those comments back to the authors, probably via email. We could also track the sequence of screens that reviewers examine (like the logs for web server), which could help the author understand what parts of the simulation attract the most attention.<br /><br />In my experience, one of the best ways to improve a design is with rapid feedback and improvement. To quote <a href="http://www.tompeters.com/">Tom Peters</a>: "test fast, fail fast, adjust fast". We'll continue to add features to Lucid Spec to make it easier to create and modify specifications, but we also need to find better ways to capture and use feedback.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-113837067453385588?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Clif Kussmaulhttp://www.blogger.com/profile/07068397192359176014noreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-1137785445032192302006-01-20T14:28:00.000-05:002006-01-20T14:30:45.043-05:00Lucid Spec 1.1.0 ReleasedWe have released version 1.1.0 of Lucid Spec. This version contains an improved ability to configure the Grid and many bug fixes.<br /><br />This is the first commercial release and we want to thank everybody that participated in beta testing. The feedback that we received was invaluable.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-113778544503219230?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com0tag:blogger.com,1999:blog-20980285.post-1137259940055312802006-01-14T12:28:00.000-05:002006-01-14T18:38:42.746-05:00WelcomeWelcome to the <a href="http://www.elegancetech.com">Elegance Technologies</a> corporate blog. We will post here several times per month and discuss new product releases, tips, and general topics on software development.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20980285-113725994005531280?l=www.elegancetech.com%2Fblog%2Findex.html'/></div>Roger | A Content Lifenoreply@blogger.com0