<?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>PANESAR.net &#187; Design</title>
	<atom:link href="http://www.panesar.net/category/development/design/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.panesar.net</link>
	<description>Making the world a better place with ColdFusion, Web Startup, and Software</description>
	<lastBuildDate>Wed, 07 Jul 2010 21:20:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Great Software Systems</title>
		<link>http://www.panesar.net/2010/01/02/great-software-systems/</link>
		<comments>http://www.panesar.net/2010/01/02/great-software-systems/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 19:21:20 +0000</pubDate>
		<dc:creator>Jas Panesar</dc:creator>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://www.panesar.net/?p=178</guid>
		<description><![CDATA[Happy New Year!
The past few weeks I&#8217;ve been thinking about how I&#8217;d like to continue to build in 2010.
Whether you are on the business side of technology, or the implementation side, there are some common elements to all projects no matter the viewpoint.
Great software systems:

Make users great. Make your users awesome at what they do [...]]]></description>
			<content:encoded><![CDATA[<p>Happy New Year!</p>
<p>The past few weeks I&#8217;ve been thinking about how I&#8217;d like to continue to build in 2010.</p>
<p>Whether you are on the business side of technology, or the implementation side, there are some common elements to all projects no matter the viewpoint.</p>
<p>Great software systems:</p>
<ul>
<li><strong>Make users great. </strong>Make your users awesome at what they do when they use your software.  If you don&#8217;t, you have a dud.</li>
<li><strong>Are mature.</strong> People manage the system, the system manages the details.    Immature: People make their own systems, manage their own details, nothing is connected, or consistent.</li>
<li><strong>Understand the data is the system: </strong>The data <strong>is</strong> the system to the end-user.  Not your software.  The software is merely packaging to the information they need.</li>
<li><strong>Understand the integrity of the data: </strong>What is the data. What does it mean.  What states does it exist in.  How does it interact with other data.  Why is this important?</li>
<li><strong>Keep the edge: </strong>Software is built around the competitive advantage of magnifying and fueling the existing best practices of &#8220;This is how we do it here&#8221;.  Don&#8217;t lose it by doing it your way.</li>
<li><strong>Are invisible</strong>: &#8220;Don&#8217;t make me think&#8221; when I use it.</li>
<li><strong>Self-Monitor</strong>: Bring things to my attention</li>
<li><strong>Master the Complex: </strong>It &#8217;s easy to make things complex.  It is hard to make complexity into something simple.  Understand that complexity is not the issue most of the time.  It&#8217;s confusion.</li>
</ul>
<p>Maybe this will become a growing list!  Add your own below!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.panesar.net/2010/01/02/great-software-systems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Impressions of ColdBox 3.0</title>
		<link>http://www.panesar.net/2009/12/19/impressions-of-coldbox-3/</link>
		<comments>http://www.panesar.net/2009/12/19/impressions-of-coldbox-3/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 19:31:32 +0000</pubDate>
		<dc:creator>Jas Panesar</dc:creator>
				<category><![CDATA[ColdBox]]></category>
		<category><![CDATA[Coldfusion]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.panesar.net/?p=89</guid>
		<description><![CDATA[Once you're past why someone would develop a new program in ColdFusion, you find a rich community of developers, examples, libraries and frameworks.

I've been playing around with the ColdBox Framework for ColdFusion for a few months.

What lead me to ColdBox was a period of discovering and playing around with the discoveries I made with ColdFusion 9 and it's killer Hibernate ORM integration.

I could no longer program, ever again until ColdFusion 9 came out.. it made for a slower fall on new projects.  I decided to dust off the old exploration cap and started looking at what was new and developing in the ColdFusion world.]]></description>
			<content:encoded><![CDATA[<p>Once you&#8217;re past <a href="http://www.panesar.net/2009/01/04/why-would-someone-develop-a-new-program-in-coldfusion/" target="_blank">why someone would develop a new program in ColdFusion</a>, you find a rich community of developers, examples, libraries and frameworks.</p>
<p>I&#8217;ve been playing around with the <a href="http://www.coldbox.org" target="_blank">ColdBox Framework</a> for <a href="http://www.coldfusion.com" target="_blank">ColdFusion</a> for a few months.</p>
<p>What lead me to ColdBox was a period of discovering and playing around with the discoveries I made with ColdFusion 9 and it&#8217;s killer Hibernate ORM integration.</p>
<p>I could no longer program, ever again until ColdFusion 9 came out.. it made for a slower fall on new projects.  I decided to dust off the old exploration cap and started looking at what was new and developing in the ColdFusion world.</p>
<p>For about as long as I can remember I&#8217;ve been using FuseBox and my own frameworks prior to it coming into existence. In my modified <a href="http://www.fusebox.org/" target="_blank">FuseBox</a> framework I have a simple, efficient, scalable system that has easily handled anything I&#8217;ve thrown at it, and more.  It&#8217;s very capable and rightfully so.</p>
<p>FuseBox is ColdFusion&#8217;s first major Framework and went on to dominate and inspire a lot of change in the PHP world not only with FuseBox itself, but the other great frameworks that exist in that language and maybe beyond.  Sitting in the ColdFusion world it&#8217;s nice to see that the ColdFusion &#8220;power with ease&#8221; eloquence was able to help spread this kind of empowerment, as much as ColdFusion&#8217;s continued track record of doing the best of similar languages and frameworks. No offence intended to any of the other great CF frameworks out there &#8212; I just didn&#8217;t feel the itch to shop around because I felt I had the good stuff at home. <img src='http://www.panesar.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>No language, in my experience, has focused on the developer and their experience as much as ColdFusion.  Happy developers make great software.  I like being happy doing what I do.</p>
<p>I came across ColdBox and remembered seeing an earlier version around 2006 that looked really promising. It looks like it&#8217;s been delivering on it&#8217;s promises.  In defense of my beloved FuseBox, I haven&#8217;t looked at the new version in a few years because the one I use has worked so well!</p>
<p>The first thing that struck me was the sheer volume of documentation available on ColdBox.</p>
<p>I couldn&#8217;t believe my eyes.  Someone, actually, seemed, to get the significance of, and anticipate the needs of<em> web application development</em>, and ColdBox was the result.  This was like Allaire/Macromedia/Adobe continuing to anticipate the needs of <em>application developers</em> with ColdFusion. ColdBox looks to this software architect to be the next shining star of ColdFusion, if it&#8217;s not already.  It improves both applications and developer&#8217;s lives.</p>
<p>We know that application development and application developers are kept happy in some common and unique ways.</p>
<p>At first, I didn&#8217;t believe what I was seeing.  Everything I&#8217;ve needed to touch or use, with respect to a web application and it&#8217;s framework, seemingly, conveniently put in one place.  Internationalization, no problem.  Need role based security?  No problem.  Want to add a doo-dad?  Decide if you want an interceptor or a plug-in.  Next question.</p>
<p>What is a software architect to do when something makes him blink?  Get a second opinion from the smartest developer he knows.</p>
<p>My friend is someone I&#8217;ve known for almost 15 years.  We shared a path in school but I went off the ColdFusion deep end while he continued learning everything under the sun&#8230; except ColdFusion.</p>
<p>So I asked for his unbiased opinion.  Which he&#8217;s known to give.  I asked him, find me every fault in this ColdBox and the language of ColdFusion compared to all the languages you&#8217;ve ever used.  As a developer completely fresh to this, tell me if something is better than this, and why, because I might want to switch.</p>
<p>Expecting him to correct ColdFusion, and ColdBox the same way he used to correct the professors, assignments, quizzes, exams, and TA&#8217;s in university, he came back convinced that ColdBox and ColdFusion is great for developing web applications.  Not to say something else wasn&#8217;t, but if he&#8217;d pick something ot build on his own he just might use it, especially with the open-source ColdFusion engines like Railo and Open BlueDragon.</p>
<p>So, I&#8217;m not crazy.  That&#8217;s good.</p>
<p>Here&#8217;s the thing with ColdBox for me.  It does MVC, really well, for the web, for web applications.  Yeah, I know Ruby&#8217;s got this, ASP.NET&#8217;s got that, and Django has something else that&#8217;s great.  I have used them all, either with new projects, or maintaining existing ones.</p>
<blockquote><p><strong>The thing  that happens with any project, over time, is that it either becomes one you want to work on more and more, or one you don&#8217;t want to work on due to increasing complexity to add or modify tasks.</strong></p>
<p><strong>We can argue it&#8217;s up to the developer to keep things simple, but inevitable the platform and framework play a huge role in what we do, or don&#8217;t have to do, or what we do/don&#8217;t deal with.<br />
</strong></p></blockquote>
<p>If we put all the languages, frameworks into one pile, there is one key test I use to see the value of any tool.</p>
<blockquote><p><strong>It is difficult to make the complex into something simple; and it is easy to make the simple into something complex.  Will this help me make the complex into something simple, without dealing with the language, or framework&#8217;s complexities?</strong></p></blockquote>
<p>ColdBox, with ColdFusion seems to understand that most of us have to build things that are solid, reliable and scalable.  99% of web applications that are remotely successful grow.  We need a way to manage that growth and keep the garden looking nice while it grows.</p>
<p>Web developers often have to solve more than simple problems.  We have to solve complex problems and make them simple.   There is little doubt ColdFusion is the best integration language for the web.  It simply does more out of the box than anything.</p>
<p>I have spent the last 2 days working in ColdBox and my impression is this.</p>
<p>I have been amazed at how much of an application I have built already in ColdBox.  Actual business logic.  Actual problem solving.  Actual &#8220;this will make someone&#8217;s life easier, more efficient and productive&#8221;.</p>
<p>What&#8217;s changed?  I didn&#8217;t build my own roles based security.  I didn&#8217;t have to integrate internationalization.  I didn&#8217;t have to extend a framework to do more (or less) than it did.  ColdBox appears to be a framework that can be customized easily, or left alone and just run.</p>
<p>To potentially have the best of both worlds (Rapid dev of FuseBox and the scalability of OO-programing), compared to what was out there before, is more than a little staggering to this software architect.  I don&#8217;t care to re-invent the wheel, I want to solve problems and help people that are forced to work with poor software.</p>
<p>Beyond learning the ins and outs of ColdBox, I am slowly realizing it&#8217;s feeling much like FuseBox did.. the next tool I will use for possibly a long time.  Just like ColdFusion made web development power with ease, ColdBox takes Web application development to a similar of power with ease.</p>
<p>ColdBox allows you to leverage ColdFusion&#8217;s rapid application development in such an improved way that I don&#8217;t think has happened in several years.  As much as Fusebox first came out for ColdFusion and then spread to PHP, etc., and pushed the bar so much, I think ColdBox will inspire as well.</p>
<p>What&#8217;s most impressive is that such a powerful framework has been kept, if I may, simple, relative to the complexity of everything it handles.  That&#8217;s something ColdFusion did first, and better than anyone too.</p>
<p>In the coming few days I will start a Quickstart to ColdBox series to catch my first impressions and experiences of piecing it all together, to help you see for yourself what ColdBox could do for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.panesar.net/2009/12/19/impressions-of-coldbox-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No one cares about your stupid little startup?</title>
		<link>http://www.panesar.net/2009/12/10/no-one-cares-about-your-stupid-little-startup/</link>
		<comments>http://www.panesar.net/2009/12/10/no-one-cares-about-your-stupid-little-startup/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 15:10:03 +0000</pubDate>
		<dc:creator>Jas Panesar</dc:creator>
				<category><![CDATA[Business Technology]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://www.panesar.net/?p=69</guid>
		<description><![CDATA[Came across a very interesting slide show called "No one cares about your stupid little startup" from the folks over at xobni.com regarding their launch experience. With a title like that, how could I resist?]]></description>
			<content:encoded><![CDATA[<p>Came across a very interesting slide show called &#8220;<a href="http://www.slideshare.net/brezina/no-one-cares-about-your-stupid-little-startup" target="_blank">No one cares about your stupid little startup</a>&#8221; from the folks over at <a href="http://www.xobni.com" target="_blank">xobni.com</a> regarding their launch experience. With a title like that, how could I resist?</p>
<p>Check out the slide show here, my thoughts below.</p>
<p id="__ss_2637226" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="No One Cares About Your Stupid Little Startup" href="http://www.slideshare.net/brezina/no-one-cares-about-your-stupid-little-startup">No One Cares About Your Stupid Little Startup</a><object style="margin:0px" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=prbootcampdeckclean-091202205531-phpapp02&amp;rel=0&amp;stripped_title=no-one-cares-about-your-stupid-little-startup" /><param name="allowfullscreen" value="true" /><embed style="margin:0px" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=prbootcampdeckclean-091202205531-phpapp02&amp;rel=0&amp;stripped_title=no-one-cares-about-your-stupid-little-startup" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/brezina">brezina</a>.</div>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">
<p><strong>1) I loved the categories of startup. </strong> Stealth &#8211;&gt; Private Beta &#8211;&gt; Nerd Scarcity &#8211;&gt; Invite beta &#8211;&gt; Iteration &#8211;&gt; Public Beta &#8211;&gt; GA &#8211;&gt; Paid Drivers.</div>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">
<p>My favorite?  Paid drivers.</p></div>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">
<p><strong>2) The importance of Marketing and PR. </strong> I&#8217;ve heard it said that 80% of a product is it&#8217;s marketing and PR.  Sadly, it&#8217;s true and a lot of great products languish because they can&#8217;t speak the same language as their customers to make them say &#8220;hey, this would be really great for me.&#8221;</div>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">
<p>Anyone who thinks they can go without learning marketing and sales should stay out of startups.  Good thing I changed my mind <img src='http://www.panesar.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </div>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">
<dl id="attachment_70" class="wp-caption aligncenter" style="width: 525px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-70" title="No One Cares About Your Stupid Little Startup" src="http://www.panesar.net/wp-content/uploads/2009/12/No-One-Cares-About-Your-Stupid-Little-Startup.png" alt="When we got PR Help - No one cares about your stupid little startup" width="515" height="385" /></dt>
<dd class="wp-caption-dd">When we got PR Help &#8211; No one cares about your stupid little startup</dd>
</dl>
</div>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"><strong>3) Tie yourself to a bigger trend. </strong> We see them coming often, and do nothing.  Every day there is a growing need the more, and more our lives, our photos, our information, our people get more and more connected, more integrated.  We need ways to manage, organize, use, and leverage all of this connectedness to improve the quality of our life, not drown in it.</div>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"><strong>4) Network, network, network. </strong> Let every journalist and person you can find know about what you&#8217;re doing and how it works.  If it&#8217;s really that cool, they will help you.</div>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"><strong><br />
</strong></div>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"><strong>5) Positive Word of Mouth. </strong> Advertise and market the best you can.  The people who do find you, empower to evangelize for you.  LIstne to them.  Listen to why they feel they way they do about your product and what they need.  Consider it but don&#8217;t implement it all.</div>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">Customers are attracted to things that do the hard work to make something complex into something simple.  Their tendencies for suggestions will often involve complexity, either in wanting features, or in how they are wanting to solve their problems.  Listen to their problems, but solve them your way, the way that initially attracted them. Use their help if it feels right.</div>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">6)</div>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"><strong>6) Journalists are lazy.  Help them be. </strong> I don&#8217;t know if I can fully agree with this since I worked at a newspaper for 4 years in Edmonton in the News Research department.  I&#8217;d say it&#8217;s a mix.</div>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">The point being made here, though isn&#8217;t one to miss out on.  Have a clear, concise, printable message.  If you do it well enough they will copy and paste, or heavily rely on your wording.  Make it sound less like an advertisement and more like an announcement to the benefit of others.  Make your media briefings like the articles you want to see, with quotes, testimonials, examples, and it will increase the chances of it being picked up.  Learn to write well or get someone who does and it will go a million miles for you.</div>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">Enjoy!</div>
]]></content:encoded>
			<wfw:commentRss>http://www.panesar.net/2009/12/10/no-one-cares-about-your-stupid-little-startup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How a Great Design goes to hell</title>
		<link>http://www.panesar.net/2009/12/07/how-a-great-design-goes-to-hell/</link>
		<comments>http://www.panesar.net/2009/12/07/how-a-great-design-goes-to-hell/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 15:10:24 +0000</pubDate>
		<dc:creator>Jas Panesar</dc:creator>
				<category><![CDATA[Business Technology]]></category>
		<category><![CDATA[Customers]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://www.panesar.net/?p=66</guid>
		<description><![CDATA[I received this funny comic and it got me thinking.....

I have often wondered how a relationship between specialist (Web, designer, programmer, etc.,) can sometimes turn into the customer believing they understand everything better than the specialist, and how to do it.

This is when phrases like:

    "Couldn't you just.."

    "All you have to do.."

    "It should be pretty simple.."

    "Can't we make it really simple on the screen?  Why would that be more work to do it all behind the scenes?"

become more, and more common.

Problem? I don't know. ]]></description>
			<content:encoded><![CDATA[<p>I received this <a href="http://theoatmeal.com/comics/design_hell" target="_blank">funny comic</a> and it got me thinking&#8230;..</p>
<p>I have often wondered how a relationship between specialist (Web, designer, programmer, etc.,) can sometimes turn into the customer believing they understand everything better than the specialist, and how to do it.</p>
<p>This is when phrases like:</p>
<blockquote><p>&#8220;Couldn&#8217;t you just..&#8221;</p>
<p>&#8220;All you have to do..&#8221;</p>
<p>&#8220;It should be pretty simple..&#8221;</p>
<p>&#8220;Can&#8217;t we make it really simple on the screen?  Why would that be more work to do it all behind the scenes?&#8221;</p></blockquote>
<p>become more, and more common.</p>
<p>Problem? I don&#8217;t know. If you ignored everything clients say in this case, and only look at what they were doing, the client is basically saying they know better than you.  One could argue there&#8217;s something missing in the requirements phase.  Even when clients are the ones  that hired you to help them meet that impossible deadline that they didn&#8217;t know was a ton more work than they ever imagined?</p>
<p>Still, I&#8217;m not sure if it&#8217;s entirely the client&#8217;s fault for being this way.  I think it might be a mix of both client and specialist.  Clients tend to oversimplify and over-trivialize anything to make it something they can feel confident about so they don&#8217;t get taken advantage of.</p>
<p>What is true is this.</p>
<p><strong>It is hard to make the complex simple, and easy to make the simple into something more complex.</strong></p>
<p>Would we second guess or suggest doctors do something differently, or that engineers build a bridge differently (and without a plan) because we feel it shouldn&#8217;t be complicated?  I don&#8217;t know.</p>
<p>This leads back to the oft-referred issue of what color to <a href="http://bikeshed.com/" target="_blank">paint the bike shed</a>.</p>
<p>Why? Well, the less you involve and empower your clients, the more they will feel your craft is a magical dark science.  Of course, I&#8217;m the first guy to say I want to build systems and tools for people, not <strong>BE</strong> the system and tool through which they maintain their systems.  So, I&#8217;m forever doomed to try and involve clients as much as they would like to be and educate them.  It is already a luxury to feel understood by anyone, and it&#8217;s nice when you clients are able to join you if they so wish.</p>
<p>With that being said, I have a responsibility to first learn, and then demonstrate that I understand the needs of my client and how to best solve them in the way that best serves the client.  Maintaining or enhancing the clients competitive advantage is critical. It&#8217;s not about making my life easier, it&#8217;s about making life easier for my clients, and their clients.  This rings very true even when working on a startup.</p>
<p>I get it.  I&#8217;m pretty good at what I do and can reasonably be thrown down a well and come out okay.  Do I make it look easy?  I don&#8217;t know.  I have 15 years of experience and 4 vacations to show for it.  I read 2-3 hours a day on technologies and problem solving approaches.  I <a href="http://www.stevepavlina.com/blog/2004/11/sharpen-the-saw/" target="_blank">keep the saw sharp</a> and keep busy sawing.  All to keep my value high to myself and the projects I work on, and to ensure my clients receive the best possible outcome.</p>
<p>Still, I hear, &#8220;well, can&#8217;t you just do this&#8221;.  I have accepted that this on some levels will always be the case.  I think helping clients understand that what I can do in 1 hour is only possible after 15 years of experience doing what I do, and that 1 hour of their time, while likely very valuable in the needs requirement of it, likely would not compare, must like I would be lost in their business.</p>
<p>I think I am going to explore the idea of &#8220;highest and best use&#8221; and incorporating that in to my working philosophy on all projects.  When we focus on everyone&#8217;s highest and best use and simply keep our nose out (or in) no more or less than it&#8217;s needed, it&#8217;s where 1 + 1 = 11 in terms of gains in productivity.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.panesar.net/2009/12/07/how-a-great-design-goes-to-hell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Startup Lesson Learnt: Building a Web application vs Desktop</title>
		<link>http://www.panesar.net/2009/09/23/startup-lesson-learnt-building-a-web-application-vs-desktop/</link>
		<comments>http://www.panesar.net/2009/09/23/startup-lesson-learnt-building-a-web-application-vs-desktop/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 22:08:43 +0000</pubDate>
		<dc:creator>Jas Panesar</dc:creator>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://www.panesar.net/?p=161</guid>
		<description><![CDATA[I build a Web application when I don't want to:

- be supporting a thousand environments each with their own quirks. Specifically, viruses, trojans, software interfering, and making it work the same everywhere.

- worry about applying upgrades and taking lots of calls]]></description>
			<content:encoded><![CDATA[<div>
<p>I build a Web application when I don&#8217;t want to:</p>
<p><strong>- be supporting a thousand environments each with their own quirks.</strong> Specifically, viruses, trojans, software interfering, and making it work the same everywhere.</p>
<p><strong>- worry about applying upgrades and taking lots of calls</strong></p>
<p><strong>- dealing with clients who lose their data</strong></p>
<p>I pick a thick client when the computation is intensive per transaction, that would be simultaneous, or there is significant data transfer per transaction.</p>
<p>I like fixing everyone&#8217;s problems with one upgrade. It might not be for everyone, but it&#8217;s where the quality of my life and those I work for goes up. Making a web app work on a few different browsers may be easier than a ton of different operating systems in different conditions.</p>
<p>With the advent of Flex/Air you can provide an entire application experience in the browser. The browser is becoming the universal interface, whether it&#8217;s installed locally or in the cloud.</p>
<p>Web apps have their cons too. I just am more motivated to build web apps as the pro&#8217;s seem to outweigh the cons for the projects I am choosing.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.panesar.net/2009/09/23/startup-lesson-learnt-building-a-web-application-vs-desktop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Startup Lesson Learnt: Building software is like building a house.</title>
		<link>http://www.panesar.net/2009/08/05/startup-lesson-learnt-building-software-is-like-building-a-house/</link>
		<comments>http://www.panesar.net/2009/08/05/startup-lesson-learnt-building-software-is-like-building-a-house/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 21:59:23 +0000</pubDate>
		<dc:creator>Jas Panesar</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://www.panesar.net/?p=158</guid>
		<description><![CDATA[Crafting software is like.. building a house.

You can try building it without a blueprint or plans or an architect or qualified tradespeople and it will almost always cost you much more and you will have constant issues.

Second, just because you can..]]></description>
			<content:encoded><![CDATA[<div>
<p>Crafting software is like.. building a house.</p>
<p>You can try building it without a blueprint or plans or an architect or qualified tradespeople and it will almost always cost you much more and you will have constant issues.</p>
<p>Second, just because you can build a shed without a blueprint, doesn&#8217;t mean you should build a house without a blueprint.</p>
<p>Would you buy a house, or want to work on a house that was built without a blueprint?</p>
<p>Ok, Ok.  But startups are different.  You can&#8217;t get caught up in analysis paralysis.  True.  You shouldn&#8217;t also go without a rough map.  Don&#8217;t stand still, and don&#8217;t run like a madman in 10 directions at the same time.</p>
<p>Pick a path, a philosophy and why you&#8217;ll be making certain decisions.  And let it guide you.  You&#8217;ll know when you&#8217;re overdoing a room in the house or spending too much time on a closet when you still need to build a bathroom or a kitchen.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.panesar.net/2009/08/05/startup-lesson-learnt-building-software-is-like-building-a-house/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Batch Processing and Data Parsing best practices in ColdFusion</title>
		<link>http://www.panesar.net/2009/07/07/batch-processing-and-data-parsing-best-practices-in-coldfusion/</link>
		<comments>http://www.panesar.net/2009/07/07/batch-processing-and-data-parsing-best-practices-in-coldfusion/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 00:23:37 +0000</pubDate>
		<dc:creator>Jas Panesar</dc:creator>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[Coldfusion]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.panesar.net/?p=155</guid>
		<description><![CDATA[One thing I've found myself doing more and more in ColdFusion is using it for it's integration powers to parse data, or do batch performing tasks.  With it's Java underbelly, ColdFusion does most things great, and if you want even more performance, tie into the Java layer!

I come from the group of people who pursue the dream that computers and technology should make people's lives easier.  That's why ruthless automation is at the center of most startups, or businesses that are growing.  Keep people dealing with people -- what they do best, and let your system handle the details for you!]]></description>
			<content:encoded><![CDATA[<div>
<p>One thing I&#8217;ve found myself doing more and more in ColdFusion is using it for it&#8217;s integration powers to parse data, or do batch performing tasks.  With it&#8217;s Java underbelly, ColdFusion does most things great, and if you want even more performance, tie into the Java layer!</p>
<p>I come from the group of people who pursue the dream that computers and technology should make people&#8217;s lives easier.  That&#8217;s why ruthless automation is at the center of most startups, or businesses that are growing.  Keep people dealing with people &#8212; what they do best, and let your system handle the details for you!</p>
<p>1) <strong>Maintain a file upload table (Parent table).</strong> For every file you upload you should be able to keep a list of each file and what status it is in (uploaded, processed, unprocessed)</p>
<p>2) <strong>Temp table to store all the rows of the data file. (child table)</strong> Import the entire data file into a temporary table. Attempting to do it all in memory will inevitably lead to some errors. Each row in this table will link to a file upload table entry above.</p>
<p>3) <strong>Maintain a processing status</strong> &#8211; For each row of the datafile you bring in, set a &#8220;process/unprocessed&#8221; tag. This way if it breaks, you can start from where you left off. As you run through each line, set it to be &#8220;processed&#8221;.</p>
<p>4) <strong>Transaction</strong> &#8211; use cftransaction if possible to commit all of it at once, or at least one line at a time (with your 5 queries). That way if something goes boom, you don&#8217;t have one row of data that is half computed/processed/updated/tested.</p>
<p>5) Once you&#8217;re done processing, set the file name entry in the table in step 1 to be &#8220;processed&#8221;</p>
<p>By using the approach above, if something fails, you can set it to start where it left off, or at least have a clearer path of where to start investigating, or worst case clean up in your data. You will have a clear way of displaying to the user the status of the current upload processing, where it&#8217;s at, and where it left off if there was an error.</p>
<p>If you have any questions, let me know.</p>
<p><strong>Other thoughts:</strong></p>
<ol>
<li>You can increase timeouts, give the VM more memory, put it in 64 bit but all of those will only increase the capacity of your system so much. It&#8217;s a good idea to do these per call and do it in conjunction with the above.</li>
<li>Java has some neat file processing libraries that are available as CFCS. if you run into a lot of issues with speed, you can use one of those to read it into a variable and then into the database</li>
<li>If you are playing with XML, do not use coldfusion&#8217;s xml parsing. It works well for smaller files and has fits when things get bigger. There are several cfc&#8217;s written out there (check riaforge, etc) that wrap some excellent java libraries for parsing xml data. You can then create a cfquery manually if need be with this data.</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.panesar.net/2009/07/07/batch-processing-and-data-parsing-best-practices-in-coldfusion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What are the tools I use for Software design?</title>
		<link>http://www.panesar.net/2009/06/04/what-are-the-tools-i-use-for-software-design/</link>
		<comments>http://www.panesar.net/2009/06/04/what-are-the-tools-i-use-for-software-design/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 02:01:20 +0000</pubDate>
		<dc:creator>Jas Panesar</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://www.panesar.net/?p=120</guid>
		<description><![CDATA[Someone asked what tools are usable for software development.  Having juggled so many details for so many years, it's interesting to take a look and see what tools we use and why.

There are many parts to a conceptual design. Depending on which part you focus on a variety of tools are out there.

As with most computer things, Capturing it is easy, filing it away so you can find it later is critical. You won't use all of these tools 100% of the time, but they all need to flow to one central spot.]]></description>
			<content:encoded><![CDATA[<p>Someone asked what tools are usable for software development.  Having juggled so many details for so many years, it&#8217;s interesting to take a look and see what tools we use and why.</p>
<div>
<p>There are many parts to a conceptual design.  Depending on which part you focus on a variety of tools are out there.</p>
<p>As with most computer things, Capturing it is easy, filing it away so you can find it later is critical. You won&#8217;t use all of these tools 100% of the time, but they all need to flow to one central spot.</p>
<p>For me that is <a rel="nofollow" href="http://www.fogbugz.com/">Fogbugz</a> because it&#8217;s simple, works, has a wiki and forum built in and I can do some basic workflow management.</p>
<p>Building a system that files things at the point of capture without having to process it many times (create it, then process it, and then file it so you can find it later) will save you a ton of time.  I can email and forward anything I need there.</p>
<p><strong>CREATE:</strong></p>
<ul>
<li><strong><a rel="nofollow" href="http://www.staples.com/office/supplies/p1%5FQuadrille-Ruled-Desk-Pad%5F52164%5FBusiness%5FSupplies%5F10051%5FSEARCH">Tabloid size graphing paper</a></strong> (never run out of space)</li>
<li><strong><a rel="nofollow" href="http://www.balsamiq.com/">Balsamiq Mockups</a></strong> with <a rel="nofollow" href="http://www.xwiki.org/xwiki/bin/view/Main/WebHome">xwiki</a> (keep your mockups evolving and tracked easily in the wiki with each revision)</li>
<li><strong><a rel="nofollow" href="http://www.omnigroup.com/applications/omnigraffle/pro/">OmniGraffle</a> / <a rel="nofollow" href="https://login.live.com/login.srf?wa=wsignin1.0&amp;rpsnv=10&amp;checkda=1&amp;ct=1244214017&amp;rver=4.0.1534.0&amp;wp=MBI%5FSSL&amp;wreply=https:%2F%2Fservices.office.microsoft.com%2Fpassport%2Fredirect.aspx&amp;lc=1033&amp;id=34134">Visio</a></strong> (Flowcharts, graphs, etc)</li>
<li><strong>Whiteboard</strong>.  I have one big whiteboard right now.  I&#8217;m getting ready to purchase the superb <a rel="nofollow" href="http://www.walltalkers.com/products/just-rite-grid.asp">WallTalker product</a>. It doubles as a projector screen, can come pre-printed with a grid on it like graphing paper, about $27/linear foot for a 60&#8243; roll. $300 for 13&#8242; feet of writing space!</li>
</ul>
<p><strong>CAPTURE:</strong></p>
<ul>
<li><strong><a rel="nofollow" href="http://www.fogbugz.com/">Fogbugz</a></strong> for tracking as much as I can. The key part is being able to email myself anything and everything. Free hosted editions for 2 users online. Integrates directly with svn, etc.</li>
<li><strong>Phone camera for whiteboard</strong> I use my cell phone and send it straight as an email into fogbugz, making sure to put some notes in the subject and email of what&#8217; its&#8217; about so I can find or link it together later. I know regular cameras take better photos, but do we really sync our cameras more, or our phones? I&#8217;ve had good success with an iPhone and my current HTC.</li>
<li><strong><a rel="nofollow" href="http://www.skitch.com/">Skitch</a></strong> &#8211; Excellent for taking a screenshot and doodling on it. Can be done with images, screen renders, etc. Especially helpful when sending clients a screen to point out certain things. A comparable windows product would be <a rel="nofollow" href="http://www.techsmith.com/screen-capture.asp">Snag-It</a>, etc.</li>
<li><strong>Email everything</strong> &#8211; email yourself everything to Fogbugz.  From your phone, from your software, from your servers, from your friends with ideas.</li>
<li><strong>Fax</strong> &#8211; get a fax to email setup and send all faxes to fogbugz. Aren&#8217;t near a scanner, fax it to yourself, throw away the paper. You&#8217;ll find it later if you really need it, and if not, you aren&#8217;t letting paper distract you. When someone wants to send you paper, if there&#8217;s no pdf, voila.</li>
</ul>
<p><strong>ARCHIVING:</strong></p>
<ul>
<li><strong><a rel="nofollow" href="http://www.neatco.com/">Neatreceipts</a> scanner</strong> &#8211; scan to pdf and send to Fogbugz. Throw away the paper. How much old design drafts do you have that you don&#8217;t want to throw away but seem to pile up? Both Mac and PC version exists.</li>
</ul>
<p>There are some of the things I have used.  As I continue to be Mac&#8217;ified I&#8217;ll update this post or maybe do a new version.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.panesar.net/2009/06/04/what-are-the-tools-i-use-for-software-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Startup Lesson Learnt : Less code is more profitable.</title>
		<link>http://www.panesar.net/2009/05/28/startup-lesson-learnt-less-code-is-more-profitable/</link>
		<comments>http://www.panesar.net/2009/05/28/startup-lesson-learnt-less-code-is-more-profitable/#comments</comments>
		<pubDate>Thu, 28 May 2009 18:17:06 +0000</pubDate>
		<dc:creator>Jas Panesar</dc:creator>
				<category><![CDATA[Customers]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://www.panesar.net/?p=153</guid>
		<description><![CDATA[It's simple.  Building a product with less time developing the product, and more time building the business around the product (marketing, etc.,), the greater chance it will have of actually succeeding.

I recently read that a product is 80% marketing and 20% actual product.  That probably would explain why garbage can succeed and great software can fail.

The truth is as developers, startup entrepreneurs, it's critical to know how to sell and market.  Without learning the ability to have the conversation to sell, there may not be much of a reason to start building anything.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s simple.  Building a product with less time developing the product, and more time building the business around the product (marketing, etc.,), the greater chance it will have of actually succeeding.</p>
<p>I recently read that a product is 80% marketing and 20% actual product.  That probably would explain why garbage can succeed and great software can fail.</p>
<p>The truth is as developers, startup entrepreneurs, it&#8217;s critical to know how to sell and market.  Without learning the ability to have the conversation to sell, there may not be much of a reason to start building anything.</p>
<p>Often, as is the case, we put off the unfamiliar and get working on the familiar, &#8220;to make some good progress&#8221;.</p>
<p>This often means programming.  Start building.  Get out the measuring tape.  That carpenter&#8217;s pencil, the wood glue.  Get to it.</p>
<p>Here&#8217;s the thing:</p>
<blockquote><p>Just because I can build a shed without a blueprint, doesn&#8217;t mean I should build a house without a blueprint.  Especially if I don&#8217;t know how to sell the house, or build a sellable house.</p></blockquote>
<p>Building without the plan is in essence hurting your hard work even more, and delaying your potential success.  The sooner you start your conversation, start your story, and get potential customers engaged and involved in a beta, the greater you have increased your risk.</p>
<p>Instead, learn to start the conversation first. Learn to spread the news first.  Learn to attract the traffic and input you need, first.</p>
<p>We know you can build anything, at the speed of light.  But those 6-12 months will still mean you did no marketing at that time.  There&#8217;s little more helpful than having a mailing list already built up of potential customers as well as some google ranking love for your product already.</p>
<p>If you&#8217;re still not sold on it, try this law:</p>
<blockquote><p>Less code = fewer bugs = quicker release = quicker iteration = quicker profitability</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.panesar.net/2009/05/28/startup-lesson-learnt-less-code-is-more-profitable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What does a Software Architect do?</title>
		<link>http://www.panesar.net/2009/05/09/what-does-a-software-architect-do/</link>
		<comments>http://www.panesar.net/2009/05/09/what-does-a-software-architect-do/#comments</comments>
		<pubDate>Sat, 09 May 2009 22:55:22 +0000</pubDate>
		<dc:creator>Jas Panesar</dc:creator>
				<category><![CDATA[Business Technology]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://www.panesar.net/?p=117</guid>
		<description><![CDATA[Someone asked the question and I realized that&#8217;s my job title I didn&#8217;t know was my job title all these years!  
&#8212;

If a person can build a shed without a blueprint, it doesn&#8217;t mean they can, or should build a house without a blueprint.
Architects see what you need now, what you mean when you [...]]]></description>
			<content:encoded><![CDATA[<p>Someone asked the <a href="http://stackoverflow.com/questions/843610/what-does-a-software-architect-do-and-what-programs-do-they-use/843623#843623" target="_blank">question</a> and I realized that&#8217;s my job title I didn&#8217;t know was my job title all these years! <img src='http://www.panesar.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>&#8212;</p>
<div>
<p>If a person can build a shed without a blueprint, it doesn&#8217;t mean they can, or should build a house without a blueprint.</p>
<p>Architects see what you need now, what you mean when you say what you need, and design a software strategy that will give you what you need today, and a home that you can grow into (and from) in the future. Architects who are familiar with construction succeed more often, in software, Architects who can code, and have done so at a high level (but may not on a day to day basis) can help lay the foundation for other developers to succeed together.</p>
<p>The tools involved in Software design so are largely like pencils, erasers and rulers. It&#8217;s what you draw with the pencil that is more important than the tools.</p>
<p>An architect&#8217;s role is to be able to pull together, and keep together a project that is designed from the very high level right down to the nuts and bolts where attention to detail needs to be remembered. They will be experts on finding the exceptions, holes and things that will be unsustainable or prone to breaking in a software&#8217;s design and remedying them before its even begun ensuring a higher degree of success.</p>
<p>That being said, for the SA I do, I use tools like OmniGraffle, Balsamiq, some UML stuff, and a lot of graphing paper and whiteboards. My goal in designing is to synthesize the complicated into something simple, effective and usable by everyone.</p>
<p>My goal is to understand the needs of my clients better than they understand them, to the point that I can help them have the realizations they are looking for the next &#8220;leap&#8221;.</p>
<p>Being an architect for solving people&#8217;s problems means dealing with a lot of them, from a lot of angles, and finding the common patterns in everyone&#8217;s requests.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.panesar.net/2009/05/09/what-does-a-software-architect-do/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
