Developer Notebook Bloghttp://daveweaver.net/(none)en-usFri, 09 Nov 2007 14:50:04 GMTConnectServer Sites 1.8.5223.2david.weaver@missionresearch.comdavid.weaver@missionresearch.comhttp://daveweaver.net/notebook,trackback,InnovationFeatureCreepAndOpenSourcehttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,InnovationFeatureCreepAndOpenSourcehttp://daveweaver.net/notebook,commentview,InnovationFeatureCreepAndOpenSourcehttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a00596fa-2f0e-49e2-8201-cdfae5c977fe

imageHere's a very interesting interview of Jason Fried (of 37signals) by Walt Mossberg. It's from a conference on innovation in business. Jason explains how 37signals' business model helps them avoid the pressures of feature creep and how that makes his product a success. He emphasizes the use of the word "No" in developing software and trying to please everyone is the road to mediocrity. He comes up with a fitting analogy using Italian restaurants, but you'll have to watch the interview to hear it. The interview goes on to examine how feature creep affects the success of open source.

Innovation, Feature Creep and Open Sourcehttp://daveweaver.net/notebook,permalink,InnovationFeatureCreepAndOpenSourcehttp://daveweaver.net/notebook,permalink,InnovationFeatureCreepAndOpenSourceFri, 09 Nov 2007 14:50:04 GMT<p><a href="http://www.businessinnovationfactory.com/innovationstorystudio/bif3_jfried.php" target="_blank"><img style="border-right: 0px; border-top: 0px; margin: 0px 0px 20px; border-left: 0px; border-bottom: 0px" height="231" alt="image" src="http://daveweaver.net/media/blog/WindowsLiveWriter/InnovationFeatureCreepandOpenSource_89CC/image_3.png" width="433" border="0"></a> <a title="Interview with Jason Fried" href="http://www.businessinnovationfactory.com/innovationstorystudio/bif3_jfried.php" target="_blank">Here's a very interesting interview</a> of Jason Fried (of 37signals) by Walt Mossberg. It's from a conference on innovation in business. Jason explains how 37signals' business model helps them avoid the pressures of feature creep and how that makes his product a success. He emphasizes the use of the word "No" in developing software and trying to please everyone is the road to mediocrity. He comes up with a fitting analogy using Italian restaurants, but you'll have to watch the interview to hear it. The interview goes on to examine how feature creep affects the success of open source. </p>http://daveweaver.net/notebook,commentview,InnovationFeatureCreepAndOpenSourcedesign;programming
http://daveweaver.net/notebook,trackback,TextEffectsUsingPhotoshophttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,TextEffectsUsingPhotoshophttp://daveweaver.net/notebook,commentview,TextEffectsUsingPhotoshophttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=081abb57-3d69-4332-aba9-ddcf5ba3160e

image The PhotoshopRoadmap.com website has put together a collection of techniques that can be applied to text in Photoshop. Some nice ones and then some that will make you gag, but it's a good display of effects that can be accomplished in the program.

Link to article

Text Effects Using Photoshophttp://daveweaver.net/notebook,permalink,TextEffectsUsingPhotoshophttp://daveweaver.net/notebook,permalink,TextEffectsUsingPhotoshopThu, 09 Aug 2007 13:10:35 GMT<p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/TextEffectsUsingPhotoshop_8109/image.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; margin: 0px 20px 20px 0px; border-left: 0px; border-bottom: 0px" height="160" alt="image" src="http://daveweaver.net/media/blog/WindowsLiveWriter/TextEffectsUsingPhotoshop_8109/image_thumb.png" width="240" align="left" border="0"></a> The <a title="Photoshop Roadmap" href="http://www.photoshoproadmap.com" target="_blank">PhotoshopRoadmap.com</a> website has put together a collection of techniques that can be applied to text in Photoshop. Some nice ones and then some that will make you gag, but it's a good display of effects that can be accomplished in the program. </p> <p><a title="photoshop text effects" href="http://www.photoshoproadmap.com/Photoshop-blog/2007/07/22/the-best-80-photoshop-text-effects-on-the-web/" target="_blank">Link to article</a> </p>http://daveweaver.net/notebook,commentview,TextEffectsUsingPhotoshopdesign;web
http://daveweaver.net/notebook,trackback,UsingWPFEInAProductDemohttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,UsingWPFEInAProductDemohttp://daveweaver.net/notebook,commentview,UsingWPFEInAProductDemohttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=51a0d0c5-0e30-47bb-a1f8-8437fc634643

I have been evaluating WPF/E for add-ins to my company's products. One screen we have been thinking about for a while is a lead pipeline that shows lead stages in a graphical way. Our products leverage IE for the presentation layer and it is tough to do a compelling pipeline with just DHTML.

 

WPF/E brings a lot to the table. First of all it is very easy to incorporate into our screens, I simply insert the control code and link in the aghost.js file. It also enables us to easily separate the markup from the script. The HTML file orchestrates the screen while the script and XAML reside in separate files. I also like the division of labor. As shown in these screenshots I've coded the pipeline screen as a segmented pipe along the top of the screen. As the developer I just created simple XAML objects that represented the different elements of the pipeline, nothing too fancy. I then hook up my script to control click-thrus and mouse-overs (the second screen shows how the mouse-over affects the pipeline). In production I would then had the XAML source over to a designer and they would take my rudimentary design and create something beautiful from it. They'd send me the updated XAML file and I just insert back into the development tree and everything should still work with changes. In this case I was the designer too, but you should start to see how this should make development easier.

 

Another thing that I experimented with was trying to use the same XAML objects and provide an entirely different look and feel for the screen. The final screen shot shows how that turned out. This pipeline demo is very simple, but it starts to paint a picture of how WPF and WPF/E can be used in software. I can imagine that things are not quite as simple when more complex functionality is needed. When trying to change the pipeline into a vertical funnel, I did have to adjust some of my code to make it work.

 

I did try to use Microsoft's new Expression Design application to create the XAML I used in this demo. I designed the circular pipeline segments and exported them as WPF/E XAML code. That sort of worked, but It generated everything as complex paths and was hard to modify by hand. By the time I had finished the demo, I ended up starting from scratch with the XAML objects. Still, the tools are great and they look very promising.  

Using WPF/E In A Product Demohttp://daveweaver.net/notebook,permalink,UsingWPFEInAProductDemohttp://daveweaver.net/notebook,permalink,UsingWPFEInAProductDemoWed, 31 Jan 2007 19:29:20 GMT<p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/UsingWPFEInAProductDemo_9DAD/image04.png" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 20px 20px; border-right-width: 0px" height="180" src="http://daveweaver.net/media/blog/WindowsLiveWriter/UsingWPFEInAProductDemo_9DAD/image0_thumb2.png" width="240" align="right" border="0"></a>I have been evaluating WPF/E for add-ins to my company's products. One screen we have been thinking about for a while is a lead pipeline that shows lead stages in a graphical way. Our products leverage IE for the presentation layer and&nbsp;it is&nbsp;tough to do a compelling pipeline with just DHTML. </p> <p>&nbsp; </p> <p><a title="Getting Started with WPF/E" href="http://msdn2.microsoft.com/en-gb/library/bb190632.aspx" target="_blank">WPF/E brings a lot to the table</a>. First of all it is very easy to incorporate into our screens, I simply insert the control code and link in the aghost.js file. It also enables us to easily separate the markup from the script. The HTML file orchestrates the screen while the script and XAML reside in separate files. I also like the division of labor. As shown in these screenshots I've coded the pipeline screen as a segmented pipe along the top of the screen. <a href="http://daveweaver.net/media/blog/WindowsLiveWriter/UsingWPFEInAProductDemo_9DAD/image015.png" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 20px 0px 20px 20px; border-right-width: 0px" height="180" src="http://daveweaver.net/media/blog/WindowsLiveWriter/UsingWPFEInAProductDemo_9DAD/image0_thumb7.png" width="240" align="right" border="0"></a>As the developer I just created simple XAML objects that represented the different elements of the pipeline, nothing too fancy. I then hook up my script to control click-thrus and mouse-overs (the second screen shows how the mouse-over affects the pipeline). In production I would then had the XAML source over to a designer and they would take my rudimentary design and create something beautiful from it. They'd send me the updated XAML file and I just insert back into the development tree and everything should still work with changes. In this case I was the designer too, but you should start to see how this should make development easier. </p> <p>&nbsp; </p> <p>Another thing that I experimented with was trying to use the same XAML objects and provide an entirely different look and feel for the screen. The final screen shot shows how that turned out. This pipeline demo is very simple, but&nbsp;it starts to paint a picture of how WPF and WPF/E can be used in software. I can imagine that things are not quite as simple when more complex functionality is needed. When trying to change the pipeline into a vertical funnel, I did have to adjust some of my code to make it work.<a href="http://daveweaver.net/media/blog/WindowsLiveWriter/UsingWPFEInAProductDemo_9DAD/image018.png" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 20px 0px 20px 20px; border-right-width: 0px" height="180" src="http://daveweaver.net/media/blog/WindowsLiveWriter/UsingWPFEInAProductDemo_9DAD/image0_thumb8.png" width="240" align="right" border="0"></a> </p> <p>&nbsp; </p> <p>I did try to use <a title="Microsoft Expression Design" href="http://www.microsoft.com/products/expression/" target="_blank">Microsoft's new Expression Design application</a> to create the XAML I used in this demo. I designed the circular pipeline segments and <a title="Export WPF/E XAML from Expression Design" href="http://daveweaver.net/notebook,permalink,ExportWPFECompatibleXAMLUsingExpressionDesign">exported them as WPF/E XAML code</a>. That sort of worked, but It generated everything as complex paths and was hard to modify by hand.&nbsp;By the time I had finished the demo, I ended up starting from scratch with the XAML objects.&nbsp;Still, the tools are great and they look very promising. &nbsp; </p>http://daveweaver.net/notebook,commentview,UsingWPFEInAProductDemodesign;desktop;programming;tools;web
http://daveweaver.net/notebook,trackback,ExportWPFECompatibleXAMLUsingExpressionDesignhttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,ExportWPFECompatibleXAMLUsingExpressionDesignhttp://daveweaver.net/notebook,commentview,ExportWPFECompatibleXAMLUsingExpressionDesignhttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=86b8382c-d0a2-412a-8ab2-211d3c0e198f

In my previous post I had only been using Expression Blend and wasn't able to figure out how to get it to generate content for WPF/E. It turns out that only Expression Design can export WPF/E compatible content (thanks ADO Guy).

If you download and install Expression Design, you can create vector-based elements to include in your WPF/E-based web pages. Expression Design is very similar to Adobe Illustrator. Once you've completed your design, click on File>Export>XAML. This will prompt you for a filename then it brings up a XAML Export window like the one on the right. If you select the Document Format dropdown you can select the WPF/E format. I've tried a couple simple tests that displayed correctly in WPF/E Pad.

This is a good step and may be all we need, however I was expecting this same type of functionality with all the Expression tools. Is that coming?

Export WPF/E Compatible XAML Using Expression Designhttp://daveweaver.net/notebook,permalink,ExportWPFECompatibleXAMLUsingExpressionDesignhttp://daveweaver.net/notebook,permalink,ExportWPFECompatibleXAMLUsingExpressionDesignTue, 02 Jan 2007 15:44:59 GMT<p>In my previous post I had only been using Expression Blend and wasn't able to figure out how to get it to generate content for WPF/E. It turns out that only <a title="Download: Microsoft Expression Design December 2006 CTP" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=112D7906-CA5C-43A4-A9FD-C4E2DCA6DD1C&amp;displaylang=en" target="_blank">Expression Design</a> can export WPF/E compatible content (<a title="ADO Guy: Codename &quot;WPF/E&quot; and Expression Toolset" href="http://adoguy.com/viewrant.aspx?id=2144" target="_blank">thanks ADO Guy</a>). </p> <p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/ExportWPFECompatibleXAMLUsingExpressionD_9728/image%7B0%7D%5B5%5D.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; margin: 0px 0px 20px 20px; border-left: 0px; border-bottom: 0px" height="240" src="http://daveweaver.net/media/blog/WindowsLiveWriter/ExportWPFECompatibleXAMLUsingExpressionD_9728/image%7B0%7D_thumb%5B1%5D.png" width="178" align="right" border="0"></a> If you download and install Expression Design, you can create vector-based elements to include in your WPF/E-based web pages. Expression Design is very similar to Adobe Illustrator. Once you've completed your design, click on File&gt;Export&gt;XAML. This will prompt you for a filename then it brings up a XAML Export window like the one on the right. If you select the Document Format dropdown you can select the WPF/E format. I've tried a couple simple tests that displayed correctly in WPF/E Pad. </p> <p>This is a good step and may be all we need, however I was expecting this same type of functionality with all the Expression tools. Is that coming? </p>http://daveweaver.net/notebook,commentview,ExportWPFECompatibleXAMLUsingExpressionDesigndesign;programming;web
http://daveweaver.net/notebook,trackback,GettingStartedWithWPFEhttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,GettingStartedWithWPFEhttp://daveweaver.net/notebook,commentview,GettingStartedWithWPFEhttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=945c7be7-3814-46ae-a427-8c564a7d4213

WPF/E Example AppI first crossed paths with Windows Presentation Foundation/Everywhere (WPF/E) on Mike Harsh's blog post about the Mix '06 event in March of 2006. I knew about XAML and where Microsoft was going with their presentation layer tools, but our company creates mass-market desktop software that doesn't utilize the .Net Framework yet. This meant any XAML or WPF was off limits for us. That is until MS announced WPF/E.

In Mike Harsh's words "(WPF/E) is a cross-platform, cross-browser web technology that supports a subset of WPF XAML.  WPF/E also has a friction-free install model and the download size we’re targeting is very small.  WPF/E supports programmability through JavaScript for tight browser integration.  The WPF/E package also contains a small, cross platform subset of the CLR and .NET Framework that can run C# or VB.NET code."

So XAML and WPF can now be hosted in Internet Explorer. Since my company's desktop applications host IE for the presentation layer, then our presentation layer can take advantage of XAML and WPF. Unfortunately there was not much to be heard of WPF/E since March, but this month MS released a CTP of WPF/E.

 

where to get started

Probably the best place to get started is the WPF/E Dev Center on MSDN. Download and install the SDK so you can start trying the examples. The Dev Center has a few that you can look at. Mike harsh has also built a cool little application that let's you test your XAML code, called WPF/E Pad. Once you have the SDK installed you can run the WPF/E Pad and try some of the built in examples. After you get a feel for what can be done try entering some of your own XAML. Try copying and pasting the source from below into the bottom panel of WPF/E Pad and clicking the Load button.

 

<Canvasxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"x:Name="_037_bugs_logo"Width="1056"Height="816"><EllipseHeight="200"Width="200"Canvas.Left="30"Canvas.Top="30"Stroke="Black"StrokeThickness="10"Fill="SlateBlue"/><RectangleHeight="100"Width="100"Canvas.Left="5"Canvas.Top="5"Stroke="Black"StrokeThickness="10"Fill="SlateBlue"/><LineX1="280"Y1="10"X2="10"Y2="280"Stroke="black"StrokeThickness="5"/></Canvas>

 

You should end up with something like the screenshot to the left. The XAML creates an ellipse, a rectange and a line. This is not a very compelling example (it was taken from the MS SDK download) but it gives you something to start with. What's nice about the technology is that it allows you to interact with the XAML code using JavaScript. So you can create a bunch of objects using the XAML markup and embed it in your web page, then use JavaScript to program those objects. For example you can attach events to the XAML objects (similar to DHTML) and handle those events in your JavaScript. WPF/E Pad doesn't support event handling at the moment, so you have to take the next step and create your own web page to test out event handling. Those steps are covered in detail within the WPF/E SDK.

 

what's next?

What makes all this really interesting is how Microsoft is backing up this technology with their development tools. They've recently released an entire suite of apps to generate, manage and debug XAML. Check out their Expression Suite. I think the development tools will be able to target WPF/E versus WPF at some point. Exciting stuff.

Getting Started With WPF/Ehttp://daveweaver.net/notebook,permalink,GettingStartedWithWPFEhttp://daveweaver.net/notebook,permalink,GettingStartedWithWPFEThu, 28 Dec 2006 15:23:35 GMT<p><img style="margin: 0px 0px 20px 20px" alt="WPF/E Example App" src="http://static.flickr.com/37/116850754_f9628b295d_m.jpg" align="right" border="0" minmax_bound="true">I first crossed paths with <a title="Windows Presentation Foundation/Everywhere" href="http://msdn2.microsoft.com/en-us/asp.net/bb187358.aspx" target="_blank">Windows Presentation Foundation/Everywhere</a> (WPF/E) on <a title="WPF/E at Mix '06" href="http://blogs.msdn.com/mharsh/archive/2006/03/23/559106.aspx" target="_blank">Mike Harsh's blog post</a> about the Mix '06 event in March of 2006. I knew about XAML and where Microsoft was going with their presentation layer tools, but our company creates mass-market desktop software that doesn't utilize the .Net Framework yet. This meant any <a title="XAML Overview from MSDN" href="http://msdn2.microsoft.com/en-us/library/ms752059.aspx" target="_blank">XAML</a> or <a title="Windows Presentation Foundation" href="http://wpf.netfx3.com/" target="_blank">WPF</a> was off limits for us. That is until MS announced WPF/E. </p> <blockquote> <p>In Mike Harsh's words "(WPF/E) is a cross-platform, cross-browser web technology that supports a subset of WPF XAML.&nbsp; WPF/E also has a friction-free install model and the download size we’re targeting is very small.&nbsp; WPF/E supports programmability through JavaScript for tight browser integration.&nbsp; The WPF/E package also contains a small, cross platform subset of the CLR and .NET Framework that can run C# or VB.NET code." </p></blockquote> <p>So&nbsp;XAML and WPF can now be hosted in Internet Explorer. Since&nbsp;my company's&nbsp;desktop applications host IE for the presentation layer, then our presentation layer can take advantage of XAML and WPF. Unfortunately there was not much to be heard of WPF/E since March, but this month <a title="Download WPF/E December CTP" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=2B01EC7E-C3B8-47CC-B12A-67C30191C3AA&amp;displaylang=en" target="_blank">MS released a CTP of WPF/E</a>. </p> <p>&nbsp; </p> <p><strong>where to get started</strong> </p> <p>Probably the best place to get started is the <a title="WPF/E Dev Center" href="http://msdn2.microsoft.com/en-us/asp.net/bb187358.aspx" target="_blank">WPF/E Dev Center</a> on MSDN. Download and install the SDK so you can start trying the examples. The Dev Center has a few that you can look at. Mike harsh has also built a cool little application that let's you test your XAML code, called <a title="WPF/E Pad" href="http://www.simplegeek.com/mharsh/wpfepad/" target="_blank">WPF/E Pad</a>. Once you have the SDK installed you can run the&nbsp;WPF/E Pad and try some of the built in examples. After you get a feel for what can be done try entering some of your own XAML. Try copying and pasting the source from below into the bottom panel of WPF/E Pad and clicking the Load button. </p> <p>&nbsp; </p><pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">Canvas</span> <span class="attr">xmlns</span><span class="kwrd">="http://schemas.microsoft.com/winfx/2006/xaml/presentation"</span> <span class="attr">xmlns:x</span><span class="kwrd">="http://schemas.microsoft.com/winfx/2006/xaml"</span> <span class="attr">x:Name</span><span class="kwrd">="_037_bugs_logo"</span> <span class="attr">Width</span><span class="kwrd">="1056"</span> <span class="attr">Height</span><span class="kwrd">="816"</span><span class="kwrd">&gt;</span> <span class="kwrd">&lt;</span><span class="html">Ellipse</span> <span class="attr">Height</span><span class="kwrd">="200"</span> <span class="attr">Width</span><span class="kwrd">="200"</span> <span class="attr">Canvas</span>.<span class="attr">Left</span><span class="kwrd">="30"</span> <span class="attr">Canvas</span>.<span class="attr">Top</span><span class="kwrd">="30"</span> <span class="attr">Stroke</span><span class="kwrd">="Black"</span> <span class="attr">StrokeThickness</span><span class="kwrd">="10"</span> <span class="attr">Fill</span><span class="kwrd">="SlateBlue"</span><span class="kwrd">/&gt;</span> <span class="kwrd">&lt;</span><span class="html">Rectangle</span> <span class="attr">Height</span><span class="kwrd">="100"</span> <span class="attr">Width</span><span class="kwrd">="100"</span> <span class="attr">Canvas</span>.<span class="attr">Left</span><span class="kwrd">="5"</span> <span class="attr">Canvas</span>.<span class="attr">Top</span><span class="kwrd">="5"</span> <span class="attr">Stroke</span><span class="kwrd">="Black"</span> <span class="attr">StrokeThickness</span><span class="kwrd">="10"</span> <span class="attr">Fill</span><span class="kwrd">="SlateBlue"</span><span class="kwrd">/&gt;</span> <span class="kwrd">&lt;</span><span class="html">Line</span> <span class="attr">X1</span><span class="kwrd">="280"</span> <span class="attr">Y1</span><span class="kwrd">="10"</span> <span class="attr">X2</span><span class="kwrd">="10"</span> <span class="attr">Y2</span><span class="kwrd">="280"</span> <span class="attr">Stroke</span><span class="kwrd">="black"</span> <span class="attr">StrokeThickness</span><span class="kwrd">="5"</span><span class="kwrd">/&gt;</span> <span class="kwrd">&lt;/</span><span class="html">Canvas</span><span class="kwrd">&gt;</span></pre> <p>&nbsp; </p> <p><a href="http://daveweaver.net/media/blog/WindowsLiveWriter/GettingStartedWithWPFE_8284/image%7B0%7D%5B2%5D.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; margin: 0px 20px 20px 0px; border-left: 0px; border-bottom: 0px" height="143" src="http://daveweaver.net/media/blog/WindowsLiveWriter/GettingStartedWithWPFE_8284/image%7B0%7D_thumb.png" width="240" align="left" border="0"></a>You should end up with something like the screenshot to the left. The XAML creates an ellipse, a rectange and a line. This is not a very compelling example (it was taken from the MS SDK download) but it gives you something to start with. What's nice about the technology is that it allows you to interact with the XAML code using JavaScript. So you can create a bunch of objects using the XAML markup and embed it in your web page, then use JavaScript to program those objects. For example you can attach events to the XAML objects (similar to DHTML) and handle those events in your JavaScript. WPF/E Pad doesn't support event handling at the moment, so you have to take the next step and create your own web page to test out event handling. Those steps are covered in detail within the WPF/E SDK. </p> <p>&nbsp; </p> <p><strong>what's next?</strong> </p> <p>What makes all this really interesting is how Microsoft is backing up this technology with their development tools. They've recently released an entire suite of apps to generate, manage and debug XAML. Check out their <a title="Microsoft Expression Suite" href="http://www.microsoft.com/products/expression/en/default.mspx" target="_blank">Expression Suite</a>. I think the development tools will be able to target WPF/E versus WPF at some point. Exciting stuff. </p>http://daveweaver.net/notebook,commentview,GettingStartedWithWPFEdesign;desktop;programming;web
http://daveweaver.net/notebook,trackback,SoftwareDesignLockUpYourCustomershttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,SoftwareDesignLockUpYourCustomershttp://daveweaver.net/notebook,commentview,SoftwareDesignLockUpYourCustomershttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b852c3e2-9760-459e-a469-f57996b09c28

Mission Research is a growing, startup company. We do not have an abundance of resources to be throwing at our products and for that reason we are always looking at ways to provide more value to our customers with fewer resources. I'd say we do very well given our constraints, but we can always do better.

Our products are the result of a series of well defined projects. We start out in an Envisioning stage where we define the concept and requirements of the project. Once the concept and requirements are "approved" the project enters the Planning stage. The Planning stage is where the project is defined and a schedule is created. This has historically been the toughest stage of our product cycles.

One of the areas we have been struggling with is figuring out the best way to get a feature or idea from conception to an appropriate level of definition so it can be turned over to our development team. It always seems to take longer than it should and just doesn't feel right. There is always a question about how detailed the functional specifications need to be. We occasionally fall into the trap of going too deep or getting hung up on details that could wait to be figured out. In some cases we actually get so hung up with implementation and technical details that we lose site of what our customers want. In my experience, this tends to happen when developers are brought into the process too early or are even responsible for the designs themselves. I'm not saying that developers can't design software; I just think that they're too close to the code and their thinking is limited by what they perceive as technical limitations.

So I've been thinking lately about setting up some smaller milestones within the Planning stage to keep us on track and guide the definition process. In my mind, the first pass at defining the functionality should be free from technical limitations. Ideally, lock the product manager and designer in the room with a sample of customers and don't let them out until the customers have written a check for the idea based entirely on the high-level specification the designer has created for them. Now that will probably never happen, but the idea is to come up with something that totally meets the needs of the customer without someone standing over their shoulder telling them that what they designed is not possible. I'm not saying the initial design process is void of any logic, it has to make sense and be consistent across the design, but it shouldn't be constrained by what a "technical" person thinks is doable. Allow your designers to think outside the box. Because locking up your customers is not very feasible, what else can be done to create the same environment?

What if we made one of the first milestones in the Planning stage a presentation to the customer? Or if that isn't possible, your customer advocates-- sales, customer support and customer experience. This milestone would ideally occur before there is interaction with the development team. Now this may not be possible depending on your project, but it would be a good litmus test. If your designers are spending time with development before the Presentation Milestone then it should raise a red flag. In our company, a presentation would include some screenshots, a list of capabilities and examples of how the new features will be used. It should be detailed enough to give the audience a good overview. Each group should be evaluating the design from their areas of expertise. Can the support team support it? Can sales sell it? Does the design make sense and does it address the customer need? The Presentation Milestone is crossed when the design addresses all the holes revealed in the presentation.

Whether or not we actually inject that milestone into our product cycle or not, I think it's what the designers should be thinking in the first pass of designing the software. Another purpose of the milestone is to get the designers thinking across the entire functionality set before diving too deeply into the details of a specific function, going wide before going deep. It's very possible that a feature may be passed on once the full scope of the feature set is defined. Hopefully some of that wasted time can be avoided and the design process can be shortened.

Once that milestone is crossed, the designers are free to meet with development to figure out how to implement the design and how long it will take. Obviously some things won't be feasible for technical reasons, but the point is that the design should represent the ideal solution and that's the best place to start in my opinion.


Software Design: Lock Up Your Customershttp://daveweaver.net/notebook,permalink,SoftwareDesignLockUpYourCustomershttp://daveweaver.net/notebook,permalink,SoftwareDesignLockUpYourCustomersFri, 14 Apr 2006 23:33:53 GMT<p><a href="http://daveweaver.net/giftworks">Mission Research</a> is a growing, startup company. We do not have an abundance of resources to be throwing at our products and for that reason we are always looking at ways to provide more value to our customers with fewer resources. I'd say we do very well given our constraints, but we can always do better. </p> <p>Our products are the result of a series of well defined projects. We start out in an Envisioning stage where we define the concept and requirements of the project. Once the concept and requirements are "approved" the project enters the Planning stage. The Planning stage is where the project is defined and a schedule is created. This has historically been the toughest stage of our product cycles. </p> <p>One of the areas we have been struggling with is figuring out the best way to get a feature or idea from conception to an appropriate level of definition so it can be turned over to our development team. It always seems to take longer than it should and just doesn't feel right. There is always a question about how detailed the functional specifications need to be. We occasionally fall into the trap of going too deep or getting hung up on details that could wait to be figured out. In some cases we actually get so hung up with implementation and technical details that we lose site of what our customers want. In my experience, this tends to happen when developers are brought into the process too early or are even responsible for the designs themselves. I'm not saying that developers can't design software; I just think that they're too close to the code and their thinking is limited by what they perceive as technical limitations. </p> <p>So I've been thinking lately about setting up some smaller milestones within the Planning stage to keep us on track and guide the definition process. In my mind, the first pass at defining the functionality should be free from technical limitations. Ideally, lock the product manager and designer in the room with a sample of customers and don't let them out until the customers have written a check for the idea based entirely on the high-level specification the designer has created for them. Now that will probably never happen, but the idea is to come up with something that totally meets the needs of the customer without someone standing over their shoulder telling them that what they designed is not possible. I'm not saying the initial design process is void of any logic, it has to make sense and be consistent across the design, but it shouldn't be constrained by what a "technical" person thinks is doable. Allow your designers to think outside the box. Because locking up your customers is not very feasible, what else can be done to create the same environment? </p> <p>What if we made one of the first milestones in the Planning stage a presentation to the customer? Or if that isn't possible, your customer advocates-- sales, customer support and customer experience. This milestone would ideally occur before there is interaction with the development team. Now this may not be possible depending on your project, but it would be a good litmus test. If your designers are spending time with development before the Presentation Milestone then it should raise a red flag. In our company, a presentation would include some screenshots, a list of capabilities and examples of how the new features will be used. It should be detailed enough to give the audience a good overview. Each group should be evaluating the design from their areas of expertise. Can the support team support it? Can sales sell it? Does the design make sense and does it address the customer need? The Presentation Milestone is crossed when the design addresses all the holes revealed in the presentation. </p> <p>Whether or not we actually inject that milestone into our product cycle or not, I think it's what the designers should be thinking in the first pass of designing the software. Another purpose of the milestone is to get the designers thinking across the entire functionality set before diving too deeply into the details of a specific function, going wide before going deep. It's very possible that a feature may be passed on once the full scope of the feature set is defined. Hopefully some of that wasted time can be avoided and the design process can be shortened. </p> <p>Once that milestone is crossed, the designers are free to meet with development to figure out how to implement the design and how long it will take. Obviously some things won't be feasible for technical reasons, but the point is that the design should represent the ideal solution and that's the best place to start in my opinion. </p> <p> <br /> </p>http://daveweaver.net/notebook,commentview,SoftwareDesignLockUpYourCustomersdesign;programming
http://daveweaver.net/notebook,trackback,LightboxForPhotoOverlayshttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,LightboxForPhotoOverlayshttp://daveweaver.net/notebook,commentview,LightboxForPhotoOverlayshttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=351ce37c-e3a8-49d8-893e-e7411f745b40

I've run across a neat little script that makes popping up fullsize images from a thumbnail very simple and elegant. I liked it so much that I've integrated the script into this website framework for any images posted to the blog pages. Here's an example:

disney-world.jpg

Integrating it into your own website is very simple too.

Lightbox for photo overlayshttp://daveweaver.net/notebook,permalink,LightboxForPhotoOverlayshttp://daveweaver.net/notebook,permalink,LightboxForPhotoOverlaysTue, 10 Jan 2006 17:06:10 GMT<p>I've run across a <a href="http://www.huddletogether.com/projects/lightbox/" title="Lightbox">neat little script</a> that makes popping up fullsize images from a thumbnail very simple and elegant. I liked it so much that I've integrated the script into this website framework for any images posted to the blog pages. Here's an example: </p> <p><a href="http://daveweaver.net/media/blog/113691288190.jpg"><img src="http://daveweaver.net/media/blog/113691288190_tn.jpg" alt="disney-world.jpg" border="0" id="113691288190.jpg" title="disney-world.jpg" /></a> </p> <p>Integrating it into your own website is very simple too. </p>http://daveweaver.net/notebook,commentview,LightboxForPhotoOverlayscss;design;tools;web
http://daveweaver.net/notebook,trackback,HowToImplementCoolCSSBoxShadowshttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,HowToImplementCoolCSSBoxShadowshttp://daveweaver.net/notebook,commentview,HowToImplementCoolCSSBoxShadowshttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=2bef9501-9421-4fbf-8dd3-02e1050019fe

Until the box shadow CSS property is implemented, this is a great way to make cool looking shadows around HTML elements on your site. http://theshapeofdays.com/2005/11/my_contribution.html

How to Implement Cool CSS Box Shadows http://daveweaver.net/notebook,permalink,HowToImplementCoolCSSBoxShadowshttp://daveweaver.net/notebook,permalink,HowToImplementCoolCSSBoxShadowsSun, 18 Dec 2005 21:04:42 GMT<p>Until the box shadow CSS property is implemented, this is a great way to make cool looking shadows around HTML elements on your site. <a href="http://theshapeofdays.com/2005/11/my_contribution.html">http://theshapeofdays.com/2005/11/my_contribution.html</a> </p>http://daveweaver.net/notebook,commentview,HowToImplementCoolCSSBoxShadowscss;design;web
http://daveweaver.net/notebook,trackback,6500FreeTrueTypeFontshttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,6500FreeTrueTypeFontshttp://daveweaver.net/notebook,commentview,6500FreeTrueTypeFontshttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=7f97adca-3d93-44bc-8976-e09bf370342c

This site has 6500 free TrueType (TTF) fonts. These are fonts you can download to your computer and use for free. There are some very nice ones in here and being part of a desktop software dev team, I think some of these may be used to produce more usable software. What fonts do you like?

6500 Free TrueType Fontshttp://daveweaver.net/notebook,permalink,6500FreeTrueTypeFontshttp://daveweaver.net/notebook,permalink,6500FreeTrueTypeFontsSun, 18 Dec 2005 20:58:46 GMT<p><a href="http://www.webpagepublicity.com/free-fonts.html">This site</a> has 6500 free TrueType (TTF) fonts. These are fonts you can download to your computer and use for free. There are some very nice ones in here and being part of a desktop software dev team, I think some of these may be used to produce more usable software. What fonts do you like? </p>http://daveweaver.net/notebook,commentview,6500FreeTrueTypeFontsdesign;desktop
http://daveweaver.net/notebook,trackback,FreeCSSNavigationTabDesignshttp://daveweaver.net/pingback.aspxhttp://daveweaver.net/notebook,permalink,FreeCSSNavigationTabDesignshttp://daveweaver.net/notebook,commentview,FreeCSSNavigationTabDesignshttp://daveweaver.net/SyndicationService.asmx/GetEntryCommentsRss?guid=5ea5e7ae-1e56-421c-9da3-dfeeec60aadf

Exploding Boy has put together a selection of free CSS tab designs that may come in handy as we are creating a library of designs for our GiftWorks hosted websites.

Free CSS Navigation Tab Designshttp://daveweaver.net/notebook,permalink,FreeCSSNavigationTabDesignshttp://daveweaver.net/notebook,permalink,FreeCSSNavigationTabDesignsSat, 17 Dec 2005 19:16:26 GMT<p><a href="http://www.exploding-boy.com/">Exploding Boy</a> has put together a selection of <a href="http://www.exploding-boy.com/2005/12/15/free-css-navigation-designs/">free CSS tab designs</a> that may come in handy as we are creating a library of designs for our GiftWorks hosted websites. </p>http://daveweaver.net/notebook,commentview,FreeCSSNavigationTabDesignscss;design;web