<?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>Business Process &#8211; Software, Fitness, and Gaming &#8211; Jesse Warden</title>
	<atom:link href="https://jessewarden.com/category/business-process/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>Business Process &#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>Kanban Paper Airplane Factory</title>
		<link>https://jessewarden.com/2013/08/kanban-paper-airplane-factory.html</link>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Sat, 10 Aug 2013 15:19:37 +0000</pubDate>
				<category><![CDATA[Business Process]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[airplane]]></category>
		<category><![CDATA[factory]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[paper]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[sixsigma]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=4307</guid>

					<description><![CDATA[I went to the local Capital Kanban meetup yesterday evening. It was a bunch of Project Managers discussing Kanban and waste in IT. Seemed completely out of my comfort zone and a way to meet new people in tech here in town so I attended. It turned out to be really cool and way more [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I went to the local <a href="http://www.meetup.com/Capital-Kanban/">Capital Kanban</a> meetup yesterday evening. It was a bunch of Project Managers discussing <a href="http://en.wikipedia.org/wiki/Kanban_(development)">Kanban</a> and waste in IT. Seemed completely out of my comfort zone and a way to meet new people in tech here in town so I attended. It turned out to be really cool and way more interesting than my expectations were. I wanted to mention some of those here, specifically some of the IT wastes that were mentioned I see all the time, the insights I got from the paper airplane factory game, and some after meeting talk that changed my perspective on what I perceive as problems in our industry with good software east of California (hah, trick question, there IS no good software done east of California&#8230;).</p>
<p><span id="more-4307"></span><strong>IT Wastes</strong></p>
<p>Andrea Ross did a presentation about waste in IT. Kanban, the production process used by Toyota then turned into a Project Management and Software Development, has 7 or 8 forms of what it calls waste. These are primarely in the factory line production process, so you have to draw your own metaphors and similes, and that&#8217;s what Andrea&#8217;s presentation extrapolated on.</p>
<p>From a high level, these are:</p>
<ul>
<li>Defects / Rework</li>
<li>Overproduction</li>
<li>Waiting</li>
<li>Non-Standard Over Processing</li>
<li>Transportation / Logistics</li>
<li>Intellect</li>
<li>Motion</li>
<li>Excess Inventory</li>
</ul>
<p>Her slides that have bullet point examples for each one are pretty self-explanatory. What was interesting to me was the sheer volume of bullet points I see all the time, together, in the same projects I work on. Some can&#8217;t be avoided, nature of the business and all that. Still, it was pretty eye opening to see that a traditional Factory Production process has identified these items as the core waste items, and software development has plenty of them with just about the same meanings. I won&#8217;t cover them in detail here as her slides do.</p>
<p><strong>Kanban, Bottlenecks, and Waste</strong></p>
<p>The concept of Kanban is to quickly identify bottlenecks in the existing production process, and iterate to improve the process to fix them.</p>
<p>Notice I said &#8220;existing&#8221; and &#8220;process&#8221;. The existing part is where Kanban has been easier to market than say <a href="http://en.wikipedia.org/wiki/Six_Sigma">Six Sigma </a>which is bought into wholesale, hence why it&#8217;s easier to be a Six Sigma consultant than a Kanban one. Kanban you basically overlay on top of what you have and it surfaces the problems your existing process has pretty clearly. Meaning, if you see a bunch of cards on a Kanban board that are in the &#8220;Analysis&#8221; column, and very few in the rest, it&#8217;s pretty clear where the bottle neck is located.</p>
<p>Now the &#8220;process&#8221; part is analogous to the production line; in this case all that goes into making software from the traditional waterfall perspective: design, development, deployment. However, the key here is you aren&#8217;t fixing the &#8220;bottleneck&#8221;, but rather the process itself. That is what I learned through our Paper Airplane Factory exercise quite clearly. There are a series of games like this that can be modified, but the point is they help teach the bottleneck vs. process modification process extremely clearly.</p>
<p>The key takeaway for me was fixing the bottleneck, like the 5 developers + 1 manager in a war room during a troubling moment during a software project, is actually a form of waste. Yes, it&#8217;s great teams rise up to tackle these problems in the moment. However, it&#8217;s important to note that it&#8217;s the Project Manager&#8217;s job to both recognize this as waste and fix the actual process problem. I&#8217;ll explain this below.</p>
<p>Note: If you&#8217;re concerned about spoilers, please be aware of 2 things. First, there are more than just the airplane factory game that you can find online. Second, if you do read the following section and later participate in the exercise, please either let the teacher/presenter know, or try not to modify the process too much to allow others to learn.</p>
<p><strong>Airplane Factory</strong></p>
<p>The game is like so (abridged version, you can find the <a href="http://www.teachengineering.org/view_activity.php?url=collection/wst_/activities/wst_kanban/wst_kanban_activity1.xml">full instructions here</a>):</p>
<ol>
<li>Divide your people into 4 groups, each sitting adjacent to each other. Circle or semi-circular seating arrangements works best to encourage intentional bottleneck adjustment engagement.</li>
<li>Cut up the airplane folding instructions alone the designated lines.</li>
<li>Give the first part of the instructions to the first group in the line. Give the second part of the instructions to the second group, and repeat on down the line. Some people may not necessarily have designated jobs beyond passing papers, etc. This is intentional to illustrate the intellect waste of not using human IP&#8230; and also to note how they&#8217;ll often become efficient passers, helpers, or even QA.</li>
<li>Ensure the group/person who&#8217;s last in line is aware of how far the plane must fly as a metric of defining a successful plane.</li>
<li>Setup a 5 minute timer, start it, and yell &#8220;Go!&#8221;</li>
<li>After 5 minutes, identify how many successfully flown airplanes were made as well as how much waste (crumpled papers, non-flying planes, etc) were created. That&#8217;s the round 1 score.</li>
<li>Iterate.</li>
</ol>
<p>The iterate step is where you reflect on what just happened and attempt to modify the process. I&#8217;ll go over how ours went down so you get an idea.</p>
<p><strong>Round 1</strong></p>
<p><strong>Line Setup</strong>: We had 8 people in our line. Round 1, we had 1 lady do the half fold, the 2nd guy do the additional 2 folds + paper sides cut, Andrea and I pass the paper to our left, another lady handle the 1st wing folds, and a gentleman at the end to make the wings and throw it. Our last person was a lady who handled QA and scoring.</p>
<p><strong>Process</strong>: Very quickly we had a bottleneck with the lady at my stations left. The instructions weren&#8217;t very clear and she struggled to learn how to do the first one. Both Andrea and I quickly went to help; Andrea attempting to do it with her, me taking a picture of the instructions with my iPhone, and attempting to duplicate at my desk while ensuring I kept passing the planes to my left into an ever growing pile.</p>
<p>Once I figured it out (I had actually built the exact same plane last week for my daughters birthday present which has an electronic propeller you attach), I told the ladies to ignore the &#8220;requirements&#8221; as they were crap and I walked them through how to successfully complete their step. I then quickly returned to my desk which had a pile of unmoved inventory.</p>
<p>The only person who didn&#8217;t struggle with their assembly was the 1st in the line who had to fold paper in half.</p>
<p>I believe we ended up with 2 planes and 1 waste.</p>
<p><strong>Takeaway</strong>: Our teacher quickly pointed how we went &#8220;downstream&#8221; to fix the production line process. This is a reactionary, and completely normal mode, to fix production line problems. It&#8217;s also wrong. You&#8217;re supposed to identify the upstream problem causing it and fix that. Additionally, we didn&#8217;t stop the line to ensure we fixed this problem first before continuing, also wrong. Car companies like Toyota do this via a chain that&#8217;s pulled to stop the line so they can ensure the problem is resolved. Sometimes they even take part of their line off the main line to ensure things keep moving.</p>
<p>As a side note, apparently GM used to keep going. Door doesn&#8217;t fit right? Keep going; jam the mofo on there. They&#8217;d end up with a lot full of cars pretty quickly&#8230; even if they were low quality. Ford was similar, but they&#8217;d ensure the cars were actually sold first before they sold them, thus not resulting in lots full of inventory they couldn&#8217;t sell like GM&#8230; even if the quality of pre-sold cars was still low.</p>
<p>We also noted various other problems such as no training in each plane&#8217;s building instructions, no one stopping if the station after them go overwhelmed with their ever growing stack, and sometimes idle resources (people with not much to do).</p>
<p><strong>Round 2</strong></p>
<p><strong>Improvements</strong>: First, the teacher actually implemented designated stack areas with a piece of paper on each station, and then wrote a number on the paper; this was the max amount of completed planes you could place for the next station to build so you didn&#8217;t exacerbate a bottleneck.</p>
<p>Second, I become a designated passer to my left while my partner moved to the left station to have a 2 women team doing the complicated folding.</p>
<p><strong>Process</strong>: My job was pretty easy; pass, and ensure I don&#8217;t bottleneck it. Every single station was faster since they had practiced their portion. The guy to my right had actually done his first 3 paper cuts wrong in round 1 which caused confusion to my left station, but had it down pat in round 2. The last station still experimented with various angles of folding to see how far the plane could actually fly. We actually had the last women in the line, QA, send a messed up plane back through the line as an unfolded piece of paper because it didn&#8217;t fly right; w00t, less waste!</p>
<p>A bottleneck, again, formed to my left, but the girls found a way to divide up the 2 step process between them to be more efficient. As our 5 minutes progressed, they got faster and eventually started making progress on the backlog.</p>
<p>We made 5 planes, 1 waste.</p>
<p><strong>Takeaway</strong>: We built 4 planes with 1 waste. The first person, as usual, was too fast. The guy to my right had an inefficient process because he&#8217;d have to fold, pick up the scissors, cut, then put &#8217;em down again. We had all abandoned our airplane instructions by this point.</p>
<p><strong>Round 3</strong></p>
<p><strong>Improvements</strong>:Â Everything else was fine, so we decided to give me the cutting job and the guy to my right would just fold. The girls to my left on-the-fly modification was good and we kept it.</p>
<p><strong>Process</strong>: My first 3 were slow, but once I practiced, I was uber fast and we were humming. The girls to my left were killing it. I managed to keep my right stack always below or at 2 in the pile. Very quickly it became apparent the 1st person was too fast; she was constantly folding and then waiting before she was allowed to make another.</p>
<p>We made 8 airplanes, no waste.</p>
<p><strong>Takeaway</strong>: Those of with spouses were already getting texted like mad to leave, but we all WANTED to see Round 3 succeed better than 2, and see if we made the process perfect. We didn&#8217;t; it went the complete opposite direction to the front of the line needing minor modifications. Overall, though, our output increased a lot, our waste went down, and it was very clear that the adjustments we made + the teachers maximum stack amounts were working well.</p>
<p><strong>My Overall Takeaways</strong></p>
<p>I went to this meeting to both meet new people in town to network with as well as to get out of my comfort zone. I find when I do the latter, I learn a lot and sometimes get a new perspective. It gave me a new appreciation for Project Managers who have not just 1, but 5 projects they have to manage to make an attempt to do this on. This also assumes they get enough time to really learn about each teams issues, where those bottlenecks are, and what the best ways are to address them. NOT by just fixing the bottlenecks, but by fixing the process itself, ensuring stop guards are in place not as many items/cards in a column, etc.</p>
<p>It also made me intimately aware of how I, as a consultant, immediately want to fix the bottleneck, and have learned ways (such as the war room) to solve them&#8230; when in reality, it&#8217;s a PM issue for a greater process problem. The other thing that makes it more complex is the whole &#8220;all things being equal&#8221;. For example, a Kanban board a PM would use on the whole process vs. just the Kanban board my software team would use. If my team fails to do TDD and ends up with a variety of bugs in the system because we&#8217;re forced to develop quickly and produce bad work, this show up on hers as us being the bottleneck. Without time to talk to us and really empower us to change our process, nothing will change.</p>
<p>I see this time and time again. The excuses, which are sometimes valid, range from &#8220;the software&#8217;s good enough even with the bugs&#8221;, or &#8220;TDD is too much work for not enough value&#8221; or &#8220;we can&#8217;t write a test suite for a huge mess that isn&#8217;t even testable&#8221;. &#8230;and that&#8217;s just a small portion of what I&#8217;ve seen gone wrong. If you&#8217;ve ever worked for a design agency, or even a large firm that has a huge new client, it&#8217;s very apparent many teams have a hard time getting sign off from clients which causes a bottleneck in the analysis column on the Kanban board because the items either pile up, or priority constantly shifts&#8230; yet they never actually make it out of their column.</p>
<p>A PM there who works with the government offered his strategies for dealing with the strange QA cycles government agencies will have where it goes into a black hole for 6 weeks thus really screwing up his Kanban metrics.</p>
<p>Overall, it was neat to be in a room with people who were geeking out on improving process. You see a lot of software developers get bored with programming or frustrated with how their lack of process is going, so they read up on XP and Agile. When you look at what these PM&#8217;s deal with, it makes you feel like just a small part in a larger overall process.</p>
<p>More importantly, my preconceptions about leadership being the problem 99% of my problem projects really had a wrench thrown in. I was bitching about it to one of the PM&#8217;s, and quickly explained, in great detail, why some big companies which don&#8217;t have a hard line metric such as money to predict performance will often use Lean methodologies since &#8220;ensuring customer satisfaction&#8221; is hard to measure depending on your business, and requires a more exploratory way of doing business. That said, it was great to hear that the common problems I experience in software dev with solutions were the same, just 1 of many that PM&#8217;s have to deal with.</p>
<p>I highly encourage software developers to partake in one of these exercises, even if you do Scrum vs. Kanban. Really eye opening stuff.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What I Learned About Trying to Double My Rate</title>
		<link>https://jessewarden.com/2010/08/what-i-learned-about-trying-to-double-my-rate.html</link>
					<comments>https://jessewarden.com/2010/08/what-i-learned-about-trying-to-double-my-rate.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Mon, 16 Aug 2010 16:29:29 +0000</pubDate>
				<category><![CDATA[Business Process]]></category>
		<category><![CDATA[consulting]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[freelance]]></category>
		<category><![CDATA[rate]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=2416</guid>

					<description><![CDATA[Introduction I made a new years resolution to double my rate this year. If you take a look at the current Flex Consulting Rates, and think double or triple, youâ€™ll have an idea of what Iâ€™m trying to do. In the past 8 months I&#8217;ve found three challenges to reaching my goal. First, I had [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>Introduction</strong></p>
<p>I made a new years resolution to <a href="http://freelanceswitch.com/money/doubling-your-rate-a-thought-experiment/">double my rate</a> this year.  If you take a look at the <a href="http://www.hotgigs.com/rates/skill/Adobe-Flex-hourly-consultant-bill-rates/">current Flex Consulting Rates</a>, and think double or triple, youâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />ll have an idea of what Iâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />m trying to do.</p>
<p>In the past 8 months I&#8217;ve found three challenges to reaching my goal.  First, I had some misperceptions of what level of quality of software businesses want.  Second, I have been distracted from the truth by the echo chamber I participate in, specifically the Twitter followers and blogs I read.  Finally, and most importantly, while I&#8217;m good at marketing, I&#8217;veÂ completelyÂ failed in selling the value of my services. Â The following lists the failings in detail with my new goals to fix those problems.</p>
<p><span id="more-2416"></span><strong>Why Double My Rate?</strong></p>
<p>Iâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />ve found there is a glass ceiling with programming rates.  I figure if I find a way to break through that ceiling, then Iâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />ll learn.  You should always be learning in programming, and thus doubling my rate this allows me to learn.</p>
<p><strong>Programmers Want to Create First and Foremost, Businessmen Want to Make Money First and Foremost</strong></p>
<p>Any programmer who wants to be good is constantly focused on learning and improving their craft.  Specifically we focus on anything, and everything that can positively contribute to ensuring we produce better code thatâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />s more enjoyable to work with, reduces project risk, and ensures a good user experience.  This includes, but is not limited to, learning new design patterns, languages &amp; runtimes, and processes such asÂ ContinuousÂ Integration, Agile/Scrum, and TDD.</p>
<p>When talking to 3 successful businessmen I know, all 3 arenâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />t focused on improving their craft.  They are focused on making more money.  My Dad is in sales and sells luxury hardware installations.  My Uncle Barry is in luxury retail.  My Uncle Flip is a corporate lawyer.  All 3 are financially successful. Â While they have different educational backgrounds, and different businesses, all 3 corroborate each other.  Iâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />ve found that other successful people, whether in their blogs, in company press releases, or public interviews all have the same primary motivation.  Theyâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />ll quickly follow with others, but making money is ALWAYS #1.</p>
<p>Iâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />ve spent 10 years learning how to make the best software possible.  Itâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />s not helping me make more money.</p>
<p><strong>New Goal #1</strong>: Learn more about making money.</p>
<p><strong>Good Enough Software</strong></p>
<p>One thing I&#8217;ve noticed in my consulting over the years is that a lot of companies have an extremely low expectations for software quality &amp; velocity compared to me and my colleagues.  Many would rather purchase software made at Walmart vs. Louis Vuitton.  While investing in the R in RIA has a <a href="http://www.google.com/url?q=http://www.adobe.com/enterprise/pdfs/infotech-ria-business-case.pdf&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNEI3QWvvPd3jgl5vOYkP-QOd4PbUQ">higher return on investment (PDF)</a>, many find that simply investing in the ubiquity of Flash Player with its predictable playback is good enough.</p>
<p>Later, a lot of these companies realize their software has usability problems or is hard to sell.  This is often where I come in; to make an existing Flex application look hot.  This is backwards how youâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />re supposed to do software. It happens again and again because companies are rewarded through profit for good enough software.  While it costs them a lot more later to implement a design, at least they DO eventually recognize the value of it.</p>
<p>One of the biggest challenges Iâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />ve had in winning new engagements is educating a potential new client on what the true value of quality is vs. â€œgood enoughâ€, as well as justifying the cost of good design and UX.  While iPhone was a game changer, <a href="http://www.enterprisemobiletoday.com/news/article.php/3898226/Android-Leads-Smartphone-Sales-Surge-in-2Q-Gartner.htm">Android sales are surging past it</a>.  From a consumer perspective, many would agree iPhone provides a better user experience compared to Android, yet that is not hindering Android sales success enough to prevent it from beating iPhone in total market share.  Having multiple operators, multiple device types, and targeting different demographics are all the primary drivers, none of which have to do with good UX.  This fact validates the â€œgood enoughâ€ point, and makes it even more challenging for me to quantify the value of good design when it&#8217;s not a prerequisite for software profitability.</p>
<p>I still believe good design in software is a must IF you believe in quality.  It ensures less risk, time &amp; cost savings during development, and an overall better customer experience.  This in turn leads to saving a lot of money as well as making more money.</p>
<p><strong>New Goal #2</strong>: I need to get better at communicating the benefits good quality software will bring in both quantitative and qualitative ways. Â I know what they are, but wrongfully assume my clients do as well. Â Educating them with qualitative experience as well as providing hard numbers &amp; associated risk costs should help.</p>
<p><strong>New Goal #3</strong>: I need to quantify the savings &amp; benefits of doing design early vs. later since in my experience every client who does design last ends up spending more and having more risk &amp; technical debt.</p>
<p><strong>Selling Value, Not A Price</strong></p>
<p><a href="http://clarkhoward.com/">Clark Howard</a>, a consumer advocate and popular talk radio host recently said:</p>
<blockquote><p>One good thing about the recession is that it has taught us to be frugal consumers.</p></blockquote>
<p>He later went on to quote those retailers that did well in Q2 of this year.  Unsurprisingly, most were retailers who sold goods as cheap as possible (Walmart, Dollar Tree, etc). Â I, however, consider my services top of the line goods because I continually focus on being the best. Â Even in the recession, people still buy Porsche&#8217;. Â This recession certainly has made me focus on what makes a <a href="http://www.forbes.com/2010/06/24/highest-quality-cars-2010-lifestyle-vehicles-jd-power.html">Porsche&#8217; a higher quality</a> choice than aÂ Hyundai, and translating that into how I can sell my software services vs. competitors who compete on price.</p>
<p>There are a ton of expenses working for yourself.  People who work at companies as W2/employee&#8217;s often have no clue of these expenses, and often respond with <a href="http://www.consultantjournal.com/blog/consultant-fee-sticker-shock">sticker shock</a> to some quotes.  Some just have no idea of the costs of software.  Some are just playing the haggling game until I call their bluff.</p>
<p>I&#8217;ve spent years building the Jesse Warden <a href="http://jessewarden.com/2006/10/personal-branding-checklist.html">personal brand</a>, trying to<a href="http://crushitbook.com/"> cash in on my passion</a> andÂ <a href="http://sethgodin.typepad.com/seths_blog/2008/03/why-bother-havi.html">not bothering to have a resume</a>. Â Many of my first time clients have no idea who I am, nor who my company is. Â If it&#8217;s a referral client, they&#8217;ve only gotten a distilled version. Â Thus, I have to start from scratch to sell my expertise, my experience, and my company&#8217;s value.</p>
<p>Two of the recommendations I received from <a href="http://twitter.com/davidortinau">David Ortinau</a>, <a href="http://twitter.com/jeffbnimble">Jeff Roberts</a>, andÂ <a href="http://twitter.com/egrasing">Ed Grasing</a> was to sell value, not price. I donâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />t compete on price; I ensure Iâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />m the most expensive to associate myself with the quality I deliver.  This doesnâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />t work, though, if you donâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />t have an established brand the client can already recognize, like <a href="http://jessewarden.com/2009/04/how-to-do-a-ria-correctly.html">Cynergy</a>.  You can do this by showcasing past work; not just the project, but the VALUE it provided the previous client of yours. Â Additionally, doing the legwork on how much it will cost them if they DON&#8217;T hire me/my company helps inspire a CYA (cover yo&#8217; arse) feeling.</p>
<p>I&#8217;ve done enough consulting to know projects that should of taken 3 months that took 8.  I&#8217;ve even bid on projects where I said it&#8217;d take 4 months, the client figured 2, and then I later hear from those who won the bid that it took 10.  Therefore, it shouldn&#8217;t be overly difficult for me to also create a project cost estimate based on what I know will happen when others who compete on price do it instead of me.</p>
<p><strong>New Goal #4</strong>: Create case studies from past clients that show the value my skills provided them, and how much money it saved/made them.</p>
<p><strong>New Goal #5</strong>: For new projects where Iâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />m putting together a Statement of Work (SOW), also add what the cost will be without hiring me.</p>
<p><strong>Selling Myself as a Purple Cow</strong></p>
<p><a href="http://sethgodin.typepad.com/seths_blog/2008/03/why-bother-havi.html">Seth Godin</a> has an idea about making a product a <a href="http://www.sethgodin.com/purple/">Purple Cow</a>; something unique that stands out. Â Things that makes me unique in the Flex Community are I know how to implement complex designs in Flex, have a thorough knowledge of the Flash Player from my Design Agency background doing Flash, and have an extensive network to use in hiring/sub-contracting additional help as well as answering questions outside my expertise domain.</p>
<p>Not once have I used those 3 things as a selling point to clients about what value I provide. Â However, <a href="http://www.universalmind.com/">Universal Mind</a>, three times, has used those traits in selling me to THEIR clients, the now defunct ESRIA once, and <a href="http://www.roundarch.com/">Roundarch</a> once.</p>
<p>I&#8217;ve also recently joined <a href="http://webappsolution.com">Web App Solution</a> as a partner. Â One of the goals was to further increase my networking value since I now have 3 additional senior Flex/Java/Blaze DS resources as well as their experience.</p>
<p><strong>New Goal #6</strong>: Use my unique traits to help sell my value to clients.</p>
<p><strong>Conclusions</strong></p>
<p>My goal this year was to double my rate for the sake of learning, and hopefully making more bling. Â I want to break the glass ceiling by years end. Â Even if I fail, I&#8217;ve learned so much already in trying. Â I&#8217;ve also gotten really close a few times this year so I know I&#8217;m making progress.</p>
<p>Another over all goal that I&#8217;ve been pursuing is to seek out mentors in the business field vs. the software development one. Â When starting out in software, the #1 thing that helped me the most, quickly, with the least pain was mentors. Â Everything from official ones to simply reading their books/blog posts. Â I&#8217;ve sought outÂ entrepreneurs and others online, cornered ones I found at conferences I attend so I could grill them, and gotten a lot of good book recommendations for business as opposed to software.</p>
<p>TheÂ consolidatedÂ list of my new goals to help reach my New Years Resolution:</p>
<ol>
<li>Learn more about making money.</li>
<li>Get better at communicating the benefits good quality software will bring in both quantitative and qualitative ways.</li>
<li>Quantify the savings &amp; benefits of doing visual design early vs. later.</li>
<li>Create case studies from past clients that show the value my skills provided them, and how much money it saved/made them.</li>
<li>For new projects where Iâ€<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />m putting together a Statement of Work (SOW), add what the costs/risks will be without hiring me.</li>
<li>Use my Purple Cow/unique, standout traits (design integration, Flash Player knowledge, network) to help sell my value to clients.</li>
</ol>
<p>This is a lot harder than I thought. Â My Dad just said to double my price and the work would roll in. Â I&#8217;m not the salesman he is, though. Â Either way, I&#8217;m making a lot of progress and learning a lot, so I know I&#8217;ll get there eventually.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2010/08/what-i-learned-about-trying-to-double-my-rate.html/feed</wfw:commentRss>
			<slash:comments>26</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>Twitter is How I Obtain Job Opportunities</title>
		<link>https://jessewarden.com/2009/07/twitter-is-how-i-obtain-job-opportunities.html</link>
					<comments>https://jessewarden.com/2009/07/twitter-is-how-i-obtain-job-opportunities.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Wed, 08 Jul 2009 16:47:16 +0000</pubDate>
				<category><![CDATA[Branding]]></category>
		<category><![CDATA[Business Process]]></category>
		<category><![CDATA[Jobs]]></category>
		<category><![CDATA[Personal]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=1715</guid>

					<description><![CDATA[My first job was obtained via networking with the right people at college. Â My 2nd, 3rd, and 4th job was from Monster.com + my email address in my code. Â I pretty much stopped working W2 jobs in 2004, and started doing full time contracting &#38; consulting. Â Thenceforth to 2007, all my gigs were from networking [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>My first job was obtained via networking with the right people at <a href="http://www.artinstitutes.edu/atlanta/">college</a>. Â My 2nd, 3rd, and 4th job was from <a href="http://monster.com">Monster.com</a> + my email address in my code. Â I pretty much stopped working W2 jobs in 2004, and started doing full time contracting &amp; consulting. Â Thenceforth to 2007, all my gigs were from networking such as going to industry events, blogging, and my email address in my code. Â From early 2008 to now a new source has emerged: <a href="http://twitter.com">Twitter</a>.</p>
<p><span id="more-1715"></span>I&#8217;ve already talked about this on Twitter, but that doesn&#8217;t have much use nor context if you don&#8217;t <a href="http://twitter.com/jesterxl">follow me on Twitter</a>, or if you&#8217;re not on it because you don&#8217;t see any value in it. Â Twitter is a lonely place without friends to talk to and/or follow, so it can have a perceived higher barrier of entry if you don&#8217;t feel like you have much incentive to invest time in it. Â I&#8217;m here to tell you it&#8217;s my primary way of making my living now through networking.</p>
<p>Networking has always been at the core of how I&#8217;ve obtained new opportunities in my career. Â Knowing the right people is the #1 thing you can do to improve your career and get the best opportunities. Â You should strive toÂ <a href="http://sethgodin.typepad.com/seths_blog/2008/03/why-bother-havi.html">NOT have a resume</a>, and good networking is one way to do it.Â Â The good opportunities don&#8217;t always specifically seek you out, and increasing your exposure increases your ability to potentially spot them. Â Twitter is just another form of networking. Â The lines between personal life and professional are unfortunately very blurred there, but suffice it to say being myself has not negatively affected my career options as I perceive it.</p>
<p>I was talking to a recruiter yesterday, and the conversation went how it always goes: Hey, interested, wrong work style &amp; too low pay, here I&#8217;ll refer you. Â The longer version is:</p>
<p>&#8220;Hey, are you interested in this gig?&#8221;</p>
<p>&#8220;Possibly, what do they want?&#8221;</p>
<p>&#8220;Contract to W2, on-site only with no remote working, for half of what you are making on consulting.&#8221;</p>
<p>&#8220;No thank you. Â Since you&#8217;re a nice sounding recruiter, send me an email and I&#8217;ll send you a list of potential contractors with notes on who is probably appropriate.&#8221;</p>
<p>The change yesterday in this oft repeated conversation for the past 4 years is:</p>
<p>&#8220;If I may ask, how do you obtain most of your opportunities nowadays?&#8221;</p>
<p>When I answered Twitter, I thought back to the history and relayed it to him. Â Friends at college, then Monster.com, then email in code, then <a href="http://google.com">Google</a> indexing <a href="http://jessewarden.com">my blog</a>, and now Twitter. Â Things that haven&#8217;t worked for me are <a href="http://linkedin.com">LinkedIn.com</a> and <a href="http://facebook.com">Facebook</a>. Â LinkedIn usually just forwards me more recruiter emails. Â Recruiter emails and phone calls, assuming they speak good English, are worth my time because sometimes an opportunity I forward actually does get acted upon. Â What goes around comes around, and in turn those contractors/consultants/W2 devs I network with will in turn send me opportunities. Â So I technically do get paid by being a part time recruiter, just in a different fashion.</p>
<p>In conclusion, I just wanted to point out on the place where I used to get all of my work, my blog, where I now get most of my work, on Twitter. Â Currently this blog appears to have a larger, and more prolonged audience, so hopefully this&#8217;ll spark new opportunities for those of you who are either not on Twitter for this sole purpose, or are but just haven&#8217;t realized you can obtain employment in this fashion. Â I felt it was interesting now that I had some time to reflect, and am curious if it is just a fad, or perhaps a trend. Â If it IS a trend, how are traditional avenues going to react?</p>
<p>The following are some tips that have worked for me and may help you maximize your potential in getting employment on Twitter:</p>
<p><strong> Follow People in Your Industry</strong></p>
<p>They may have opportunities they&#8217;ll actually post about. Â Alternatively, if you post you are looking, they are usually most apt to know where to point you for potential opportunities. Â Remember, people cannot direct message you Â (which also sends you an email) unless you follow them, so if you refuse to follow them back, at least provide a way for people to contact you. Â Having an email on your website seems brainless, but I unfortunately see many blogs and portfolio sites with NO way to contact the owner. Â &#8220;Hey, I have a check for $10 million dollars with your name on it&#8230; hello? Â I guess I&#8217;ll just give it to someone else, then?&#8221;. Â If you are worried about spam, utilize <a href="http://gmail.com">gmail.com</a>. Â You don&#8217;t have to change your email address; Gmail supports routing your existing email address through their POP servers so you can utilize their pimp Spam blocking.</p>
<p><strong>State Simply You Want Work</strong></p>
<p>If you are looking for an opportunity, state simply what you are looking for, and that you are looking for work. Â It should be short enough that others can retweet it (your message with an RT in front of it). Â This means give room in Twitter&#8217;s allotted 114 characters for your message + your name + RT plus a space. Â The more the better because it can then be re-tweeted by multiple people.</p>
<p><strong>Proof Read Your Message</strong></p>
<p>Make sure it has correct spelling, and states clearly your intent. Â You only get 1 shot at this.</p>
<p><strong>Have a Clean History</strong></p>
<p>Make sure your previous messages (4 minimum) have something that isn&#8217;t aversive to your potential employment. Â If you cuss, make sure to make some tweets without curse words. Â Link to industry relevant articles and/or talk about pertinent things in your industry. Â Space your tweets out at least an hour or so in case the reader see&#8217;s your frequency and decides to go back to find less savory tweets. Â Remember, there is no such thing as &#8220;delete&#8221; on the web.</p>
<p><strong>Post during the Height of Activity</strong></p>
<p><strong></strong>For me, this is around 10:00 AM EST GMT-5. Â The hardcore east coast twitterers have already broken new news, and the international crowd is either turning in for the evening, or just winding down their work day. Â The early risers in the west coast are just waking up, and checking Twitter just like they check their email. Â This will maximize your exposure.</p>
<p><strong>Use Twitter&#8217;s Email Marketing &#8220;Spam Feature&#8221;</strong></p>
<p>If are pointed to someone who may have an opportunity, follow them on Twitter. Â This&#8217;ll usually spawn Twitter to email them. Â They&#8217;ll get a link in their inbox to your profile on Twitter. Â If they click it, your employment request message will be at the top, and the first thing they see next to your Twitter icon and hopefully relevant profile information. Â This is a cheap form of email marketing. Â I, like the majority of people, hate Spam&#8230; but it works, hence why it still occurs.</p>
<p><strong>Keep Your Job Tweet Around</strong></p>
<p>Leave your tweet up awhile without making new ones. Â You want to ensure it stays around awhile for those to read it.</p>
<p><strong>Say Thank You</strong></p>
<p>Finally, say thank you to your network afterwords.</p>
<p>Good luck!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2009/07/twitter-is-how-i-obtain-job-opportunities.html/feed</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
