<?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>Marketing &#8211; Software, Fitness, and Gaming &#8211; Jesse Warden</title>
	<atom:link href="https://jessewarden.com/category/marketing/feed" rel="self" type="application/rss+xml" />
	<link>https://jessewarden.com</link>
	<description>Software &#124; Fitness &#124; Gaming</description>
	<lastBuildDate>Wed, 29 Jun 2016 01:54:59 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://jessewarden.com/wp-content/uploads/2016/08/cropped-Lambda2-32x32.png</url>
	<title>Marketing &#8211; Software, Fitness, and Gaming &#8211; Jesse Warden</title>
	<link>https://jessewarden.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Breaking the $100 Per Hour Barrier</title>
		<link>https://jessewarden.com/2013/09/breaking-the-100-per-hour-barrier.html</link>
					<comments>https://jessewarden.com/2013/09/breaking-the-100-per-hour-barrier.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Sun, 15 Sep 2013 15:01:29 +0000</pubDate>
				<category><![CDATA[Branding]]></category>
		<category><![CDATA[Business Process]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[1099]]></category>
		<category><![CDATA[consulting]]></category>
		<category><![CDATA[corptocorp]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[freelance]]></category>
		<category><![CDATA[money]]></category>
		<category><![CDATA[personalbranding]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[proposition]]></category>
		<category><![CDATA[rate]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[value]]></category>
		<category><![CDATA[w2]]></category>
		<category><![CDATA[w9]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=4382</guid>

					<description><![CDATA[I get this question at least once a year so thought I would write a blog post on it to help others. &#8220;How do I make more than $100 per hour?&#8221;. I&#8217;ve learned a few ways and wanted to share them below. If you want to save time, simply do something other than programming such [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I get this question at least once a year so thought I would write a blog post on it to help others. &#8220;How do I make more than $100 per hour?&#8221;. I&#8217;ve learned a few ways and wanted to share them below. If you want to save time, simply do something other than programming such as flipping houses, investment banking, or being the boss of a mid size company. They make way more money than we do. If you still love programming, but just want to know your options for making more money, read on.</p>
<p>I won&#8217;t cover whether money can buy you happiness or not. All I&#8217;ll say is that for some people it does, and others it does not.</p>
<p>Many of the financial and tax nomenclature below applies to the USA, but the types of work are the same regardless of country.</p>
<p><span id="more-4382"></span><strong>Introduction</strong></p>
<p>Early on my consulting career, I found the maximum amount of money I could charge per hour was $100/hr. I had just assumed it was a simple linear graph: the more time that goes, the more experienced &amp; marketable I get, thus the more money I can make per hour. This wasn&#8217;t the main metric I used to measure my success, but it&#8217;s certainly how a lot of people, at least in America, do. &#8220;How much money do you make?&#8221;</p>
<p>As time went on, and I actually did get more experienced, I learned it&#8217;s not a linear line. A variety of things can happen, or not, to affect it&#8217;s elevation. Examples include not working for a couple months, whether intentionally or not. There are a variety of stages you can possibly go through, at least in software development, and I&#8217;m still learning all the possible vs. desirable ones.</p>
<p>The basics are starting out in an internship or job, then breaking away to do freelance, and finally starting a company.</p>
<p>Below are the 3 things that don&#8217;t work.</p>
<p><strong>W2 &#8211; Salaried Employee</strong></p>
<p>Salaried employees are those who work for a company, called a &#8220;job&#8221;, and that company takes out your State and Federal taxes for you. They pay a salary, a flat amount of money per 1 days worth of work, whether you actually work 1 hour or 12 doesn&#8217;t matter. They also offer &#8220;compensation packages&#8221; such as 401k matching, 20 or more vacation days, and 5 or more sick days. People put their own arbitrary dollar amounts on these which helps companies offset their lowered salaries.</p>
<p>The problem with W2 is that you eventually max out. I&#8217;ve yet to see a salaried programmer make more than $175,000, although most are $120,000. That&#8217;s gross, not net. That&#8217;s still only about $90 an hour if you take out vacation days and holidays. You&#8217;re replaceable, and there is only so much code you can produce in a given time on your own. Although there are <a href="http://www.dungeonsanddevelopers.com/">skill trees for development</a>, getting better doesn&#8217;t lead to making more money. You basically have to go into management, leadership, or sales to sometimes fully utilize all those software skills you know. There are SOME options for hybrid roles such as Enterprise Architects, people who dictate how to build things but don&#8217;t actually build the things. Sales Engineers are another. You travel with a Sales person and get their back when the clients ask highly technical questions. Sometimes you get to code, but they&#8217;re often just simple prototypes, not real projects.</p>
<p>Finally, W2 is perceived as a form of &#8220;stability&#8221;; something long term, something earned and deserved. Unfortunately, that&#8217;s how things were back in the 1940&#8217;s, not anymore. Regardless, the prophecy is self-fulfilling for some people, so they believe it to be true, and thus it is true even if it&#8217;s not.</p>
<p>Unless you actually want to get out of programming, W2 isn&#8217;t an option.</p>
<p><strong>1099 &#8211; Freelance</strong></p>
<p>Freelancers usually charge by the hour or project (obviously they like the former). They are synonymous with contractors: someone who works for the company but is their own business. Your own business can just be 1 person: you. You are ultimately responsible for all of your finances and taxes, thus you file a form for the IRS called a 1099. The common rule is when you get a paycheck, you immediately take 33%, round up, and shove into savings so you can pay once a month, 4 times a year, or once if you&#8217;re a slacker the taxes you owe the State you live in and the IRS. None of that includes your operating expenses like buying your own computer, contributing to your retirement, and paying your own medical insurance.</p>
<p>The key here, though, is you can pay those first, THEN get taxed on what you have left over using &#8220;pre-tax&#8221; money whereas in W2, you&#8217;re taxed twice: first on your paycheck and then whatever you buy with it, the IRS still assumes you made X per year. For example, lets say you make $100,000 per year. You then buy $50,000 worth of hardware, software, and office space. You then only owe $16,500 in taxes vs. $33,000 like you would as a W2. This desire to spend your pre-tax money, whether on stuff, services, or even contributing to retirement accounts like SEP IRA&#8217;s is yet another to balance in your time that has nothing to do with programming. W2&#8217;s don&#8217;t have to worry about any of this crap.</p>
<p>This amount of work is not to be understated. This is how many companies go out of business. It&#8217;s also a lot of work for 1 person to handle just 1 persons business finances, let alone all the time spent hustling to get clients. More importantly, though, companies bear this &#8220;burden&#8221; when hiring W2&#8217;s. This is why a lot more companies are going the 1099 route or hiring contractors for set projects, not providing benefits, nor the &#8220;free&#8221; tax services like <a href="http://www.bbc.co.uk/news/uk-24017011">Amazon and others are doing in the UK</a>Â and in the states.</p>
<p>There are a variety of reasons programmers go freelance. There is no growth potential at their W2 job. They don&#8217;t like the clients they&#8217;re working with and want to choose their own. They have short attention spans and want smaller projects. They hate the large code base they&#8217;re working on that&#8217;s messed up and they didn&#8217;t create, and want the opportunity to create their own. They want to utilize a completely different technology stack and there is no opportunity to do so at their current job.</p>
<p>Whatever the reason, the POTENTIAL exists for making more money than W2. Sometimes, you&#8217;ll make less. The reasons for those are also numerous. While you may get many high paying gigs, you may actually have many weeks or months with no work. While W2 has a steady paycheck, 1099 does not. Additionally, there is a cost of doing business that you now incur. Time spent on the phone, writing emails, going to meetings and conferences, writing books, blog entries, curating relationships with your content and others on social media; all of that takes a lot of time that no one is paying you for. Some of that could lead to getting a client to hire you to build something. Sometimes that client just wants free consulting, or is asking you and 9 other contractors to bid on a project and they just want you to do the quote for them with zero intention of actually hiring you.</p>
<p>The reasons are vast. The theory, though, is that you&#8217;re using a technology with either a local market (where you live) that has a need for your skills, a remote market (meaning you telecommute with clients you&#8217;ll never meet face to face), or both. Sometimes you&#8217;ll get many concurrent projects. While one project has slow communication and is long term, and other is more clear, and shorter. While you&#8217;d prefer to have both side by side, the companies hiring you, and their clients, usually dictate the schedule, and they don&#8217;t care that you haven&#8217;t had any work all June and July, and now 3 companies want to start work immediately in August all at the same time. Sometimes that can work; other times it can sacrifice your code quality so you can only get one.</p>
<p>Bottom line, this is where most programmers get stuck. If they do manage to break the $100/hr barrier, it&#8217;s because they got a fixed bid contract and just did it in a shorter time. Meaning you produce the work for this amount of money, no more. If you work 4 hours or 40, you still get paid the lump sum. So, if you can do 40 hours worth of work for less than 40, then great, you just made more than $100/hr. Sadly, this is just 1 week out of the year. It also doesn&#8217;t factor in the cost of doing business to actually get that contract signed.</p>
<p>1099 is a mindset. You either like the freedom, the &#8220;harder I work, the more I get paid&#8221;, or just the lifestyle of having your clients&#8230; even if those clients are just like a W2, only with none of the benefits. Worse, many large companies cannot do work directly with 1099&#8217;s, and want to do W9. While that&#8217;s fine, it&#8217;s usually assumed those W9&#8217;s are a preferred vendor, or have workman&#8217;s comp and a lot of other bs that isn&#8217;t needed and doesn&#8217;t matter. If you get the W9, great, but if you&#8217;re not a preferred vendor and you haven&#8217;t convinced the company to go through the process, you&#8217;ll simply have some company you&#8217;ve never heard of take $10 to $30 an hour off your paycheck. Horrible.</p>
<p>Independent Contractor programmers, someone who owns a company strictly as a tax shelter and is a single person, aren&#8217;t usually paid more than $100/hr outside of California, New York, or Boston. So 1099 is usually a no go (exceptions below).</p>
<p><strong>Recruiters</strong></p>
<p>Recruiters are a waste of your time, and theirs.</p>
<p>Many companies lack the resources to &#8220;find you&#8221;. Even if you make yourself easy to find on the internets, they often won&#8217;t look. Swimming through mountains of programmer social media is less savory than paying a fee to someone to &#8220;find me someone with these skills&#8221;. While smaller companies who recognize the value of good talent DO use Github, LinkedIn, and Google to search for people such as yourself, they aren&#8217;t going to dump bling into your lap.</p>
<p>Thus, recruiters are often the gateway to jobs nowadays. Many in large companies like recruiters because it&#8217;s not their money being spent, and a litany of resumes arrive in their email with them not having to do anything but ask HR to send a list of requirements of what they need. As such, most job sites nowadays such as Monster, Dice, LinkedIn, etc. are owned by recruiters. I say owned because finding a job posting that ISN&#8217;T a recruiter is rare. If it&#8217;s not, the likelihood of someone with your skills getting past the often horrible interview web applications or HR wall (&#8220;Yes, mam, as I&#8217;ve told you, MVP is just like MVC, and Ember and Backbone share many characteristics, so if you know one, you can easily learn the other and be prod&#8230; mam? Hello?&#8221;)&#8230; all for W2 position we&#8217;ve already talked about is a no go.</p>
<p>They&#8217;ve seen their business explode since the information age started back in the 80&#8217;s and 90&#8217;s. We have some of the worst unemployment, underemployment, and those giving up and leaving the workforce since 1979. This means a few things.</p>
<p>First, it&#8217;s just &#8220;normal&#8221; nowadays that mid-size and large companies use them. You may not like the game, so you can either get played by it, play it, or make your own rules.</p>
<p>Second, a lot of them are NOT there by choice. We have a swath of college educated youngsters with degrees not in the Art disciplines who just can&#8217;t find jobs that their degrees implied. Many went to recruiting because they had no other choice.</p>
<p>Therefore, you shoulder never be rude to them for the above reasons. Yes, I troll them every chance I get, but that&#8217;s in good fun. You should never be rude; you never know when you have zero choice but to go through a recruiter for a job. We&#8217;re extremely lucky in software, and history shows it will not last.</p>
<p>Keep in mind larger consulting firms like Accenture, Deloitte, IBM, Randstad, etc. are hybrid. They sometimes act like staffing companies, but often have internal divisions that do consulting. Meaning, although they recruit you, can you get above $100/hr rates with them which often includes lots of travel, but is still longer term projects. Still, better to err on the side of caution; bring up money first to save yourself time.</p>
<p>That said, again, recruiters are a waste of your time, and theirs. I made $80,000 at one large company, and another $140,000. We went through the same recruiting firm for the same position. When I once was hiring for my client, the recruiting firm was charging $200/hr and paying him $80/hr. Finally, recruiter rates are beholden to the location in which they are hiring. You won&#8217;t get New York city rates in Nashville even if the recruiting firm is national; companies, even for telecommuters, often pay the local rate.</p>
<p><strong>5 Solutions</strong></p>
<p>So if &#8220;a job&#8221; caps out at or below $100/hr, freelance has no growth potential with maintenance pain, and recruiters are worthless, what to do? You have 5 options that I&#8217;ve seen work. I&#8217;m sure there are more, I&#8217;m just basing the below on what&#8217;s worked for me, others I know, and what I&#8217;ve seen work from past clients who&#8217;ve done it.</p>
<ol>
<li>Build a Personal Brand</li>
<li>Score a large client</li>
<li>Find a Closer</li>
<li>Find a network and form a firm</li>
<li>Start a business</li>
</ol>
<p><strong>Build a Personal Brand</strong></p>
<p>I&#8217;ve written about <a href="http://jessewarden.com/2006/10/personal-branding-checklist.html">Personal Branding</a>Â 7 years ago. I even <a href="http://www.youtube.com/watch?v=R4HP08mlefk&amp;list=PLZEZPz6HkCZl7gJELOkwz5WF4pTahlUB7">talked in depth about Personal Branding in my video series</a> about becoming a successful freelancer. Make no mistake; the level of effort is inversely proportional to how bad ass you are. This includes either your talent &amp; technical prowess at programming, your charisma, or both. The less awesome you are, the harder you have to work. That&#8217;s called life.</p>
<p>Worse, if you cultivate a rock star status, whether on purpose or by accident, fame is fleeting. Trends in software occur just like they do in the music industry. A library you wrote, a blog post that became popular, or an app that scored you money and fame&#8230; is only temporary and you can only milk it so long. A personal brand is something that is cultivated often, like a garden. The decisions you make in the beginning help guide it and create expectations amongst those in the industry.</p>
<p>Writing blog posts, contributing to open source, releasing helpful code, speaking at conferences, and writing books are all staples of building a personal brand for yourself. Additionally, networking and PARTICIPATING in the industry, even if it&#8217;s just your small niche, are important. You want people to like you, you want them to want to work with you, and most importantly, THEY should be selling the client on you, not you selling the client on you. <a href="http://sethgodin.typepad.com/seths_blog/2008/03/why-bother-havi.html">You don&#8217;t have a resume</a>.</p>
<p>Those who have cultivated their epics skills/personality/brand are rife. Martha Stewart, Rachel Ray, Dr. Oz, Oprah, Craig Ferguson, Conan O&#8217;Brien, etc. In our industry, <a href="http://gskinner.com/blog">Grant Skinner</a>, <a href="http://en.wikipedia.org/wiki/Bruce_Eckel">Bruce Eckel</a>, <a href="http://en.wikipedia.org/wiki/Linus_Torvalds">Linus Torvalds</a>, <a href="http://ejohn.org/">John Resig</a>, <a href="http://www.paulirish.com/">Paul Irish</a>, <a href="http://joelhooks.com/">Joel Hooks</a>, <a href="http://infrequently.org/">Alex Russell</a>, <a href="http://www.joshuadavis.com/">Joshua Davis</a>, <a href="http://www.joa-ebert.com/">Joa Ebert</a>, and <a href="http://ricardocabello.com/blog">Ricardo Cabello</a> (<a href="http://www.mrdoob.com/">Mr Doob</a>).</p>
<p>You may not know some of them, which is fine, but also potentially brings up a good point. Some of them spend more time using their talents, and the fame is just a byproduct of that, whilst others get the marketing angle, and help accentuate their work. People like me are 90% big mouth, 10% contribution. Any combination works. The point is, it&#8217;s hard work, but less so if you&#8217;re talented. And you can&#8217;t stop, you have to keep marketing yourself, either through continually producing awesome, or continually producing just enough awesome, and marketing like crazy.</p>
<p>If you&#8217;re famous, you can easily charge more than $100/hr for freelance work even for work that&#8217;d normally go for $80/hr. Just depends on the clientele.</p>
<p>Con? It&#8217;s a lot of work. All the time. Sometimes you have to start at square one if the tech changes. It can be done and repeated and is easier in a objective discipline like programming vs. the entertainment industry.</p>
<p><strong>Score A Large Client</strong></p>
<p>I&#8217;ve seen many large agencies and software firms sprout up like this. You&#8217;re 1 dudette/dude, 2 friends, or maybe you just know a lot of people you could sub-contract for design and other back-end/front end development if you could only get a large client. What happens is, the contractor gets a large client, can&#8217;t handle the size of the project alone, hires people, and voila: a company.</p>
<p>The money comes into play from 2 places. First, the job is obviously larger, thus requires more money to pay more people for more time working.</p>
<p>Second, those more people do not get the same amount you do. There are a variety of factors that dictate how much a designer gets, a front end developer gets, a back-end developer, manager, project manager, qa, etc. The more you make is inversely proportional to how much you pay your sub-contractors/employees. The less you pay, the more you make. Except it&#8217;s not you, it&#8217;s the company&#8230; or are you just paying yourself? That gets into running a business which I won&#8217;t cover here. Obviously if they&#8217;re an idiot contractor who&#8217;s good at coding but sucks at math, you can&#8217;t pay them less than living expenses, else they&#8217;ll lose their house/apartment/flat in the middle of the project, and that&#8217;s no good. Yes, you&#8217;ll get people like this.</p>
<p>You then bill those people out at a higher rate. This is how it works with big clients. Large company hires large firm. Large firm hires smaller firm. Smaller firm hires you as a 1099 contractor. The pay goes like this: Large company pays Large firm $300/hr. Large firm pays Smaller firm $150/hr. Smaller firm pays you $80/hr. Now that you&#8217;re the Small firm, you now get the $150/hr&#8230; and you&#8217;re sub-contractors get the $80/hr. Make sense?</p>
<p>The more sub-contractors you get, the longer the project is, or both results in more money in your pocket; well over $100/hr.</p>
<p>How does one score such a Large client? One way, you can become a preferred vendor/consultant/provider of your favorite technology stack. Whether it&#8217;s the company that makes it, or those who have a vested interest in it, one things for sure: those who make technology are not consulting firms. They focus on making tech, not forcing a bunch of people to travel to some random location to build something for random business for a bunch of dough. YOU and yours are the ones who actually represent that company and do the actual work. Obviously they have small arms in the sales team that do this, but they usually don&#8217;t scale that side of the business.</p>
<p>Another way is networking with past clients. One way to utilize a network you&#8217;ve created is to contact past clients&#8217; clients directly if your non-compete is up. For example, lets say you worked for a company as a 1099 that worked on a project for Nike. You did a great job, and had a good relationship with the company, and even had the opportunity to work with some people at Nike directly. Most smart companies will ensure you never talk to them for this very reason. 1 year+ later (or whatever your non-compete states), you reach out to them and ask if they have any work. If you kicked ass, they&#8217;ll remember you. Suddenly, that cut in pay is gone since you can form a direct relationship with them either as W9 (corp to corp), and possibly become a preferred vendor for that company: 1 of many companies who gets first dibs on projects they outsource.</p>
<p>Other times, you just get lucky as a Freelancer, and you portray yourself as a &#8220;company&#8221; with 6 people (who are really part time sub-contractors). Thus, larger companies will come asking you to deliver something quite large. It&#8217;s not dishonest at all if you truly can deliver. I&#8217;m making the assumption here you&#8217;ve worked on multi-person projects and can actually do what you say you can do. It&#8217;s all about how sell yourself. Example: <a href="http://jessewarden.com">jessewarden.com</a> vs. <a href="http://webappsolution.com">webappsolution.com</a>.</p>
<p>Don&#8217;t be afraid to write contracts that are too large for you to handle. If they were, you wouldn&#8217;t have the cajones to actually move forward with it, and finding resources for a project that&#8217;s too big for you is a good problem to have. It&#8217;s already assumed at this point that you know a bunch of freelancers, and might have even put them in a spreadsheet to list their name, contact info, last known rate, and area of speciality. BUILD UP THAT NETWORK and then USE IT.</p>
<p><strong>Find A Closer</strong></p>
<p><iframe src="//www.youtube.com/embed/8kZg_ALxEz0" width="640" height="480" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>All closers are salesman, but not all salesman are <a href="http://www.youtube.com/watch?v=8kZg_ALxEz0">closers</a>. Many companies spring out from a talented closer who scores that big client, whether from a cold call or networking. It&#8217;s like the previous &#8220;Score A Large Client&#8221;, except there&#8217;s no work on your part: you just unleash the closer and wait for her/him to catch you a big fish.</p>
<p>I&#8217;ve seen some successful firms/companies who are basically run by these closers. Many are partnerships where a talented programmer partnered with a talented closer and together they built a company.</p>
<p>Actually FINDING one is where I can&#8217;t help you. Most either formed the company on their own or the technical person had a childhood/college/previous company relationship beforehand.</p>
<p>Commissions don&#8217;t help, either. &#8220;Dude, I know 9% is the norm, but I&#8217;ll give you 20%.&#8221;</p>
<p>&#8220;Oh yeah? How much y&#8217;all pulling in a year?&#8221;</p>
<p>&#8220;Uh&#8230; I guess $1 million.&#8221;</p>
<p>&#8220;My current company gives me 9%, but they rake in 30 million. Thanks for the free beer, though!&#8221;</p>
<p><strong>Find a Network and Form a Firm</strong></p>
<p>You can form a firm in 2 ways. Basically, you do #1 where you&#8217;ve either established a name for yourself, and find like minded people who want to do the type of work you want to do with the types of clients you like to work with.</p>
<p>The other option is just like her majesty&#8217;s life advice: surround yourself with those better than you. You basically find a group of people, at least 1 but hopefully more, who think like you do. You all agree to find work, share work if you&#8217;re too busy, or help each other out on projects WITHOUT a premium; meaning you don&#8217;t take a cut of the rate from each other. This makes some freelance gigs a lot easier because you can borrow people for helping you out on some projects. Since they make you a priority, and there is no worry about rate negotiations, it&#8217;s a no brainer. THAT has some serious value to clients that you should up-sell. Most clients who know what they are doing recognize that already when dealing with companies that have more than 1 person vs. an independent contractor&#8230; sometimes.</p>
<p>More importantly, though, is the hope that they already have the preexisting network contacts described above. Even better, you can combine networks. It actually goes over quite well when you describe to the client that you&#8217;ve left the previous firm to found your own since that client wants you anyway. They&#8217;ll often assume you formed it to work with like minded individuals and you&#8217;re still in the idealistic and prove yourself/your company phase.</p>
<p>This is basically what I did when one of the firms I was working with exploded on itself. Preferred vendor, existing client base to get opportunities from, and 3 guys who all have different strengths that compensate my weaknesses, specifically 2 of them doing back-end Java (I&#8217;m 100% front end). The bigger clients want <a href="http://webappsolution.com">Web App Solution</a>, not <a href="http://jessewarden.com">Jesse Warden</a>.</p>
<p>This is the opposite if your brand is really powerful, though. For example, some strong personal brands form a company, and larger companies will hire them strictly because they want that one person&#8217;s expertise/clout/reputation.</p>
<p>$101-$119/hr is no mans land. Once you have a company that consists of individuals, not just a bunch of subs, $120 on up gets tons more likely&#8230; because the sum is greater than its individual parts. That has a lot of value to companies who need you to scale, be used to scaling quickly, and have a network of your own to acquire certain resources for certain types of projects (UX, design, business analysts, etc). That and it&#8217;s easier for the CPA and lawyers to swallow since you&#8217;re a more legit entity to do W9 work with for tax and legal purposes.</p>
<p>Keep in mind, while it&#8217;s obviously nice to have a track record that you can show to existing clients of your firm helping companies build awesome, often it&#8217;s just as accurate to use past clients as that track record. For example, all of your past freelancing clients you can include in your company&#8217;s repertoire of past clientele.</p>
<p>If your partners, or even just sub-contractors don&#8217;t have a network, you better have one&#8230; else you&#8217;re just fishing for the big client with extra lines in the water.</p>
<p><strong>Start A Business</strong></p>
<p>Everything I&#8217;ve talked about up to this point has been B2B: Business to Business. Some company hires your company. However, that&#8217;s not where the real money is for software development. The real money is in products. Now, granted, you can create products for a certain set of businesses, thus making you a B2B, vs. targeting consumers as a B2C, but the point here is you are NOT a services company: You&#8217;re a product company.</p>
<p>If a clients software project fails, your company doesn&#8217;t fail. If your a product company, and your product fails, your company fails. Huge difference.</p>
<p>Products also have the nice ability to sometimes make passive income. That means, while you sleep they make money. Some products require companies around them to build and support them, hence the current state of Silicon Valley. The amount of effort gets less every day, as does the cost of entry.</p>
<p>While there is more risk, having hundreds or even thousands of people pay $10/a month for your software is a lot more appealing then hustling multiple times a year to get a client to pay for the next few months. You can flip that around, too; a few dozen customers paying you $250 a month.</p>
<p>While there are a bunch of great <a href="http://en.wikipedia.org/wiki/Minimum_viable_product">articles</a> and <a href="http://www.amazon.com/Rework-Jason-Fried/dp/0307463745/ref=sr_1_1?ie=UTF8&amp;qid=1379010456&amp;sr=8-1&amp;keywords=37signals">books</a> on the subject, here&#8217;s the general idea:</p>
<ol>
<li>Find a problem you think you can solve with software, and if it has competition, you think you can solve it better.</li>
<li>Build a prototype in less than a week.</li>
<li>Show it a potential customer and ask them if they&#8217;d pay for it.</li>
<li>Iterate weekly/bi-weekly until they do.</li>
<li>Get more customers.</li>
</ol>
<p>Eventually you&#8217;ll reach what Paul Graham calls <a href="http://paulgraham.com/ramenprofitable.html">Ramen Profitable</a>. It&#8217;s a way longer ramp up time, but has a potentially greater reward. It&#8217;s also assumed you&#8217;ll fail multiple times getting there which is hard for some people to swallow in a culture that&#8217;s all about winning and &#8220;the thought of losing&#8230; is HATEFUL to Americans.&#8221; &#8212; Patton.</p>
<p>If you ain&#8217;t failin&#8217;, you ain&#8217;t trying hard enough, sucka!</p>
<p><strong>Dangers</strong></p>
<p>There are a few potential dangers you need to be aware of going the above route.</p>
<p>First, you need to be flexible. Are you willing to accept work at or below $120/hr? If not, can you survive on savings until you find a client? The &#8220;I deserve&#8221; or entitlement mentality is dangerous. You don&#8217;t get what you deserve, you get what you negotiate. Some companies just don&#8217;t have that kind of money.</p>
<p>Second, it&#8217;s hard to go back to salaried positions once you&#8217;ve gone the Firm or Freelance route. The startup route is a lot easier, and the freelance somewhat easier. Often, if the company doesn&#8217;t know your brand, it doesn&#8217;t matter.Â You need to be careful how you pitch your &#8220;long term consulting&#8221; or &#8220;short term freelance&#8221;.</p>
<p>If you ran a company, you suddenly know a lot about the game, and companies get nervous when you want to quit that and go back to W2. Sometimes that&#8217;s uber valuable to them, but as a front line software developer, it&#8217;s sometimes hard for them to see that value. Others get nervous if they see a lot of short term gigs on your LinkedIn and/or resume and you suddenly apply for a long term position. If you talk to a business owner, it&#8217;s an easier conversation; they get it. Other times this can backfire; &#8220;If you&#8217;re running a business, why come work for me? What about your competing interests?&#8221;. If you talk to an HR, manager, or senior developer, they might not understand at all. Remember, the truth of your history is written by you; modify your social media and resume to match the position you&#8217;re going for.</p>
<p>Also, be aware it&#8217;s a new world. Going back to the old one can be hard. You can sometimes forget what it&#8217;s like to NOT speak about business and software in the same sentence&#8230; vs. just software. This is reflected in your resume, social media, and conversations with people.</p>
<p><strong>Conclusions</strong></p>
<p>If you want to break the $100/hr barrier, getting a salaried position, being a single freelancer, or wasting your time with recruiters won&#8217;t get you there. There are a few exceptions with freelancing, especially on the back-end. Many Ruby/Python/Scala etc. guys can charge $200/hr to $300/hr in the Bay Area. The key, though, isn&#8217;t getting a project for that much money, it&#8217;s getting a career where that&#8217;s the norm.</p>
<p>Whether building a strongly recognizable personal brand, scoring a large client which is a catalyst for creation and growth, finding a closer, forming your own firm, or even creating a product that itself validates the company around are just 5 ways in which you can break that barrier. I&#8217;m sure there are more.</p>
<p>Even not being successful, you still learn a ton, and if you&#8217;re a long time software developer, constantly learning and re-learning is probably something you already do anyway. So it&#8217;s ok to try some of the things above and fail, especially the last one. I&#8217;ve had a lot of failures. I even once refused work for 6 months in an attempt to learn how to double my rate. I failed but I <a href="http://jessewarden.com/2010/08/what-i-learned-about-trying-to-double-my-rate.html">learned a ton</a>.</p>
<p>I also posted a companion video to this post, embedded below, that <a href="http://youtu.be/KfXLSj2xWUE">you can watch</a>.</p>
<p><iframe src="//www.youtube.com/embed/KfXLSj2xWUE" width="640" height="480" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2013/09/breaking-the-100-per-hour-barrier.html/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>AIR App: Powerz &#8211; Play Dungeons &#038; Dragons 4th Edition Faster</title>
		<link>https://jessewarden.com/2009/09/air-app-powerz-play-dnd-faster.html</link>
					<comments>https://jessewarden.com/2009/09/air-app-powerz-play-dnd-faster.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Tue, 08 Sep 2009 19:19:32 +0000</pubDate>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Appz]]></category>
		<category><![CDATA[Awesome]]></category>
		<category><![CDATA[Branding]]></category>
		<category><![CDATA[Business Process]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=1758</guid>

					<description><![CDATA[This is a long post, so I&#8217;ve provided a short version, and content links to relevant sections if you want to skip around. Short Version I&#8217;ve built an AIR application in my spare time using Flex that helps you play Dungeons &#38; Dragons 4th edition faster. It took 6 months in my spare time and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>This is a long post, so I&#8217;ve provided a short version, and content links to relevant sections if you want to skip around.</p>
<p><strong>Short Version<br />
</strong></p>
<p><a href="http://jessewarden.com/archives/powerz/start-page-preview.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Powerz Start Page" src="http://jessewarden.com/archives/powerz/start-page-preview.jpg" alt="Powerz Start Page" align="left" /></a>I&#8217;ve built an <a href="http://adobe.com/products/air/">AIR</a> application in my spare time using <a href="http://adobe.com/products/flex/">Flex</a> that helps you play <a href="http://www.wizards.com/default.asp?x=dnd/4dnd/dndtestdrive">Dungeons &amp; Dragons 4th edition</a> faster.  It took 6 months in my spare time and cost around $50k to build, and $40 a month to maintain.</p>
<p><a href="http://powerzapp.com/screenshots.html">See</a> and <a href="http://powerzapp.com/download.html">download it here</a>.</p>
<p>It was created in response to my new players, who are tech saavy, having a slow time getting a game going.  I copied the design metaphor used in MMORPG games, as well as creating an online database via <a href="http://www.djangoproject.com/">Django</a> of user submitted content to help the process go faster, as well as supporting house rules.  In doing market research, I found my product is for a younger generation, and this makes it challenging to market.  I used an Iterative/Agile development process to ensure it got completed.</p>
<p>The app had 3 goals: make money, make our games quicker &amp; easier, and prove to myself I could execute.  I succeeded in the latter 2, and failed in the making money&#8230; so far.</p>
<p><span id="more-1758"></span></p>
<hr />
<p><strong>Contents</strong></p>
<ul>
<li><a href="#preface">Preface</a></li>
<li><a href="#introduction">Introduction: Why the need for Powerz?</a></li>
<li><a href="#thepowerofpowerbars">The Power of Power Bars</a></li>
<li><a href="#whyair">Why AIR?</a></li>
<li><a href="#whydjango">Why Django?</a></li>
<li><a href="#selfinflictediterations">Self-Inflicted Iterations</a></li>
<li><a href="#quicknoteonscrum">Quick Note on Scrum</a></li>
<li><a href="#schedule">Schedule</a></li>
<li><a href="#technicaldetails">Technical Details</a></li>
<li><a href="#flex3vs4">Flex 3 vs 4</a></li>
<li><a href="#libraries">Libraries</a></li>
<li><a href="#monkeypatches">Monkey Patches</a></li>
<li><a href="#developmentchallenges">Development Challenges</a></li>
<li><a href="#featurecasulaties">Feature Casualties</a></li>
<li><a href="#marketingandresearch">Marketing &amp; Research</a></li>
<li><a href="#targetaudience">Target Audience</a></li>
<li><a href="#triptodragoncon">Trip to Dragon*Con</a></li>
<li><a href="#failures">Failures</a></li>
<li><a href="#successes">Successes</a></li>
<li><a href="#conclusions">Conclusions</a></li>
</ul>
<p><a name="preface"></a><strong>Preface</strong></p>
<p><a href="http://powerzapp.com/screenshots/Power-Melee_Basic_Attack.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Melee Attack Power" src="http://powerzapp.com/screenshots/Power-Melee_Basic_Attack.jpg" alt="Melee Attack Power" align="left" /></a>I&#8217;ve spent my spare time the last 6 months building an AIR application called &#8220;<a href="http://powerzapp.com">Powerz</a>&#8220;.  Simply, it is an application that allows you to play <a href="http://www.wizards.com/default.asp?x=dnd/4dnd/dndtestdrive">Dungeons &amp; Dragons 4th edition</a> a lot quicker.  It was built in response to newer players hastily flipping back and forth through rule book pages, all the while lamenting how much easier it is to do this in <a href="http://worldofwarcraft.com">World of Warcraft</a>.</p>
<p>It also became a test for myself.  I wanted to see if I could release a product on my own, perhaps even turn a profit.  I&#8217;ve been attempting for 5 years to create an online version of D&amp;D, fueled by the wishful emails of those around the world who both managed to get their hands on alpha builds and validated my target market.  That, and I had recently become an advisor for a startup, so needed creditability that I had produced results in the product sphere as opposed to the service industry which I&#8217;m currently in (<a href="http://adobe.com/products/flex/">Flex</a> &amp; <a href="http://adobe.com/products/flash/">Flash</a> consulting/contracting).  I had just recently completed my first official Agile/<a href="http://aboutscrum.com/">Scrum</a> project getting a startup client to (*ahem* near) Alpha, and upon reflecting, knew I was now capable of releasing a real product on my own.</p>
<p><a name="introduction"></a><strong>Introduction: Why the need for Powerz?</strong></p>
<p>D&amp;D 4th edition was created, in my opinion, to cater to, what I call, the &#8220;WoW Generation&#8221;.  <a href="http://www.wizards.com/">Wizards of the Coast</a>, the company also responsible for <a href="http://www.wizards.com/magic/multiverse/default.aspx">Magic the Gathering</a>, owns the D&amp;D game.  They recognized that to gain broader appeal of a game traditionally challenging to learn and losing market share to video games, they needed to not only make it easier to learn and play, but also target this gaming demographic.  The new rules do just that.  They are easier to learn for those not inclined to &#8220;read a bunch of rules&#8221;, and the new power concept allows a gaming group to quickly ascertain how they can contribute to the group.</p>
<p><a href="http://powerzapp.com/screenshots/Power-Last_Ditch_Evasion.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Power - Last Ditch Evasion" src="http://powerzapp.com/screenshots/Power-Last_Ditch_Evasion.jpg" alt="Power - Last Ditch Evasion" align="right" /></a>The problem with the WoW gen&#8217;s, though, is that they grew up texting, and not only want, but EXPECT digital tools to be there, as well as cross device.  D&amp;D, at least currently, doesn&#8217;t totally work like that.  They have made great strides in years to provide online digital content, such as Character Builders, rules compendiums, and online magazines with exclusive content.  What&#8217;s funny to me is that the main goal for most of this content is to be printed to paper and used during gameplay.  If you want to use these tools strictly digitally, you can, but that wasn&#8217;t why they were made.  Ultimately, your still going to be using &#8220;real&#8221; books during gameplay.</p>
<p>When you have a background in <a href="http://en.wikipedia.org/wiki/Massively_multiplayer_online_role-playing_game">MMORPG&#8217;s</a>, or even just gaming on consoles, you look at rule books as primitive, and cumbersome, and ultimately, not as fun.  They, like me, know this problem has already been solved digitally.</p>
<p>What kept coming up as a hassle during gameplay with this new generation of gamers was referencing their character&#8217;s powers, the main crux of 4th edition rules.  I figured if I could solve this problem digitally, I&#8217;d be onto something special.  I knew I couldn&#8217;t solve everything; I&#8217;d tried multiple times in the past to digitize the entire D&amp;D experience, and I simply didn&#8217;t have enough resources to pull that off.  For a digital power bar, however, I didn&#8217;t need a lot of resources&#8230;</p>
<p><a name="thepowerofpowerbars"></a><strong>The Power of Power Bars</strong></p>
<p><a href="http://jessewarden.com/archives/powerz/powerz-bar-preview.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Powerz Bar Preview" src="http://jessewarden.com/archives/powerz/powerz-bar-preview.jpg" alt="Powerz Bar Preview" align="left" /></a>If you&#8217;ve ever played <a href="http://worldofwarcraft.com">World of Warcraft</a>, <a href="http://starwarsgalaxies.com">Star Wars Galaxies</a>, <a href="http://ddo.com">DDO</a>, or any other Massively Multiplayer Online Role Playing Game, they have the concept of a power bar.  There are a series of slots on the bottom, like a horizontal list in Flex, and in each you can drop a power into.  It&#8217;ll be represented as a little image icon that infers what the power does.  Upon rolling over them, they provide details of what they do.  Upon clicking them, you use them.  While veteran players use keyboard shortcuts and macros, this GUI concept is the core to most MMORPG&#8217;s today.  Players familiar with such games &#8220;get it&#8221;, just like you and I understand to click &amp; drag on a scroll bar to scroll text.</p>
<figure style="width: 387px" class="wp-caption aligncenter"><a href="http://jessewarden.com/archives/powerz/powerbar-wow.jpg"><img decoding="async" src="http://jessewarden.com/archives/powerz/powerbar-wow.jpg" alt="World of Warcraft Power Bar" width="387" height="32" /></a><figcaption class="wp-caption-text">World of Warcraft Power Bar</figcaption></figure>
<p>This interface element is important because in MMO&#8217;s, those powers, while forming the crux of the 2 most important aspects in those games, chatting &amp; fighting, they also serve another subtle purpose.  RPG games in general are technical.  They basically take a lot of math, specifically ratio&#8217;s &amp; percentages, and personify the results through the use of chance.  While neat from a geek perspective, newbie players, especially those not tech saavy, can get overwhelmed by information overload.</p>
<p><a href="http://jessewarden.com/archives/powerz/powerbar-ddo.jpg"><img loading="lazy" decoding="async" class="aligncenter" title="Dungeons &amp; Dragons Online Power Bar" src="http://jessewarden.com/archives/powerz/powerbar-ddo.jpg" alt="" width="393" height="42" /></a></p>
<p>Just like how Word hides non-frequently accessed information in menu&#8217;s that reveal, so to do MMORPG&#8217;s &#8220;reveal&#8221; information when the user requests it.  Additionally, since these interface elements are actually over top of a 3D virtual world, they need to be as non-intrusive as possible.</p>
<p><a href="http://jessewarden.com/archives/powerz/powerbar-swg.jpg"><img loading="lazy" decoding="async" class="aligncenter" title="Star Wars Galaxies Power Bar" src="http://jessewarden.com/archives/powerz/powerbar-swg.jpg" alt="" width="348" height="36" /></a></p>
<p>In short, they provide the user with the ability to learn what their character can do, when she/he can do it, all using a mnemonicÂ device of visual icons that relate to the action in a non-intrusive interface.</p>
<p><a name="whyair"></a><strong>Why AIR?</strong></p>
<p><a href="http://adobe.com/products/air/"><img decoding="async" style="padding-right: 4px;" title="Adobe AIR" src="http://jessewarden.com/archives/powerz/adobe_air.jpg" alt="Adobe AIR" align="left" /></a><a href="http://jessewarden.com/2007/06/what-rhymes-with-air-i-dont-care.html">I&#8217;ve bashed her in the past</a> andÂ got shot down by desktop developers who came out of the wood work. Â ToÂ this day I still don&#8217;t get clients asking me to build AIR apps. Â Regardless, it was a pretty clear choice as to why I needed AIR: offline capability to run Flex apps.</p>
<p>You can play D&amp;D ANYWHERE.  I&#8217;ve played at friends houses, at a <a href="http://www.turkey-creek.com/">camp site</a> deep in the woods, on a plane, a bus, etc.  All of these places don&#8217;t always have internet.  Nowadays with wireless and cell phones that have decent coverage, you can <a href="http://9to5mac.com/iPhone-3G-tethering">tether</a> on your device to ensure you have an internet connection just about everywhere.  &#8220;Just about&#8221; isn&#8217;t good enough; if you can&#8217;t use it, or it&#8217;s a spotty connection, you view the &#8220;<a href="http://en.wikipedia.org/wiki/Cloud_computing">cloud</a>&#8221; as holding your data hostage vs. some benevolent caretaker.</p>
<p>So, I didn&#8217;t want an internet connection to be a requirement, and thus, targeted AIR vs. a web browser.  If you know me, using the Flex SDK was a no-brainer.  If you don&#8217;t, here&#8217;s the run down:</p>
<ol>
<li>Needs to work on as many platforms as possible.  AIR works on most PC, Mac, and enough Linux distros.  I use a Mac mostly, my gaming group uses Linux and Windows.  The Character Builder for DDi works on a PC with .NET.  Using <a href="http://www.codeweavers.com/products/">CrossOver</a> or <a href="http://www.parallels.com/">Parallels</a> isn&#8217;t cheap.  Buying an OS + emulation software when you already have a working computer is lamesauce.</li>
<li>Writing my own component framework is time consuming.  It took me 6 months to build <a href="http://code.google.com/p/shurikencomponents/">Shuriken</a> for Flash Lite 2, I&#8217;m still working on <a href="http://code.google.com/p/coreplay/">CorePlay</a> for pure AS3&#8230; so if I ended up doing that, I&#8217;d spend all my time on developing code to develop code vs. finishing my product.  Flex has all the components &amp; styling features I need, Flex 4 more so.</li>
<li>I make my living developing in Flex Builder.  This is what I&#8217;m most comfortable, and thus productive in.</li>
</ol>
<p><a name="whydjango"></a><strong>Why Django?</strong></p>
<p><a href="http://djangoproject.com"><img decoding="async" style="padding-right: 4px;" title="Django Project" src="http://jessewarden.com/archives/powerz/django_logo.gif" alt="Django Project" align="left" /></a>Once I personally started using Powerz in my game sessions, taking her for a test run with my gaming group, a new problem arose: setup time.  While battles finally went a lot faster, and focused more on strategy and chaos vs. wtf can I do, actually STARTING to play took awhile.  Players had to manually input the powers from the Players Handbook into Powerz.  Without <a href="http://en.wikipedia.org/wiki/Optical_character_recognition">OCR</a>, this is a lot of meticulous hand typing. Â This included those who played with made up house rules.</p>
<p><a href="http://jessewarden.com/archives/powerz/Community-login.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Community Login" src="http://jessewarden.com/archives/powerz/Community-login.jpg" alt="Community Login" align="right" /></a>I thought, why couldn&#8217;t we do something like the CDDB days of old?  <a href="http://en.wikipedia.org/wiki/CDDB">CDDB</a> was an online database where people would submit CD track lists.  That way, when you turned a CD into MP3&#8217;s, it automatically filled out the song names and album name for you. Â By the time it got popular, most CD&#8217;s were in the database so you didn&#8217;t need to submit them yourself.  This was the first Web 2.0 (aka the read-write web) phenomenon that I remember.  Basically you are leveraging the community, much like <a href="http://wikipedia.com">Wikipedia</a> leverages the knowledge from every contributor in the world.  This is a double-edged sword, as sometimes CDDB would have incorrect data without an easy way to change it.  Wikipedia has had its fair share of drama about article authenticity, and who defines the truth when multiple authors disagree about the same topic.</p>
<p>Regardless, both are using the forces of good, and showcase how leveraging community input can greatly benefit the masses.  Two heads are better than one, and thousands are just f&#8217;ing awesome.</p>
<p>I set out to build an online database of powers so when one person submitted it, everyone else could use it. Â The most common ones, say all 1st level ones for all classes, would be ready to go.  That way, even new players could quickly get up to speed.  Powerz is supposed to speed up gameplay, and this would be the final lynchpin.</p>
<p><a href="http://jessewarden.com/archives/powerz/Community-main.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Community Main" src="http://jessewarden.com/archives/powerz/Community-main.jpg" alt="Community Main" align="left" /></a>I hate, and suck, and server-side anything.  I&#8217;d argue the majority of arguments, philosophical debates, and technical podcasts about software are regarding server-side development (iPhone apps aside).  When people talk about <a href="http://martinfowler.com/articles/injection.html">Inversion of Control</a>, server clustering, or <a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming">Aspect Orientated Programming</a>, my eyes glaze over, I <a href="http://jessewarden.com/archives/facepalm.jpg">face palm</a>, and am like, &#8220;Wow&#8230; that&#8217;ll solve like 10% of my problems.  That 10% is on the server&#8230; WHERE MY CODE ISN&#8217;T RUNNING!&#8221;  To be fair, the majority of all cool software is running on the server.  Most Flex apps I&#8217;ve written are merely pretty faces for pimp server-side action.  The problem with server-side stuff is that you can&#8217;t see it.  I&#8217;m a visual person, I went to art school, and if I can&#8217;t see it, to me it&#8217;s boring.  I like seeing visual results from my coding efforts, and no, logging statements don&#8217;t count.</p>
<p>So&#8230; I knew I was in trouble with my idea.  Every time in the past I had such an idea, I merely turned to <a href="http://php.net">PHP</a>, since finding good server devs looking to work for free is really hard.  PHP is available on just about every web host, for free, and there are a lot of resources out on the internet for it.  It&#8217;s also very similar in syntax to ActionScript, so learning it was easy.  The problem is, I&#8217;m not &#8220;in&#8221; the PHP community. Â Creating a user account system may seem like a reasonable programming task to me, but an ignorant waste of time to a veteran PHP programmer who has used <a href="http://framework.zend.com/?fle=Adobe">Zend</a> or <a href="http://drupal.org/">Drupal</a> on many projects.  Most of my endeavors into larger PHP systems have failed because the workload was just to large for me to tackle both the front and back-end.  I knew this time I HAD to find whatever framework others were using for a user account system.  I&#8217;ve failed to find like-minded server-side developers in the past for such ideas.  I actually had a friend offer his services for this very project, but I was concerned I might actually make money, and I make a rule of not mixing friends and business.</p>
<p><a href="http://jessewarden.com/archives/powerz/Community-01.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Community Powers Search Results" src="http://jessewarden.com/archives/powerz/Community-01.jpg" alt="Community Powers Search Results" align="right" /></a>However, I had just got off a <a href="http://www.djangoproject.com/">Django</a> project.  Having spent 5 years or so evangelizing <a href="http://amfphp.org/">AMFPHP</a>, yet never actually successfully getting native object passing working, I decided I&#8217;d see how easy it was in Python.  Additionally, my experiences using Django&#8217;s user administration interface along with <a href="http://pyamf.org/">PyAMF</a> Flex integration was a very pleasant experience.  Since I&#8217;d already taking a look at Ruby on Rails awhile ago, I figured I&#8217;d give Python a chance.</p>
<p>Best decision ever.</p>
<p>I don&#8217;t know Terminal, my SQL knowledge equates to SELECT * FROM *, and I&#8217;ve never coded Python before.  Django is the shit.  It&#8217;s so easy, I learned my way around Terminal enough to not only &#8220;run a local server&#8221; (I know, right?), sync my database, and even play with <a href="http://www.python.org/">Python</a> code, just like <a href="http://adobe.com/products/director/">Director&#8217;s</a> message window.  I even learned how to remote ssh into my production server, install PyAMF remotely, and deploy my code.  Django is merely a framework atop of Python, but you have to know all that insane crud just to do it.  Oh yeah, and I ended up buying <a href="http://macromates.com/">TextMate</a> (in part to <a href="http://twitter.com/kristoferjoseph">Kristofer&#8217;s</a> recommendation) to use for coding Python.</p>
<p><a href="http://jessewarden.com/archives/powerz/Community-02.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Community Characters Search Results" src="http://jessewarden.com/archives/powerz/Community-02.jpg" alt="Community Characters Search Results" align="left" /></a>Speaking of Python, it&#8217;s a LOT like ActionScript 1.  Really strange going back to loose typing.  Unfortunately, the only real benefit I found was more succinct code.  The Aspect Orienated/<a href="http://en.wikipedia.org/wiki/Functional_programming">Functional</a> stuff that uses the <a href="http://en.wikipedia.org/wiki/Python_syntax_and_semantics#Decorators">Decorator pattern</a> with metadata tags for designating what methods require the user to be logged in only works for more recent builds of Python.  Still&#8230; I got it and think its hawt.  Additionally, the fact that you can import just a method of a class and use it is neat.  There&#8217;s been a request on an unnamed list requesting ActionScript 3 get this ability so when you import 1 method of a library, you don&#8217;t end up importing the whole library, and thus incur the file size penalty.  Since SWF is for web, this makes a lot of sense in investing in such a feature.  Python&#8217;s for loops?  Holy fish, advanced, and really cool stuff, way easier than doing similiar things in ActionScript 3 (faster? doubt it).  I still don&#8217;t get their slicing syntax, but I&#8217;m sure if I did it every day I would.</p>
<p>So why Django?  Within 3 days I had learned Python, Django, and PyAMF integration to have a working user authentication system working in my Flex app.  Blah blah blah&#8230; open source has no value&#8230; blah blah blah.</p>
<p>&#8230;I suck at debugging it, though, a friend told me to look into Python logging, but I just ran out of time&#8230; print print print OT OT OT.  That, and my admin only works on my local box, not the remote server&#8230; *ahem*.</p>
<p><a name="selfinflictediterations"></a><strong>Self-Inflicted Iterations</strong></p>
<p>All my personal projects suffered from the most common symptom that affects a lot of us software developers: starting new projects is ALWAYS more fun than finishing them.  You accrue a long list of awesome ideas that never make it to fruition.  Of those, a few you blog about.  Knowing this industry, a bunch are probably worthy of actually finishing and marketing because they&#8217;ll make bling&#8230; but&#8230; we&#8217;re a busy bunch.  That, or you see no point because you have no clue how to monetize them.</p>
<p>I&#8217;ve had this happen 3 times with my major D&amp;D online project in 5 years, 3 times with some games, and once with every other project that wasn&#8217;t specifically created FOR a blog entry since my career started.  I almost swore a blood oath before starting Powerz.  I didn&#8217;t really have too, though, because of circumstances.</p>
<p>First, I had just got off the best gig I&#8217;ve had in my entire career.  It was working for a startup as a service consultant through <a href="http://enablus.com/">Enablus</a>.  So, I make bling, but see $0 bling when they insanely succeed.  Quite the soul reflection project.  Second, I read a book called &#8220;<a href="http://www.amazon.com/Rich-Dad-Poor-Money-That-Middle/dp/0446677450/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1252451054&amp;sr=1-1">Rich Dad, Poor Dad</a>&#8221; upon a recommendation form <a href="http://www.dropthezero.com/">a friend</a>, and was then pissed for 3 weeks straight.  Third, I now knew how to do Agile development which was better than my made up iterative process of the past.  Fourth, D&amp;D 4th edition really is slow if you don&#8217;t know your powers by heart; it&#8217;s even worse for DM&#8217;s who have 50 billion other things to keep track of.  I needed this tool!</p>
<p>I made a simple rule.  If I was going to work on Powers, I needed to release SOMETHING a week from when I started.  If I grabbed a beer and started coding on a Friday night, there better be a new build, with associated forum post, WORKING up online the following Friday.  If I had something come up, like say real, paying work, or my kid(s) got sick, or whatever&#8230;. then 2 weeks. If that didn&#8217;t work because, say I only had 4 hours in a 2 week period, then I&#8217;d lock myself into finishing just one feature before I was allowed to work on anything else.</p>
<p>Failure was not an option.  To fail is to fail myself, and everything I stood for, and for those who listened to my blog entries full of &#8220;advice&#8221;.  If I did fail, it meant Agile didn&#8217;t work, and all <a href="http://jessewarden.com/2008/11/agile-chronicles-1-stressful.html">10 of those blog entries</a> I wrote espousing it were utter bullshit, and I needed to die in a fire.  Seriously.  After being so frustrated for so long about &#8220;figuring out&#8221; software development for the past 9 years, this was the line in the sand.  Pick your platform, pick your tool, pick your framework, and either put up, or shut up. Â Get something done vs. proselytizing about &#8220;how to program&#8221; with nothing to show for it.</p>
<p>In short, finish something I started.</p>
<p>6 months later, I&#8217;ve released version 1.0.  That feels f&#8217;ing good.  Really good.  That, and D&amp;D is easier to play now for me, and a lot of others.</p>
<p><a name="quicknoteonscrum"></a><strong>Quick Note on Scrum</strong></p>
<p>Remember, if you ever hear about this Agile or Scrum stuff, and are like, &#8220;Wtf?&#8221;, don&#8217;t stress.  All you need to know about using Scrum correctly is release working software with a new feature every week (or every 2 weeks).  That&#8217;s it, that&#8217;s all you need to do to be JXL Scrum compliant.  If you don&#8217;t do that, you should really take a look at what you are really trying to accomplish.</p>
<p>If you&#8217;re a manager who&#8217;s trying to implement it, and your developers keep going off on paths they weren&#8217;t assigned, play to their ego&#8217;s.  For example, if someone says, &#8220;I could write a login form in less than a day!&#8221;.  If it then takes them 8 days for the form to actually work, call them on it.  I guarantee you they&#8217;ll spout off about &#8220;OOP/Framework setup&#8221;, or some other lack-of-<a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself">DRY</a>-adherence excuse.  That&#8217;s ok; the point here is to show them that what they thought they could do, they didn&#8217;t actually execute on.  They&#8217;ll either re-assess what it really takes to develop even simple things, or you&#8217;ll come to a mutual understanding of what &#8220;working&#8221; really means.</p>
<p>I had to do that.  In 2001, I created a stock charting application in Flash 5, AS1 pre-#initclip days, knowing very little OOP, zero best practices, and no frameworks, in 1 month.  Today, that same application would take me 4 to 6 months, and cost 177% more per hour.  Granted, the devil is in the details (quality of user experience, less bugs, more features, I actually know what I&#8217;m doing now + have experience, etc), but that, to me, says something about my ability to execute.  Those in software know faster doesn&#8217;t mean better&#8230; but when you start splitting hairs about even simple features, you find some surprising things about yourself.  I call this, programmer self-awareness through Scrum.</p>
<p><a name="schedule"></a><strong>Schedule</strong></p>
<p>For those who are interested, here is how my schedule worked out.  When I mention a week, I&#8217;m speaking about a week of development time.  So, if I started coding on Friday night, but only put in 4 hours for an entire week&#8230; I certainly had very little to offer in a true build.  So, my first rule was, if I could do a week, do a week, and release.  If I couldn&#8217;t because I had real work to do, then I&#8217;d instead get 1 feature DONE and release.  This was still hard, because even if I could only devote like 2 hours a week to my personal project, it HAD to be on that one feature, and I had to force myself to finish it so I could get a build up, and move onto another.  It was far from perfect, but it&#8217;s as Scrum as I could get with my free time&#8230; and it guaranteed I&#8217;d release multiple builds with enough room for user feedback.</p>
<ul>
<li>First 3 weeks, spent designing &amp; doing initial prototyping (aka design phase in Waterfall).  I had no gig lined up, so worked 3 weeks straight on my own stuff.  I worked for about 7 days straight in Photoshop CS3.</li>
<li>Work 1 hour one night, 4 hours another, 8 maybe on a weekend, or perhaps none for 4 days in a row.  Bottom line, I still followed my weekly/bi-weekly/single feature release schedule.</li>
<li>One build took 6 weeks (Alpha 9 to Beta 1) because I had to learn Django and do real work at the same time.  Some weeks during that time, I only worked 1 to 2 hours per week, others, I&#8217;d work 3 days straight.</li>
<li>Some weeks were coding.  Some weeks were pure Photoshop.  Three weeks was learning/implementing Django.  Four weeks was setting up the website, porting all code &amp; assets to work on it, and installing all forum and blog software.  All was mixed amongst each other.  Since I was doing everything myself.</li>
<li>I did Analytics once in the beginning, and then changed it 2 weeks later when I couldn&#8217;t understand my own metrics.</li>
<li>Start Date: Around April 5th, 2009.</li>
<li>End Date: Hopefully September 26th, 2009.</li>
<li>Total Time: 6 months</li>
</ul>
<p>It&#8217;s hard for me to predict how long Powerz would of taken had I been able to spend 100% of my time on it.  A lot of things came up, positively &amp; negatively, during development that adversely affected the timeline.  Users asked for features, work flows I originally tried didn&#8217;t pan out, Photoshop designs took a few tries, and learning Django staggered overall development on the Community portion.  All I know is, Flex Builder 3 and Flex SDK 3.3 is foogin&#8217; solid for what I needed.</p>
<p><a name="technicaldetails"></a><strong>Technical Details</strong></p>
<p>The <a href="http://powerzapp.com">web site</a> is pretty standard stuff.  <a href="http://powerzapp.com/forum/">Forum</a> is <a href="http://www.phpbb.com/">PHPBB</a>, and blog is vanilla install of <a href="http://wordpress.org/">WordPress</a>.  Hopefully post 1.0 launch, I can modify the blog to match the rest of the site look and feel (excluding forum) via <a href="http://www.themedreamer.com/">the Dreamer</a>, an easier way to design WordPress sites via <a href="http://adobe.com/products/dreamweaver/">Dreamweaver</a>.  Her majesty used it for her site and it&#8217;s pretty cool. Â I also need to redo my <a href="http://jessewarden.com/projects/gamingtools/powerz/screencast/">dated screen cast</a>, and tons of other things.</p>
<p>While I did the original web site designs in <a href="http://adobe.com/products/photoshop/">Photoshop</a>, the site itself was done by her majesty and I in <a href="http://adobe.com/products/fireworks/">Fireworks</a>. Â Fireworks&#8217; text handling is superior to Photoshop&#8217;s, and now that CS4 shares the same font engine, you can get good looking interfaces. Â If Photoshop were to improve their text handling capabilities, I&#8217;d probably still use Fireworks for it&#8217;s easier object editing + grouping + moving functionality. Â For the web with lots of content, it was just quicker for me and her majesty.</p>
<p>For the video, shot using a <a href="http://www.amazon.com/Sony-DCR-SR200-Handycam-Camcorder-Optical/dp/B000M3GJKU/ref=sr_1_1?ie=UTF8&amp;s=electronics&amp;qid=1253188966&amp;sr=8-1">Sony DCR-SR200</a>, and edited in <a href="http://www.adobe.com/products/premiere/">Premiere</a> CS3 &amp; <a href="http://adobe.com/products/aftereffects/">After Effects</a> CS3. Â <a href="http://www.telestream.net/screen-flow/overview.htm">ScreenFlow</a> was used for demoing the software.</p>
<p><a name="flex3vs4"></a><strong>Flex 3 vs 4</strong></p>
<p>Yes, I very much wanted to use <a href="http://labs.adobe.com/technologies/flashbuilder4/">Flex 4</a>.  Unlike Flex 2 Alpha, however, she&#8217;s unstable and changes all the time.  You could build some pretty Enterprise stuff on Flex 2, Beta 1.  I would never do such a thing with Flex 4 just because she&#8217;s in such flux, and the IDE (+ <a href="http://labs.adobe.com/technologies/flashcatalyst/">Catalyst</a> builds) is somewhat flaky.  Obviously 6 months later things are more stable&#8230; but they still changed a lot (fx prefix, Halo interop, etc.).</p>
<p>I used Flex Builder 3 &amp; Flex SDK 3.2&#8230; then 3.3&#8230; then 3.4.  I use AIR 1.5.2.  AIR still has a bug where you can&#8217;t seem to use compc (aka Library Projects) because of some weird Vector bug in playerglobals.swc or something.  So I just gave up on using a library project.</p>
<p><a name="libraries"></a><strong>Libraries</strong></p>
<p>I have 1 Flex project, and a ton of libraries.  Ones of note are:</p>
<ul>
<li>Cliff Hall&#8217;s <a href="http://puremvc.org/">PureMVC</a></li>
<li>Ely&#8217;s <a href="http://www.quietlyscheming.com/blog/2007/01/23/some-thoughts-on-doubt-on-flex-as-the-best-option-orhow-i-made-my-flex-images-stop-dancing/">SuperImage</a> (that I <a href="http://jessewarden.com/2009/08/fix-for-elys-superimage.html">patched</a>)</li>
<li>Claus Wahlers&#8217; and Max Herkender&#8217;s <a href="http://codeazur.com.br/lab/fzip/">FZip</a> for reading &amp; writing my custom file formats</li>
<li>Christian Cantrell&#8217;s <a href="http://code.google.com/p/as3nativealertlib/">NativeAlert</a> ported to Flex</li>
<li><a href="http://code.google.com/p/gaforflash/">Google Analytics</a></li>
<li><a href="http://google.com/adsense">Google AdSense</a></li>
<li><a href="http://code.google.com/p/as3corelib/">as3corelib</a> for <a href="http://json.org">JSON</a>, used in reading &amp; writing custom file format</li>
<li>Adobe AIR Update framework (which refuses to GTFO of RAM) with custom badges written in Flash (zomg!)</li>
<li>my DebugMax window which is a lame attempt to copy that older Flash debug window (the Portuguese one)</li>
<li>&#8230;and Grden&#8217;s <a href="http://rockonflash.wordpress.com/2007/05/16/as3-localtolocal-and-coordinatetools/">localToLocal function</a></li>
<li>Server is running Django on Python, using PyAMF to send AMF objects back and forth. I&#8217;m only using one class; getting nested ValueObjects to work with inherited and one to many relationships in Django&#8217;s Models was nigh impossible to debug. Â For now, I just pass simple Objects which are uber-easy to parse.</li>
</ul>
<p>Blah blah blah&#8230; open source provides no value&#8230; blah blah blah.</p>
<p><a name="monkeypatches"></a><strong>Monkey Patches</strong></p>
<ol>
<li>Commented out a bunch ofÂ <a href="http://bugs.adobe.com/jira/browse/SDK-20784">InterManagerRequest</a> code in AIR&#8217;s NativeDragManagerImpl class. Doing drag operations would cause the app to lock up for 7 to 11 seconds. Not sure if this was fixed in 3.4, but I don&#8217;t load multiple Flex apps with different SDK versions, so don&#8217;t need this code.</li>
<li>Added bitmap smoothing in SWFLoader, which Flex SDK 3.4 (or 3.3 I forget which, added officially)</li>
<li>Added a numLines getter to Label for more accurate text height measurement&#8230; which I then later didn&#8217;t use. Â Proper invalidation fixed my measurement bug; text can be finicky, but if you wait a frame&#8230;&#8230;</li>
</ol>
<p><a name="developmentchallenges"></a><strong>Development Challenges</strong></p>
<p>There were 3 development challenges I faced.</p>
<p><a href="http://jessewarden.com/archives/powerz/Character-v2-preview.jpg"><img decoding="async" style="width: 160px; padding-right: 4px;" title="Character" src="http://jessewarden.com/archives/powerz/Character-v2-preview.jpg" alt="Character" align="right" /></a>The first was developing in AIR.  If you are using Flex in AIR, it&#8217;s nearly the same thing.  The hard parts were learning how Windows work, and their quirks (such as when does Window REALLY get its reference to nativeWindow?).  How do you design for this as a designer, and what is an appropriate design metaphor?  Multiple windows, or 1 window with many states?  Also, event bubbling doesn&#8217;t work with windows, since each has it&#8217;s own stage, so there was a learning curve of when to manually re-dispatch, and when to just hand off to PureMVC Mediators.</p>
<p>The second was learning to work with reading and writing files.  The FileReference class is EASY, but there are actually 3 classes (really you just work with 2) for AIR.  They too have intricacies to learn, and how you can abstract them, and what the costs are in doing so.  What was fun to figure out was how to associate a file with a document window in the PureMVC framework.  I really had a tough time trying to tightly couple something when you&#8217;re technically not supposed to tightly couple anything in programming.</p>
<p>The third was creating a file format.  I believe most traditional developers would of used some sort of serialization via ByteArray and the <a href="http://livedocs.adobe.com/flex/3/langref/flash/utils/IExternalizable.html">IExternalizable</a> interface for your objects.  To me, that stuff takes a lot of work, and isn&#8217;t easy for me to debug, nor verify if it worked.  Maybe to those who think in 0&#8217;s and 1&#8217;s, but not me.  It took some tinkering; I copied how SWC works. Â SWC is a ZIP file with some XML and binary assets all inside.  My file formats are basically the same thing; a ZIP file with a JSON text file holding the serialized object, images for any icons, and a text file determining what type the file format is (since you can&#8217;t rely on file extension).  This allowed me to open up the file to see it&#8217;s contents and confirm my code worked as well as perusing the JSON to see if my objects serialized correctly.</p>
<p>What was great about being the only developer was that I was also the designer and back-end developer. Â I knew how to design assets for Flex and could predict what I&#8217;d need designed.  As the back-end developer, I could create data that the client would need, thus making my job easier in both places.</p>
<p><a name="featurecasulaties"></a><strong>Feature Casualties</strong></p>
<p>I had 2 features that caused major scope creep, and thus extended how long it took.  They weren&#8217;t a waste of time, but as with every project, I learned something.</p>
<p>The first was the whole &#8220;document editing process&#8221; that people are used to.  You open a file, edit it, save it if it&#8217;s dirty, and close the &#8220;document&#8221;.  If you &#8220;Save As&#8230;&#8221;, you create a new file, yet use same window.  I didn&#8217;t use this model at first.  Instead, I just opened files, kept a reference to the file handle for each AIR window, and removed it when the window closed.  However, this is not how every other desktop application works.  Additionally, for those on network drives, you couldn&#8217;t really work with the files easily when moving things since it always had an opened file handle.  So, it was a pretty big re-write/re-factoring effort to put this functionality &amp; work flow in.  I know how to do it now, but I&#8217;m just glad no one asked for undo yet. *whew*</p>
<p>The second was pimping out Christian&#8217;s NativeAlert window.  I spent 3 days in <a href="http://adobe.com/products/aftereffects/">AfterEffects</a> when I was between gigs creating a transition in and transition out for the window. Â Instead of just popping in, it&#8217;d &#8220;materialize&#8221; in, all magical like.  To me, and one of my users, it looked awesome.  It got old after 2 uses because you had to wait for it and there are a few alerts when saving files.  If I speed it up any, it loses fidelity&#8230; so I just removed it.  It required a lot of custom code to make the alert do it&#8217;s modality magic in time with the transition.  I didn&#8217;t get to use any of it.</p>
<div>
<p><object id="player" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="player" /><param name="allowfullscreen" value="true" /><param name="src" value="http://jessewarden.com/projects/gamingtools/powerz/oldalerts/preview/alert_skin.swf" /><param name="align" value="middle" /><param name="quality" value="high" /><embed id="player" type="application/x-shockwave-flash" width="450" height="400" src="http://jessewarden.com/projects/gamingtools/powerz/oldalerts/preview/alert_skin.swf" quality="high" align="middle" allowfullscreen="true" name="player"></embed></object></div>
<p><a name="marketingandresearch"></a><strong>Marketing &amp; Research</strong></p>
<p>This was the most interesting for me.  While I&#8217;m not a good salesman, I feel that I get online marketing and branding.  I also feel like I understand my target audience, since I&#8217;m part of that audience.  I actually did market research (aka learning my target audience and their needs) both at the start and during development.</p>
<p>I looked online and read about what WotC was offering, and then I looked at all the 3rd party offerings.  I took a few for a spin.  I read user reviews on forums and blogs, especially the passionate ones.  I wanted to gain a better understanding of what they liked about the software, and how they expected software to work.  There wasn&#8217;t really a pattern.  The bitching about lack of Linux/Mac support was low, and a lot of the 3rd parties utilized Java.  For those that didn&#8217;t, there we already well documented ways of installing a Windows emulator.</p>
<p>One thing that reading the forums did for me was really educate me on the current flux of the industry.  Technology really has changed, and continues to change, table top gaming.  WotC is in an interesting time of the market, and frankly I&#8217;ve think they&#8217;ve done a good job on positioning their D&amp;D brand &amp; rules for 4th edition to perform well with these changes.  Where they haven&#8217;t done entirely well is executing both their community aspects online, as well as delivering their associated digital tools.</p>
<p>The short version of WotC&#8217;s transition to the digital age is, as magazine sales declined, WotC first sold their magazines to <a href="http://paizo.com/">Piazo</a>, and later brought them back and incorporated them into their new online subscription service; they no longer print magazines.  You get the monthly magazines digitally, exclusive content, as well as access to their desktop and web tools.  There are good and bad things about this.  Some of their software isn&#8217;t released years later, but the ones that are are definitely nice.</p>
<p><a name="targetaudience"></a><strong>Target Audience</strong></p>
<p>I wrote something similar to this over a the <a href="powerzapp.com/blog/2009/09/ddis-character-builder-powerz.html">Powerz blog</a>. Â Bottom line, there is a lot of confusion, at least for me, on who really is the target demographic.  The high level view is that the older players prefer tangible rule books, whereas the younger ones are more apt to digital content.  That&#8217;s where the black and white views end.  Some from both groups are fine with digital content, but intend to transfer that content to paper in use in their games.  Others would prefer to wholly digital, yet still play in person with their friends; like a LAN party.</p>
<p>I intended to confirm this suspicion beyond just talking online&#8230;</p>
<p><a name="triptodragoncon"></a><strong>Trip to Dragon*Con</strong></p>
<p>&#8230;so I took a trip to <a href="http://dragoncon.org">Dragon*Con</a> 2009 this year.  I go every so often to stock up on new dice as well as to see the <a href="http://www.501st.com/">501st</a>.  My goal this year was to promote Powerz, and meet potential customers.  I knew it would be challenging for a few reasons.  First off, finding D&amp;D players is actually hard.  It&#8217;s a huge Sci-fi &amp; fantasy conference; it&#8217;s not solely for D&amp;D&#8217;ers.  Additionally, most D&amp;D&#8217;ers who do go play with their friends at predefined tables in a reserved hotel ballroom.  These are usually niche groups, and while friendly, you can&#8217;t just barge in on them in a middle of game.  If someone did that to me during mine, I&#8217;d be really ticked off.  Additionally, the conference itself is confusing because it&#8217;s spaced around 4 semi-adjoining hotels (Hilton, Marriott, Sheraton, etc.), and signage isn&#8217;t large/verbose enough for you to get a clear picture of where you are, nor what events are happening where.  I knew it&#8217;d be hard.  Her majesty helped set my expectations to a reasonable level.</p>
<p>My first attempt was while waiting in dice line (like a food large buffet, except there are different colored dice you can choose from).  One particular customer was taking awhile to get his transaction finished, and was in a TF2 spy costume (I think), so I figured he was a good target.</p>
<p>&#8220;Hey chief, you play D&amp;D?&#8221;</p>
<p>&#8220;Yeah!&#8221;</p>
<p>&#8220;Cool, you play 4th edition?&#8221;</p>
<p>&#8220;Naw, 3.5.&#8221;</p>
<p>*sigh*</p>
<p>I then asked the attendant who was waiting on customers, but he didn&#8217;t play, just pointed to one of his co-workers; but they were UBER busy.  Even <a href="http://vimeo.com/6553056">Solid Snake briefly came out of his box</a> to browse their wares.  I didn&#8217;t want to annoy every customer, so moved to another vendor booth, full of D&amp;D books.</p>
<p>A girl was just sitting down in a chair, and lamenting about how good it was to sit down.  Prime target.</p>
<p>&#8220;Hey, you play D&amp;D?&#8221;</p>
<p>&#8220;Yeah&#8230;&#8221;</p>
<p>&#8220;4th edition?&#8221;</p>
<p>Irritatedly, &#8220;Only because my group made me&#8230;&#8221;</p>
<p>&#8220;Rad, do you mind if you ask you a few questions about some software I&#8217;m building?&#8221;</p>
<p>Cautious, and body language suggesting she was about run at the slightest sign I was a vampire, &#8220;Ooookkkayy&#8230;.&#8221;</p>
<p>I sat down next to her on the floor to make her feel more comfortable with my laptop, and briefly walked her through why I created Powerz, and what it does.</p>
<p>She immediately got excited, &#8220;Oh we already use that through our DM.  He uses WotC&#8217;s subscription service&#8230; DD something&#8230;&#8221;</p>
<p>&#8220;DDO or DDi?&#8221;</p>
<p>&#8220;Yeah.&#8221;</p>
<p>&#8220;Which one?&#8221;</p>
<p>She shrugged but excitedly explained, &#8220;I don&#8217;t know, but it&#8217;s great.  You can input all of your character data, and it prints out all your powers.  Our whole group does it.&#8221;</p>
<p>I then proceeded to ask her questions about how her group plays, and take notes.  Another gent from her gaming group joined in on the conversation, and motioned to a 3rd member who was also browsing books nearby.  After I had asked my questions, I thanked them for their time&#8230; and went looking for a bar.  I suddenly felt insecure, &#8216;How could DDi do all that?  There is no way, I&#8217;ve seen the screen shots, read the reviews&#8230;.&#8217;</p>
<p>While waiting for the bar tender who was overworked, and was already getting heckled by some disgruntled women next to me, I reflected on those I had talked to.  I knew a lot of the older generation was very pro-3.5, me included.  I really like, still, the 3.5 rules and felt they were akin to Macromedia&#8217;s Flash 8; the pinnacle of the company.  I started getting really depressed, and quickly started going over all of my past research in my head.</p>
<p>&#8230;then I remembered something the girl had said.  &#8220;Print them out.&#8221;  Print?  To paper?  wtf?  A smile came to my face, I gave up waiting on the bartender, and quickly headed to where I remembered the D&amp;D gaming tables being the previous year.  I stopped by the bellman&#8217;s desk to obtain some change so I could buy a few people beers in exchange for me pestering them with questions.</p>
<p>Paper.  That was really what I kept seeing.  The generation gap in that one prefers tangible assets to play with and the younger ones do not.  Again, it&#8217;s not that black and white sometimes, but it&#8217;s still true.  While waiting 1 hour and 40 minutes in line, I met a father who had brought his 11 year old daughter to &#8220;meet&#8221; the creators of the online game she played.  It was some alternative to <a href="http://www.clubpenguin.com/">Club Penguin</a>,Â which was apparently ruined under new management.  She was really excited, and wanted to be a programmer when she grew up.  The father, clearly out of his element, saw me in my business professional getup, clearly over dressed for such a casual, and often costumed event, and seemed happy to have some one to talk to.  He found it strange that his daughter would spend his money on these online games for things that didn&#8217;t exist.  Instead of a new barbie doll, she&#8217;d get a some new, exclusive outfit for her online character.  We discussed her online habits, and those of her friends.  I explained what I did, and he was intrigued.</p>
<p>His daughter is my target audience.  The girls and boy in front of her, definitely early teens, one dressed up as <a href="http://en.wikipedia.org/wiki/Naruto">Naruto</a>, and others as <a href="http://en.wikipedia.org/wiki/List_of_InuYasha_characters#Sango">Sango</a> from InuYasha&#8230; those are my target audience.  They grew up texting, the internet always existed.  Those who were my age, dressed up as star trek characters&#8230; those probably aren&#8217;t my target audience.  These kids revel in online content, but still have social interactions with each other in person.</p>
<p>People like me, and the kids who are used to digital tools don&#8217;t mind <strong>keeping</strong> things digital.  Others see digital tools as a means to a paper end.</p>
<p>Upon leaving, I was convinced my target audience was mostly online and not at Dragon*Con&#8230; or at Dragon*Con WITH their PARENTS.  It was a great learning experience, even talking to the few people I did was helpful.</p>
<p><a name="failures"></a><strong>Failures</strong></p>
<p>The project as a whole, while successful, failed to meet one of its primary goals: make money.  It does have some successes, which I document below.  I had two main goals: releasing a product to prove I could execute, and to make money, enough to cover costs.  Currently, there is not enough community features to justify a subscription pricing model.  Additionally, I highly doubt I&#8217;ll get enough users to cover the costs via the ad supported model I use currently.</p>
<p>If you add up all the costs:</p>
<ul>
<li>Around 6 to 10 weeks of man hours (design, development, marketing + expenses)</li>
<li>hosting costs ($20 hosting + $20 Django container @ Mediatemple)</li>
</ul>
<p>The total comes to around $50,000.  Each month I go $40 more into the hole as the ads currently aren&#8217;t providing enough revenue to cover costs, and I haven&#8217;t figured out how to monetize the anonymous usage data.</p>
<p>I have a new idea that will actually generate revenue, and Powerz could actually be a companion application, so that&#8217;s a positive.</p>
<p>I&#8217;m not sure about this statement, but&#8230; here goes: I&#8217;m glad I know I&#8217;m capable of executing vs. knowing how to make money and not execute.  This, as opposed to someone who knows how to make money, but can&#8217;t execute.  The sad fact is, most rich people I read about know how to make money, and get other more qualified individuals to execute for them. Â Doh!</p>
<p>As a developer, however, I view this as yet another thing to learn, so that&#8217;s a good thing!  If I start learning how to monetize things better, I can focus my development efforts on what matter monetarily, and eventually find easier ways to leverage help vs. doing everything myself.  If at first you don&#8217;t succeed, try, try again.</p>
<p><a name="successes"></a><strong>Successes</strong></p>
<p>My favorite part, the wins.</p>
<ol>
<li>I now have a tool to make my D&amp;D gaming easier, and more fun.</li>
<li>Others now have access to the same tool, with the ability to help guide it&#8217;s direction.</li>
<li>I&#8217;ve proved to myself for the 2nd time that <a href="http://en.wikipedia.org/wiki/Iterative_and_incremental_development">Iterative development</a> works.</li>
<li>I&#8217;ve proved to myself that I can execute on my ideas.</li>
<li>I learned Django &amp; Python, and also learned not to hate the server-side.</li>
<li>I&#8217;ve learned, again, how much work it really takes beyond just coding to release a product.</li>
<li>I learned a little bit about engaging potential customers.</li>
<li>I learned a little bit about market research.</li>
<li>I learned how NOT to migrate data.</li>
<li>I now have something new to learn: How to make money with software.</li>
</ol>
<p><a name="conclusions"></a><strong>Conclusions</strong></p>
<p>While I&#8217;m disappointed I failed to monetize my work, it&#8217;s still early in the game, so maybe I&#8217;ll think of something.  Overall, I&#8217;m really happy to have finally finished one of personal projects into an actual product.  That, and I learned a ton. Soon, onto idea #2!</p>
<p>If you play D&amp;D 4th edition, check it out and let me know what you think.  If you don&#8217;t, but know people who do, let &#8217;em know; I&#8217;d be most appreciative!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2009/09/air-app-powerz-play-dnd-faster.html/feed</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
			</item>
		<item>
		<title>Being Independent &#038; Making Money Using Flex: My 360Flex Speech</title>
		<link>https://jessewarden.com/2008/07/being-independent-making-money-using-flex-my-360flex-speech.html</link>
					<comments>https://jessewarden.com/2008/07/being-independent-making-money-using-flex-my-360flex-speech.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Fri, 18 Jul 2008 17:08:26 +0000</pubDate>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Branding]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=1281</guid>

					<description><![CDATA[&#8230;now with 200% more &#8220;typically&#8221;! I was originally scheduled to speak about Making Bling with Flex at the 360Flex conference here in Atlanta. I then got the flu, learned I needed to have an organ removed at the emergency room, and missed the entire conference. Doug &#38; Juan filled in for me. Days later after [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>&#8230;now with 200% more &#8220;typically&#8221;!</p>
<p>I was originally scheduled to speak about <a href="http://jessewarden.com/2008/02/speaking-at-360flex-making-bling-with-flex.html">Making Bling with Flex</a> at the <a href="http://www.360conferences.com/360flex/">360Flex conference</a> here in Atlanta.  I then got the flu, learned I needed to have an organ removed at the emergency room, and missed the entire conference. Doug &amp; Juan <a href="http://dougmccune.com/blog/2008/03/01/my-360flex-writeup/">filled in</a> for me.  Days later after the surgery, upon regaining some semblance of consciousness, I received &#8220;get well&#8221; cards signed by the Flex community from the conference (thanks for mailing, <a href="http://leifwells.com/">Leif</a>!).</p>
<p><span id="more-1281"></span></p>
<p>I was so bummed about missing the conference; I always get to meet new people and some I&#8217;ve known for years online, just never met in person.  So, those cards sure made me feel a ton better.  Yall seriously are awesome!</p>
<p><a href="http://jessewarden.com/wp-content/uploads/2008/07/whosawesome.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1282" title="Who\'s Awesome?  You\'re Awesome!" src="http://jessewarden.com/wp-content/uploads/2008/07/whosawesome.jpg" alt="The Flex Community is Awesome" width="400" height="351" /></a></p>
<p>2 weeks later, I started getting emails from people, specifically over seas, asking for transcripts.  First was a bloke from South Africa, then Spain, and on and on.  I felt really bad telling people that I didn&#8217;t actually get to do my speech, and my slides were meant as talking points for me, not for distribution.  So mad in fact that I couldn&#8217;t change the past, I was determined to mold the future.</p>
<p>At the time, I worked for a dope internet video company called <a href="http://multicastmedia.com/">Multicast Media Technologies</a>.  They have a video studio that they use for a lot of custom live broadcasts, so I sweet talked my way into using it for 3 hours.  The result of that recording session is now online for you to view at your leisure, WHEREVER in the world you are.</p>
<p><a href="http://jessewarden.com/archives/blingflex/"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1284" title="blingflex_click_to_play" src="http://jessewarden.com/wp-content/uploads/2008/07/blingflex_click_to_play.gif" alt="" width="400" height="400" /></a></p>
<p>Some erratta &amp; Citations:</p>
<ul>
<li>I am now back in the consulting game, doing independent consulting &amp; contracting, as well as working with <a href="http://esria.com/">ESRIA</a>.</li>
<li>Regarding not pursuing legal action, I&#8217;ve heard some contractors who have had good luck (in a bad luck situation) utilizing signed contracts combined with their lawyer to good effect in getting paid.  If you&#8217;re lawyer truly thinks you can recoup money owed, you can afford him/her, and you feel it&#8217;ll end quickly, go for it.  Regardless, an ounce of prevention is worth 10 billion pounds of cure: if you get a bad vibe from a client, find another one.</li>
<li>Aral Balkan&#8217;s <a href="http://www.singularity08.com/">Online Conference &#8211; Singularity</a></li>
<li><a href="http://dougmccune.com/blog/">Doug McCune</a></li>
<li>Juan Sanchez, aka, <a href="http://scalenine.com/">Scale Nine</a></li>
<li><a href="http://gskinner.com/blog/">Grant Skinner</a></li>
<li>Regarding CPA&#8217;s, they can help you identify what you&#8217;re expenses are.  Meaning, things you purchase towards your business that you are not taxed on, or are taxed less on.  Laws vary by state, country, etc.</li>
<li>Calculating your contractor rate is usually based off a huge number of criteria; I&#8217;ve GREATLY simplified it for this presentation.  You can search on Google and find a bunch of great blog entries by anal retentive people who make these insanely long lists identifying your expenses; your costs, things you need to pay for.  Excel helps here.  You can identify how much money you need to make to afford your standard of living, and add additional expenses and profit desires from there.  Sometimes, how much you make is driven by the client and their budgets.  You need to factor this in too.</li>
<li>Talking about your rate with others to get a general idea of what the market and certain client jobs can bear is fine.  However, if you are bidding on a project, it&#8217;s illegal to talk to your competition about what you are planning to charge (federal law in the USA; consult a lawyer for facts).</li>
<li>Adjusting your rate may be out of your hands.  Sometimes your rates are dictated by the client or the firm you are working through, and there is no negotiation allowed.</li>
<li>&#8220;The W2 Talk&#8221; &#8211; when an employer gets yelled at by their boss or CPA about your high rates, and does their best to bring you on as W2 (fulltime salary) instead of 1099 (contractor hourly).  This usually occurs after a project is completed.</li>
<li>If you ever get frustrated with clients negotiating price, go back to your expenses sheet (you DID save this, right?) and look at all the bills and expenses you have.  That usually reminds me I CAN&#8217;T negotiate price, hehe.</li>
<li>Remember, fix bid projects that have a high amount of money still have risk, but may be attainable.  Sometimes, you just REALLY want to work for that particular client.  Maybe they have a frikin&#8217; awesome project, you just really like the client a lot, or the project would be great marketing for you once complete.  If you clearly identify things you can gurentee can be on-time and on-budget, and then clearly point out the things that are risky and thus flexible, a lot of clients are cool with that.  They can potentially compensate you for those risky areas with more money than is allocated to the budget.  I&#8217;ve never done this hybrid approach recommended to me by John Howard @ Multicast Media, but I&#8217;ve ALWAYS seen clients say they have &#8220;X budget&#8221; and then a few thousand dollars magically appears later when they need more.</li>
<li>Original <a href="http://jessewarden.com/2006/10/personal-branding-checklist.html">Personal Branding Checklist</a></li>
<li><a href="http://www.linkedin.com/in/motivationaltrainer">David Samuel</a>, the gent who taught me about <a href="http://www.personalbrandingpower.com/">Personal Branding</a>.</li>
<li><a href="http://blog.digitalbackcountry.com/">Ryan Stewart</a> &#8211; Care Bear Stare of the <a href="http://adobe.com/products/flex/">Flex</a> Community<a href="http://blog.digitalbackcountry.com/"><br />
</a></li>
<li>Personal Branding #5: An online presence massively improves your <a href="http://www.amazon.com/Ambient-Findability-What-Changes-Become/dp/0596007655">findability</a>; potential clients can find you when they have work for someone with your talents.</li>
<li><a href="http://en.wikipedia.org/wiki/Aphex_Twin">Aphex Twin</a></li>
<li><a href="http://animation.nectarine.com.au/">Nectarine</a></li>
<li>A practical use of an &#8220;alias&#8221; is a shortened, 1 word version of your name.  Useful for IM accounts, email, and user names for online services.</li>
<li><a href="http://www.adobe.com/products/acrobatconnect/">Acrobat Connect</a> &#8211; online webcasting<a href="http://www.adobe.com/products/acrobatconnect/"><br />
</a></li>
<li><a href="http://www.slideshare.net/">Slideshare</a> &#8211; web ready slideshows</li>
<li>Passion can be contagious</li>
<li><a href="http://30onair.com/">30onair.com</a> for &#8220;Why Flex?&#8221;.  <a href="http://www.30onair.com/videos/uv9ecx88xW4/">Best</a> Why Flex video ever.</li>
<li>User Experience, or &#8220;UX&#8221; is more in demand than I let on; more in demand than Flex &amp; Flash Developers.  There are firms that specialize specifically in User Experience (design, user persona&#8217;s, etc.).  Places like <a href="http://www.enablus.com/">Enablus</a> and others employ Flex Developers.  Working with UX people is SOOO much nicer than not because they ensure the application functionality makes sense, usually have valid research proven UI models work (this is NOT a replacement for user testing however), and create good designs.  If you are into UX, you SHOULD be making tons of bling right now.  If you are into Flex, seek these people out; they are fun to work with and more demanding of quality.  A lot of existing Enterprise to mid-size software shops already have existing back-end talent, but not a lot of front end, client side specialists.  They look to Flex Developers, wrongly so, to help with both facets of providing a good Flex GUI and a good user experience.</li>
<li>Good looking consumer facing Flex: <a href="http://scrapblog.com/">Scrapblog</a>, <a href="https://buzzword.acrobat.com/">Buzzword</a></li>
<li>Keep in mind for the bigger jobs, you cannot start the work without a signed contract.  More incentive to get a lawyer to write one for you, get the client and you to mutually agree to the terms, and have peace of mind once you start.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2008/07/being-independent-making-money-using-flex-my-360flex-speech.html/feed</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title>Post Microsoft MIX 2008 Thoughts</title>
		<link>https://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html</link>
					<comments>https://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Tue, 18 Mar 2008 00:46:59 +0000</pubDate>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Branding]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Director]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Expression]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[FlashLite]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WPF]]></category>
		<guid isPermaLink="false">http://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html</guid>

					<description><![CDATA[If you are in a hurry, here are some links with excerpts about the section. Contents Introduction &#8211; What and Why MIX? Conference Grounds &#8211; Where was MIX and how did it go down DoubleClick &#8211; Syndication ready Silverlight Have we seen this before? &#8211; &#8220;Dude, Flash did that years ago.&#8221; Silverlight Adaptive Streaming &#8211; [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>If you are in a hurry, here are some links with excerpts about the section.</p>
<p><strong>Contents</strong></p>
<ul>
<li><a href="http://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html#introduction">Introduction</a> &#8211; What and Why MIX?</li>
<li><a href="http://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html#conference_grounds">Conference Grounds</a> &#8211; Where was MIX and how did it go down</li>
<li><a href="http://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html#DoubleClick">DoubleClick</a> &#8211; Syndication ready Silverlight</li>
<li><a href="http://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html#iveseenthingsyoupeoplewouldntbelieve">Have we seen this before?</a> &#8211; &#8220;Dude, Flash did that years ago.&#8221;</li>
<li><a href="http://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html#adaptive">Silverlight Adaptive Streaming</a> &#8211; Curious about how the buffering works.</li>
<li><a href="http://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html#mobile">Silverlight on Mobile</a> &#8211; Same problems as Flash Lite has.</li>
<li><a href="http://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html#silverlight_flash">Silverlight for Flash Developers</a> &#8211; I do Flash; can I do Silverlight?</li>
<li><a href="http://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html#aol_silverlight">AOL&#8217;s Silverlight Email App</a> &#8211; Enterprise Silverlight</li>
<li><a href="http://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html#blog_mingle">Bloggers Mingling</a> &#8211; A-list bloggers, and who I met</li>
<li><a href="http://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html#conclusions">Conclusions</a> &#8211; What I took away from MIX.</li>
<li><a href="http://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html#history_repeating">History Repeating</a> &#8211; Some of the .NET crew is doing what the Java crew already did.</li>
<li><a href="http://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html#eatitsucka">Force Fed Silverlight</a> &#8211; Silverlight is an alternative, not a choice.</li>
</ul>
<p><span id="more-1262"></span><a title="introduction" name="introduction"></a><strong>Introduction</strong></p>
<p>I was invited to attend the <a href="http://visitmix.com/" title="Microsoft MIX 2008 conference" id="u3jt">Microsoft MIX 2008 conference</a>.  After discussing this years conferences as well as the technology involved with my CTO, he decided we should go together.  We headed to Las Vegas, where the conference was held, with the sole goal of evaluating <a href="http://silverlight.net/" title="Silverlight" id="psuw">Silverlight</a> for use in our self-service video platform, one of our company&#8217;s main products I work on.</p>
<p>Although a lot our focus nowadays is on Flash video, we have a significant amount of money and technology invested in Windows Media.  We also do way more Windows Media business, especially in the fun Live events arena.  We currently create a lot of custom <a href="http://adobe.com/go/platform/" title="Flash" id="pg0y">Flash</a> video players that interface with our back-end video CMS system.  Some are simple while others are full blown multimedia applications.</p>
<p>Can we do the same with Silverlight 2?</p>
<p>That was the fundamental question to answer, or have answered, at MIX.</p>
<p><a title="conference_grounds" name="conference_grounds"></a><strong>Conference Grounds</strong></p>
<p>I&#8217;d been to the <a href="http://www.venetian.com/" title="Venetian Hotel" id="lt9r">Venetian Hotel</a> in Vegas before for Macromedia&#8217;s / Adobe&#8217;s MAX 2006.  The MIX conference had about 1000 less attendees than MAX 2k6 (2000+), but was no less grand.  You could spot the geeks everywhere, and they seemed to outnumber the suits.  Registration was simple, our hotel accommodations were great, and the facilities and layout were a lot more informal that I originally expected.  I had this expectation of Microsoft being stodgy, formal, and just overall &#8220;proper like&#8221;.  This was smashed when <a href="http://jessewarden.com/2007/12/mix-n-mash-2k7-bill-gates-web-blend-and-silverlight.html">I visited the HQ</a> in Janurary and met Bill Gates in person, but apparently that experience wasn&#8217;t enough.</p>
<p>The conference, however, felt a lot like MAX.  It definitely was a fun multimedia event with code.  My CTO and I made a decent attempt to talk to a variety of conference goers, not just <a href="http://adobe.com/" title="Adobe" id="ngpe">Adobe</a> &amp; <a href="http://microsoft.com/" title="Microsoft" id="nm3m">Microsoft</a> employee&#8217;s.  My interest was solely to identify what their background was, why they were at MIX, and what they hoped to get out of it.  That, and I like meeting new people, especially people outside of the Adobe sphere who do software for a living.</p>
<p>Identifying a technology&#8217;s validity are based halfway on the technology&#8217;s merits.  The other half comes from identifying the community around the technology, and seeing if the 2 have a future together.  Do they mesh?  If not, is that a big deal?  Is there even an identifiable community?  How does it compare to other technology communities that I&#8217;m familiar with?  What are the pain points, and what are the great matches?</p>
<p>All of these questions I was continually asking myself quietly as I listened to speakers, both official and informal.</p>
<p><a title="DoubleClick" name="DoubleClick"></a><strong>Keynote Day 1: DoubleClick</strong></p>
<p>The were a couple things that I found interesting about the keynote.</p>
<p>The first was <a href="http://www.dartmotif.com/blog/" title="Ari" id="gpv7">Ari Paparo</a> from <a href="http://doubleclick.com/" title="DoubleClick" id="mvua">DoubleClick</a>.  <a href="http://weblogs.asp.net/scottgu/" title="Scott Guthrie" id="y1cg">Scott Guthrie</a>, Corporate Vice President in the Developer division at Microsoft, was talking about some of the Ad features in <a href="http://msdn.microsoft.com/vstudio/" title="Visual Studio" id="haab">Visual Studio</a>.  I had <a href="http://twitter.com/" title="Twittered" id="r4.0">Twittered</a> how irrelevant this stuff is in the media industry.  If Silverlight had any chance of making a dent in what Flash is doing, it needed to integrate with a real ad platform, like say,DoubleClick.</p>
<p>Not 5 seconds had I twittered that, Scott Guthrie had a witty introduction to Ari who showed a brief overview of the SDK of using DoubleClick with Silverlight.  For those who don&#8217;t know, DoubleClick is one of the largest ad platform providers.  I think last week in fact, the FCC approved <a href="http://google.com/" title="Google" id="b9kk">Google</a>&#8216;s acquisition of them.  One of many, we utilize DoubleClick at work to allow customers to have relevant video &amp; image ads to show in their video players, allowing them to monetize their content.</p>
<p>Getting an <a href="http://www.adobe.com/devnet/actionscript/articles/actionscript3_overview.html" title="ActionScript 3" id="xh6t">ActionScript 3</a>, heck even an mxmlc (<a href="http://adobe.com/products/flex/" title="Flex" id="n16z">Flex</a>&#8216;s compiler) compatible version from them has been like pulling teeth.  While frustrating, what was more frustrating was the lack of ANY Silverlight information a few months ago.  Our first project utilizing Silverlight, used primarily as a solution for Mac users since <a href="http://www.flip4mac.com/" title="Flip4Mac" id="vp9c">Flip4Mac</a> is noble, but flaky.  One of the things that eventually forced our Silverlight player to be removed, replaced by Windows Media, and thus flipping the bird to Mac users was the lack of official DoubleClick support.  It&#8217;s joke really since both Windows Media and Silverlight take the same ASX play list file (text file with a bunch of URL&#8217;s to media basically).</p>
<p>Now, it&#8217;s official; they can play ball in the online media &amp; syndication world.</p>
<p><a title="iveseenthingsyoupeoplewouldntbelieve" name="iveseenthingsyoupeoplewouldntbelieve"></a><strong>Keynote Day 1: &#8220;We&#8221; Have/Haven&#8217;t Seen This Before</strong></p>
<p>The second thing that really jumped out at me was a lot of the Silverlight content shown that could of been done in Flash, or had already been done years ago.  It was extremely frustrating to here the &#8220;oohs&#8221; and &#8220;aaaahs&#8221; from the crowd.  I&#8217;m like, &#8220;Have you all actually used the Internet in the past 5 years?&#8221;.</p>
<p>You couldn&#8217;t deny it, though.  There was a subtle vibe.  I looked around the crowd and saw muted discussion as each Silverlight application was shown.  Whatever negative thoughts I had clearly were not shared by the majority.  There was muted discussions amongst co-workers.  People sitting next to each other were in quiet, yet excited conversation.  Clearly they had ideas about how to utilize the technology and wanted to act on them.</p>
<p>As <a href="http://blogs.zdnet.com/Stewart/" title="Ryan" id="a2bb">Ryan</a> <a href="http://blog.digitalbackcountry.com/" title="Stewart" id="jf2b">Stewart</a> said, &#8220;This crowd isn&#8217;t just familiar with our technology&#8221;.  Ryan&#8217;s typical &amp; positive Care Bear Stare attitude did nothing to sway my feelings.  I call bs ; this has nothing to do with technology familiarity and everything with technology approachability.  The Microsoft crowd DID and DOES know about Flash &amp; Flex, at least some.  The only reason it was apparently invalid in their eyes is that it didn&#8217;t integrate with Visual Studio &amp; <a href="http://msdn.microsoft.com/netframework/" title=".NET" id="mjpa">.NET</a> easily, and wasn&#8217;t presented as a valid business case by Microsoft.  That has to be it.  There is no way the thousands of competent developers and designers there had no clue these abilities couldn&#8217;t be done pre-Silverlight Beta 1 in Flash or Flex.</p>
<p><a title="adaptive" name="adaptive"></a><strong>Keynote Day 1: Silverlight Adaptive Streaming</strong></p>
<p>Everyone thought it was really rad.  I yawned.  While down-graded on-t3h-fly streams has always been a touted feature of Windows Media, especially over Flash Media Server, I&#8217;ve never seen it work&#8230; at least at my place of employment.  Additionally, if you have enough bandwidth to down-grade streams on the fly from 500k to 100k, you&#8217;re clearly running on a network that has issues.  You&#8217;re best bet in this case is not to spend an inordinate amount of time trying to be clever and preload lower bit-rate streams into the buffer.  Instead, just feed them a 100k stream, and call it a day.  Disagree?  Works for YouTube, so&#8230;</p>
<p>Even Flash Player&#8217;s double-buffering has left me not impressed on uber-slow speed connections.  Besides, the graph they showed was VERY well designed, making me question the validity of every image thenceforth I was shown.  Bottom line: I&#8217;ll need to play with it on a production environment to really believe it has any value.  With most broadband customers, decent double-buffering prevents all problems with On Video &amp; 24/7 video.</p>
<p>There is a company out there that has a comparable solution for Flash, but that&#8217;s for another blog entry.  This does add ammo that Adaptive Streaming is valid, and thus usable.</p>
<p><a title="mobile" name="mobile"></a><strong>Keynote Day 1: Silverlight on Mobile</strong></p>
<p>It doesn&#8217;t really matter if it works, nor if they formed a partnership with <a href="http://www.nokia.com/" title="Nokia" id="duzn">Nokia</a>.  I&#8217;m American, and as such, my country is held in the grip of operators who have walled gardens.  Meaning, I get tons Flex &amp; Flash work, but only received 2 <a href="http://adobe.com/products/flashlite">Flash Lite</a> job offers in 2007.  Flash Lite is not popular here for the same reasons Silverlight won&#8217;t be.</p>
<p>Windows Mobile and CE have always been good.  I had Flash 6 running well back in 2003 on a Windows Mobile device.  Logically, one could assume Silverlight would work just as well.  At that point, though, I&#8217;d much rather utilize <a href="http://msdn2.microsoft.com/en-us/netframework/aa663326.aspx" title="WPF" id="zu-l">WPF</a>, not Silverlight&#8230; unless the content was already created, and you&#8217;re merely porting, but that&#8217;s never how I&#8217;ve seen it work.</p>
<p><a title="silverlight_flash" name="silverlight_flash"></a><strong>Sessions: Silverlight for Flash Developers</strong></p>
<p>Not the exact session name, but close enough.  I sat in for half of this; I believe one of blokes from <a href="http://cynergysystems.com/" title="Cynergy Systems" id="m0c4">Cynergy Systems</a> was presenting.  In the 40 minutes that I caught, he went over the API and how you can code Silverlight without using <a href="http://www.microsoft.com/expression/products/overview.aspx?key=blend" title="Blend" id="tcuz">Blend</a> just like you can code Flash without using the Timeline.</p>
<p>It was really uncool to see, even in C#, that working with XAML via code is still a bitch.  Some could argue that it&#8217;s nice to have such low-level access to XAML via code.  The presenter did the same thing in C# that I did in JavaScript in Silverlight 1.0: Abstract everything you normally do with GUI objects in a base class to act like the nice API of Flash.</p>
<p>So, instead of guiObject.SetValue(&#8220;Canvas.Left&#8221;, 30), you instead make a base class do that as a getter / setter, so you can instead go guiObject.x = 30.  Lame.</p>
<p>I&#8217;m not sure if the new GUI components fix this.  While boilerplate access can be fun if you&#8217;re an uber-geek, high level abstraction into easy to use components allow you to get stuff done.  Just ask <a href="http://blog.simb.net/2008/02/14/flex-developers-are-so-spoiled/" title="Simeon and his adventures" id="i.ia">Simeon and his adventures</a> in not-using the Flex SDK, instead trying various pure AS3 approaches.</p>
<p>What was nice, though, was that clearly XAML &amp; C# are definitely do-able by traditional Flash devs.  You&#8217;ll do the same thing that you did learning Flex &amp; AS3: Learning the new tool(s) and learning the new API.</p>
<p>Although the Adobe CS3 installation process is horrible (not Flex), I&#8217;m pretty sure the Visual Studio + Blend is worse, especially for the beta bits based on mourning Twits I read.  You&#8217;ve been warned.</p>
<p><a title="aol_silverlight" name="aol_silverlight"></a><strong>Sessions: AOL&#8217;s Silverlight Email Application</strong></p>
<p>The only true Enterprise application I saw during the keynote was <a href="http://aol.com/" title="AOL" id="apv4">AOL</a>&#8216;s email application.  A whopping 10-billion alarm bells went off when I saw it for a few reasons.</p>
<p>First, I&#8217;ve had the pleasure of working with &amp; meeting one of AOL&#8217;s good acquisitions.  They are a smart, talented team who&#8217;ve already had proven results.  That doesn&#8217;t mean that all of AOL is, but it certainly gives me the impression those who are doing the acquisitions know what they are doing.  Second, the <a href="http://en.wikipedia.org/wiki/AJAX" title="AJAX" id="sr4x">AJAX</a> version of their email client was really fast and seemed to work great.</p>
<p>You have a perfectly well and good AJAX email client&#8230; why in the heck did you make a Silverlight version?  I made a note to attend this session to find out.  I got my answer at the end during questions.  Someone asked did you look at Flash as an option (he should of said Flex, but whatever).  They responded with &#8220;Microsoft Partnership&#8221;.  That&#8217;s all I needed to know.  It was nice to know that they had an existing .NET team that already knew C#&#8230; whatever.  Programming is programming.  C#, AS3&#8230; if you can code, you can learn another language and platform.</p>
<p>However, this session overall was enlightening as to what Silverlight developers perceive they need. Aka, all the stuff the Flex SDK already has.  Keep in mind, they built this while Silverlight 2 was still in early development, so I don&#8217;t think they had any access to the controls.</p>
<p>That&#8217;s right, they had build their own component framework.  $10 bucks says they spent 6 months just building the component infrastructure they needed to actually build an application.</p>
<p>What they DID go over were high level &amp; low level details of each of the facets of their development.  This was the really cool part.  They built their own component base classes, and controls.  They built their own measurement engine.  They built their own skinning engine (read run-time skinning, not just Blend).  Basically, anything you&#8217;d find in the bowls of UIComponent in the Flex SDK and all of his helper classes, they did some of that on some level.  In short, a TON of work just to get started.  Very impressive from a developer perspective, very crazy from a &#8220;how much R&amp;D money did this team actually get from Microsoft, ZOMG!!!1111&#8221;.</p>
<p>Hopefully, other teams won&#8217;t have to do that much work assuming the components, both Microsoft&#8217;s and all the 3rd party ones I&#8217;ve seen advertised, do a lot of this already.</p>
<p>It was pretty annoying to debate quietly with my CTO in the audience.  &#8220;Dude, they have AbstractClass as a keyword.&#8221;</p>
<p>&#8220;What, AS3 doesn&#8217;t have that?&#8221;</p>
<p>&#8220;No dude&#8230; you just add an Abstract prefix and follow the convention.&#8221;</p>
<p>*grumble* *grumble*</p>
<p>&#8220;Dude, Silverlight has threads?&#8221;</p>
<p>&#8220;What, Flash Player doesn&#8217;t have threads?&#8221;</p>
<p>&#8220;OMG, you don&#8217;t NEED threads to produce a nice, working Enterprise application.&#8221;</p>
<p>&#8220;I can&#8217;t believe Flash Player doesn&#8217;t have threads.&#8221; *grumble* *grumble*</p>
<p>In conclusion, I was very impressed with what the AOL team had done.  I was also impressed that Silverlight 2 Beta 1 is already creating this level of application<strike>s</strike>.  &#8220;This level&#8221; will have be carefully scrutinized; I did not get a chance to play with the real application to see how it felt compared to <a href="http://gmail.com/" title="Gmail" id="yh05">Gmail</a>, <a href="http://www.goowy.com/" title="Gooey" id="gvtv">Gooey</a>, etc.  The AOL team also didn&#8217;t discuss their battle scars.  I love Flex &amp; Flash, but even I have tons of battle scars to talk about.</p>
<p><strong>Bizzness</strong></p>
<p>I managed to tag along on 2 business meetings my CTO had with 2 cool companies.  Can&#8217;t really say who they were, but can say they are relevant to my business: online video.  Totally out of my element, so naturally it was fun to learn how those things go down.  One was all formal with the pretense of informality, and the other was just an introduction to get to know each other.</p>
<p>It&#8217;s more likely for these things to happen since everyone is more likely to be at the same place at a conference like MIX.</p>
<p><a title="blog_mingle" name="blog_mingle"></a><strong>BlogZone MIXer</strong></p>
<p>I got invited to the BlogZone MIXer; a who&#8217;s who of the blogsphere.  I brought my CTO along to this A-List event.  There, your usual celebrities like <a href="http://scobleizer.com/" title="Robert Scoble" id="e-.-">Robert Scoble</a>, <a href="http://molly.com/" title="Molly Holzschlag" id="jmna">Molly Holzschlag</a>, <span id="ctl00_MainPlaceHolder_EntryList_ctl01_EntryTemplate_BodyLabel">Eric Zocher, </span>Ryan Stewart, etc.  The one dude I really got to have interesting conversations that I never finished was <a href="http://alex.dojotoolkit.org/" title="Alex Russell" id="zciy">Alex Russell</a>.  Among other things, he&#8217;s one of the creators of <a href="http://dojotoolkit.org/" title="Dojo" id="c1-4">Dojo</a>, the Open Source DHTML toolkit written in JavaScript that helps abstract browser incompatibilities.  Anyone who does JavaScript for a living is a prime target for my wrath.  Unfortunately, he was really cool so I found it really hard to take the piss out of him.</p>
<p>I drilled him about his role on the &#8220;Board&#8221;.  You know, the ones who are shaping the future of JavaScript 2.  I tried to get as much dirt as possible since I only ever hear mostly positive things which I know can&#8217;t be right.  As central a role as JavaScript plays on the web today, you KNOW there is some drama up in that mug.</p>
<p>Alex is bright.  Regardless of the historical reasons of how he got on the Board, if you ever have some spare positive karma, be sure to throw it his way.  Encourage him to keep fighting the good fight, to battle cynicism, and to never give in.  He&#8217;s clearly qualified.  He&#8217;s got some good ideas that apparently are shared by others.</p>
<p>Like all standards boards, I felt like some of the non-vendors give a flip for the implementers.  For example, Object.prototype was a great idea, but I&#8217;ve yet to see a tool that helps you identify who&#8217;s mixing what on your prototypes.  Who&#8217;s fault is that?  Those who built tools like Adobe Flash or those who built the language and didn&#8217;t give an easy way in the language for tool makers to latch onto?  It&#8217;s pure speculation; we didn&#8217;t get to finish our 3 concurrent conversations so maybe they do communicate each other&#8217;s concerns and I&#8217;m just not seeing it.  I&#8217;ve read like 1 blog entry on <a href="http://www.moock.org/blog/archives/000260.html" title="Colin Moock's blog" id="aab2">Colin Moock&#8217;s blog</a> with a summary of the action.  After talking to Alex, I&#8217;m glad that&#8217;s all I&#8217;ve read, and that people like Alex are in there.</p>
<p>Hang in there, buddy!</p>
<p><a title="conclusions" name="conclusions"></a><strong>Conclusions</strong></p>
<p>I had a good time at MIX and definitely plan on speaking next year.  Not sure on what yet, but it doesn&#8217;t matter.  I&#8217;m really appreciative of Microsoft for inviting me.  I loathe Vegas, yet really dug the event and how everything was put together.  I felt their execution was good, and the topics relevant.  There were also a lot of cool &amp; intelligent people there, which is the most important part of conferences for me.  Also, thanks to Cynergy Systems (I believe it was them) for the  <a href="http://www.taolasvegas.com/tao.html" title="Tao" id="p-1y">Tao</a> party.  Had a lot of fun there.</p>
<p>Blend and Visual Studio still look appealing and valid, but I&#8217;m not looking forward to my first Silverlight project mainly because I&#8217;ll probably spend yet another 3 days getting up and running again.  The install requirements as well as required times are just insane.  Flex Builder 3 takes 40 minutes to download on DSL, and 5 minutes to install and configure.  The Eclipse plug-in + various JRE&#8217;s can definitely take up a lot of your day, but not days plural.  In all fairness, it IS still a ton of beta bits working together.  Maybe it&#8217;ll be decent by launch.</p>
<p>&#8230;did I mention I&#8217;ll have to do <a href="http://www.apple.com/macosx/features/bootcamp.html" title="Bootcamp" id="k_gp">Bootcamp</a> or <a href="http://www.parallels.com/" title="Parallels" id="qkfy">Parallels</a> since Microsoft doesn&#8217;t appear to have any plans for supporting Silverlight development on my <a href="http://apple.com/" title="Mac" id="w7gi">Mac</a>, just debugging?  My PC at home will be fine since I&#8217;ve got tons of alpha and beta bits working (somewhat, *ahem*) on it.</p>
<p>I can see why .NET dudes are so excited about Silverlight.  The coding style and language look a lot like regular .NET development.  I don&#8217;t do .NET, nor do I do server-side development, but I&#8217;ve debugged .NET code other people wrote in the past and the learning curve will hopefully be just API and runtime features since it&#8217;s C#.</p>
<p>&#8230;and that&#8217;s the confusing part.  What is .NET 3.5 now&#8230; 48 megs or so?  Let&#8217;s just pretend it&#8217;s near there.  Silverlight 2.0 probably won&#8217;t cap 4 megs (unofficial cap based on rumor from one WPF project manager I talked to).   What of .NET is missing based on those 44 megs NOT being in the Silverlight plug-in?  What of XAML isn&#8217;t supported?  What of C#&#8217;s features aren&#8217;t supported?  VB, JPython, JRuby ? Those are questions I need to answer to see how well their execution of making it easy for existing .NET developers to transition.</p>
<p><a title="history_repeating" name="history_repeating"></a><strong>History Repeating</strong></p>
<p>The most important thing for me that I took away from MIX was that I&#8217;ve seen this before.  Flash Developers had an awesome multimedia platform to build upon for years.  Java guys came, and then left.  A few masochists stuck around really helping the community, and growth of the platform, out a lot.</p>
<p>Years later, Flex came out, and changed everything.  Java devs came in droves.  Then came PHP guys, Python, you name it.  Flex allowed traditional developers to succeed where they apparently could not before using Flash or various other open source alternatives like <a href="http://jessewarden.com/2005/04/i-tried-eclipse-asdt-mtasc-flashout-fame.html" title="FAME" id="zuxt">FAME</a>, <a href="http://www.flashdevelop.org/" title="Flash Develop" id="ub9g">Flash Develop</a>, or <a href="http://fdt.powerflasher.com/" title="Flash Develop Tool" id="fnr8">FDT</a>, etc.  After learning to code for years, I physically cannot go back to Flash to do large scale development.  Therefore, I totally understand why traditional developers couldn&#8217;t fathom how to do large scale scale projects in Flash.</p>
<p>I&#8217;m seeing the same signs in the .NET world.  It&#8217;s been 2 years+ on the new runtime in Flash Player 9.  Building applications in Flex, both Enterprise as well as widgets, are now proven to work well.  Aka, we have a great runtime and a great set of tools.  I worked with a .NET team 5 years ago to do the front-end in Flash &amp; HTML, and the back-end in .NET.  The work flow was good enough.  I know a lot of .NET guys who use Flex for the front end.</p>
<p>Yet the impression I got from the conference was that this side of .NET is unknown by a lot of people.  Either that, or just that client side development in something other than server-side generated HTML/JS/CSS was, and is, possible.</p>
<p>I&#8217;m seeing the same signs.  These traditional server-side .NET devs ask, &#8220;So, how do you handle session data?&#8221;  &#8230;and then the cliche response we&#8217;ve read soo many times in the Flash &amp; Flex world, &#8220;We&#8217;re a stateful client.  There are no pages.  This is an application.&#8221;  &#8220;How do you store local data?&#8221;  &#8220;So the middle tier no longer handles the rendering of the GUI?&#8221;  etc., etc., etc.  Some get frustrated.  Most get excited, see the light, and start asking both themselves and their cohorts a multitude of questions how much better things could be.</p>
<p>2 years later, Flex is the poster child for Java developers.  In 2010, will we be seeing signs of Silverlight being the standard for .NETerz?</p>
<p>Every word above this sentence is invalid until they get their plug-in installation correct.  A lot of the Silverlight installs that were 1.0, and people upgraded to 1.1, is where the trouble started.  Some of the plug-in detection code got confused, asking you to upgrade even though you were.  Some of those affected blogged conflicting reports, causing confusion of what the real problem was.</p>
<p>This is exactly the opposite of what you want to happen.  This is also one of the main reasons Macromedia <a href="http://adobe.com/products/director/" title="Director" id="f.-i">Director</a>&#8216;s &#8220;Shockwave&#8221; Internet plug-in failed.  I&#8217;d create something, upload it to my website, and my mom couldn&#8217;t view it because of plug-in installation issues.  That&#8217;s a serious problem.</p>
<p>Flash didn&#8217;t have this problem.  It just worked.  For years.  Silverlight the plug-in INCLUDING THE DEFAULT DETECTION CODE needs to just work.  For years.  If not, it&#8217;s doomed.  &#8220;Doomed&#8221; not meaning in never being a viable solution, but rather, Microsoft will have to spend major PR money to compensate for the negative perception that plug-in installations gone awry will cause.</p>
<p><a title="eatitsucka" name="eatitsucka"></a><strong>Force Fed Silverlight</strong></p>
<p>What does this mean for Flex &amp; Flash devs?  If you&#8217;re a Flex dev&#8230; not much.  We need to wait for someone to intelligently blog their experiences with not just the controls offered by Microsoft, but by the multitude of 3rd party developers.</p>
<p>If you&#8217;re a Flash dev in the agency world, you need to pay attention.  Yes, please temper this with the fact that, even though it&#8217;s a week+ past, I was still at a Microsoft conference bombarded by marketing hoopla.  Regardless, media work will come your way where a client will want Silverlight.  This can either be because of a partnership, because the company already has a plethora of Windows Media content that cannot be cost-effectively converted to Flash, or because like most clients, they don&#8217;t care about the technology choice and therefore the decision was already made long before the requirements hit your PM&#8217;s desk.</p>
<p>I would HIGHLY suggest you get training in Blend in a official capacity if you&#8217;re job can fund it.  If you&#8217;re bored, add Visual Studio to the mix as well.  This will save a lot of frustration and a lot of time.  Blend and Flash aren&#8217;t a lot a like when it comes to animation and work flow.  Blend is NOT alien, however.  You can learn it. I&#8217;ve seen a traditional designer use it (caveat, at Microsoft HQ) and was impressed at how fluidly he made things.</p>
<p>If you&#8217;re a Flash dev as a contractor, you can wait a few more months.  I&#8217;ve gotten 1 Silverlight job and one WPF designer job in 2008.  This compared to at least 1 Flex or Flash job a day, every day.  Once Silverlight 2 gets out of beta, it may behoove you to at least be capable of compiling a simple app&#8230; say, drawing a circle to the screen in XAML and then making it clickable .  Sounds simple enough, but you&#8217;d be surprised how much time that effort really can take.  And as you know, time is money in the 1099 world.  Hopefully it&#8217;ll take less time by launch to get up and running.</p>
<p>If you&#8217;re a Flash designer, you&#8217;ve actually got it pretty good.  Blend and Design are not just for Silverlight development, but also for WPF development, aka rich desktop application development.  This means that if you become familiar with the tools, you&#8217;ll suddenly have a lot of traditional .NET shops looking for &#8220;designers&#8221;.  Not all, but more than are now.  A lot of the .NET shops will be just as fine with 2 shades of gray as some of the small software shops using Flex.  All that has to happen is to have upper management see a demo, recognize that their team is already &#8220;capable&#8221; of using their existing skills, and demand Silverlight.  Someone who&#8217;s had experience, and has the budget, will request a proper designer / consultant be hired.  The work flow between Design and Blend wasn&#8217;t that great for me, though.  Probably because I&#8217;m a n00b. PNG FTW!</p>
<p>4 years ago, I choose to experiment in Flex, and eventually make it my full-time career.  This was a choice I made.  There were no job offers for Flex.  Enterprises were still experimenting in Flex projects.  Flashdevs loathed the Enterprise price tag and having the compiler be on the server.  I didn&#8217;t care&#8230; I loved it!  4 years later, Flex is still rocking strong, and has a bright future.</p>
<p>Silverlight?  The marketing machine at Microsoft is awesome.  You don&#8217;t have a choice to learn Silverlight or not.  You can choose not too, but companies WILL be utilizing the technology, some requesting it specifically.  For the later, you can either cater to that, and take their money.  &#8230;Or not, and find some effective way to sell them on Flex / Flash.  In a sense, we&#8217;re being force fed Silverlight.  Assuming things go well for Microsoft, I&#8217;m not &#8220;choosing&#8221; to be a Silverlight developer.  Rather, I&#8217;m merely reacting to market conditions.  Flex was easy&#8230; it was love at first sight.  Silverlight?  It looks fun if I actually had people to pay me do it, but Flex is more fun.</p>
<p>Either way, you can relax.  Flash Player is still king, and there is still a lot more money to made for a long time.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html/feed</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title>Why Flash Player?</title>
		<link>https://jessewarden.com/2008/03/why-flash-player.html</link>
					<comments>https://jessewarden.com/2008/03/why-flash-player.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Wed, 12 Mar 2008 04:26:09 +0000</pubDate>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Personal]]></category>
		<guid isPermaLink="false">http://jessewarden.com/2008/03/why-flash-player.html</guid>

					<description><![CDATA[Adobe is doing a marketing campaign to help answer &#8220;why?&#8221; over at 30onair.com. Specifically, why would you utilize a certain technology, or set of technologies, that Adobe offers. The site aggregates videos on YouTube from people around the world answering these questions in about 30 seconds. You record a 30 second video of yourself answering [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://jessewarden.com/archives/why-flash-player/"><img loading="lazy" decoding="async" src="http://jessewarden.com/wp-content/uploads/2008/03/why-flash-player-thumb.jpg" title="Why Flash Player - Jesse Warden" alt="Why Flash Player - Jesse Warden" style="padding-right: 4px" align="left" height="120" width="160" /></a><a href="http://adobe.com">Adobe</a> is doing a marketing campaign to help answer &#8220;why?&#8221; over at <a href="http://30onair.com">30onair.com</a>.  Specifically, why would you utilize a certain technology, or set of technologies, that Adobe offers.  The site aggregates videos on <a href="http://youtube.com">YouTube</a> from people around the world answering these questions in about 30 seconds.  You record a 30 second video of yourself answering any of the why questions, upload to YouTube, and tag with &#8220;30onair&#8221;.  Your video will then be shown with the rest on 30onair.com.</p>
<p>Here&#8217;s my first one on &#8220;Why Flash Player?&#8221; &#8211; <a href="http://jessewarden.com/archives/why-flash-player/">High Quality</a> (HD) | <a href="http://www.youtube.com/watch?v=2IJ-afoTMqI">Low Quality</a> (YouTube)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2008/03/why-flash-player.html/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
