https://ryanfunduk.com/RYANFUNDUK.COM ATOM FEED2017-02-06T00:00:00ZRyan Fundukhttps://ryanfunduk.comtag:ryanfunduk.com,2017-02-06:/articles/breaking-rules/Breaking Every Rule in the Book2017-02-06T00:00:00Z2017-02-06T00:00:00Z
<p>Last week in my <a href="/articles/bugrocket-retrospective/">Bugrocket retrospective</a> I talked about how in hindsight one of the things I should have done was to start promotion way earlier. Start marketing as soon as you start coding, they say. I didn’t do that at the time because I didn’t know any better… or maybe the real reason was that I am terrible at, and strongly dislike, marketing?</p>
<h3 id="i-did-it-again">I did it again</h3>
<p><img src="/img/articles/breaking-rules/ytho.jpg" width="300" style="float: right; margin-bottom: 20px; margin-left: 30px; margin-top: 10px;" /></p>
<p>I’ve been working on something new on and off for a while. <strong>In complete secrecy</strong> contrary to all advice.</p>
<p>It started innocently as a quick little weekend project (<a href="/articles/weekend-projects/">I like those</a>) to play with integrating React, Webpack, etc into a Rails app. I just wanted to have some kind of real project to fiddle with while I figured that stuff out. Really, my typical weekend project.</p>
<p>Eventually it started to become something I thought might be actually useful. But, that’s not really the point of this article <small>(maybe I’ll <em>blast</em> my list with a <em>bribe</em> about it later…)</small>.</p>
<h3 id="im-not-into-marketing-">I’m not into marketing ¯\_(ツ)_/¯</h3>
<p>The further into development I got, I started to feel more and more ‘guilty’ about how if this was a real thing, I need to be <em>marketingggggg</em>! Y-U-NO build email list!?</p>
<p>At several points the mental weight of the fact that I was ‘totally screwing this up’ felt crushing. I left it to sit for a long time – months sometimes (I started this project in mid-<em>2015</em>). What was I doing? Surely making this thing was utterly pointless if I wasn’t promoting it and finding product/market fit. Why was I spending whole evenings or weekends working on this thing?</p>
<p><strong>Because I enjoyed it</strong>, that’s why.</p>
<p>The rhetoric you often see out there about how you must find a niche market and infiltrate their forums and slowly formulate a plan as to how you will get them on your mailing list and ultimately have them pay you for stuff… It’s usually not how I want to spend my time.</p>
<h3 id="making-stuff-for-fun-and-fun">Making stuff for fun and… fun</h3>
<p>Don’t get me wrong, I have financial goals too. I have a mortgage and a 6 month old. I need to generate income somehow. But when I’ve got the itch to make something, I just want to get down to making it.</p>
<p>I’m reminded of a Steve Jobs quote that fits well. He’s talking about decisions like removing the floppy drive from Macs, and not supporting Flash on the iPhone:</p>
<blockquote>
<p>
If we succeed, they’ll buy them, and if we don’t, they won’t, and it’ll all work itself out.
</p>
<cite>Steve Jobs</cite>
</blockquote>
<p>I feel like I can apply this to product development. You want something to exist? You have the ability to make it happen? You don’t need to go yak shaving around the internet to find out if it’s got product/market fit or a ‘killer app’ or any other buzzwords.</p>
<p><em>It’s ok to just make it and find out if other people agree.</em></p>
<p>You might be right, or you might be wrong – but I guarantee you’ll learn a lot in the process, and who knows what you might stumble upon.</p>
tag:ryanfunduk.com,2017-01-30:/articles/bugrocket-retrospective/Bugrocket Retrospective2017-01-30T00:00:00Z2017-01-30T00:00:00Z
<p>Six years ago I, with some help, launched <a href="https://bugrocket.com">Bugrocket</a>. It was my first major solo project, and it’s certainly been worth a lot from a learning and experience standpoint. But besides that…? It’s time for a retrospective!</p>
<p><img alt="Flying Bugrocket" style="border-radius: 5px; display: block; margin: 25px 0;" src="/img/articles/bugrocket-retrospective/banner.png" /></p>
<h3 id="starting-out">Starting out</h3>
<p>In 2009 I was working at <a href="https://pingg.com">Pingg</a> (has since changed owners twice). We were plugging away making, in short, a better Evite (which was <em>really</em> bad at the time, they’ve since redesigned at least once of course). There were only a few of us working on the code. For whatever reason one of my big pain points was bug tracking. Maybe because we used Bugzilla.</p>
<p><img alt="Bugzilla 3" style="border-radius: 5px; display: block; margin: 25px 0;" src="/img/articles/bugrocket-retrospective/bugzilla.png" /></p>
<p>I resolved to find a replacement, but after poking at tons of them we just didn’t find anything that got us excited enough to go through the effort of switching. One night I decided to just see what I could come up with on my own. I would aim for the essentials/basics of bug tracking that a small dev team would need and nothing else.</p>
<p><strong>Takeaways:</strong> There <em>did</em> exist several alternatives that would have worked fine for us such as <a href="https://sifterapp.com/">Sifter</a>, but somehow I convinced myself they wouldn’t do. I think a big factor was just me having the itch to work on something of my own.</p>
<h3 id="beta-iteration">Beta iteration</h3>
<p>With a full time job the going was pretty slow. It probably took about 6 months of fiddling around, throwing stuff away and starting over, and major refactorings to get to a point where I thought I had something useful.</p>
<p>I used <a href="https://www.mongodb.com">MongoDB</a> which made sense to me because it was fun to use and didn’t require doing database migrations for every change to the schema. Since I was making lots of pretty far reaching changes every time I sat down to work, this seemed like a good thing.</p>
<p><img alt="MongoDB Logo" width="400" style="background: white; padding: 10px; border-radius: 5px; display: block; margin: 25px 0;" src="/img/articles/bugrocket-retrospective/mongodb-logo.jpg" /></p>
<p>I was so on-board with MongoDB I even <a href="http://blog.bugrocket.com/rapid-development/">entered</a> 10gen’s <a href="https://www.mongodb.com/post/4614598595/congrats-to-ryan-funduk-of-bugrocket-winner-of-the">blog post contest</a> and won a bunch of MongoDB stuff like coffee mugs and a backpack.</p>
<p>Once it was usable (and after proposing it to the boss and getting the go-ahead) I wrote some scripts to dump the Bugzilla database and then import it into Bugrocket, and all was well. We also ran a mostly open beta and took in maybe 30-50 accounts.</p>
<p>I felt, and still feel, like it was a good way to approach the product. We were exactly in the target market. While there were options that would have been fine, there still wasn’t anything as simple as Bugrocket was going to be (for example, <a href="https://github.com/blog/411-github-issue-tracker">GitHub issues didn’t exist</a> when I started development, and it took a while to become very useful anyway).</p>
<p>By now I was starting to get excited and whipped up a <a href="http://blog.bugrocket.com">blog</a> with a static site generator I had been working on (<a href="https://github.com/rfunduk/jen">long defunct</a>) and starting writing down notes and ideas for posts. One of those ideas would later be published as the <a href="http://blog.bugrocket.com/introducing/">introductory post</a>.</p>
<p>Here’s something fun – check out this embarrassing early homepage:</p>
<p><img alt="Early Bugrocket Homepage" style="border-radius: 5px; display: block; margin: 25px 0; margin-bottom: 0;" src="/img/articles/bugrocket-retrospective/early-homepage.png" />
<small>Yea, that’s the whole thing 😐… Look at that background colour! Wow.</small></p>
<p><strong>Takeaways:</strong> In retrospect MongoDB was not a good technology choice for this project. I lost out on a lot of relational features that you’d think (correctly) would be useful for a hierarchical app like a bug tracker. I embedded ticket history inside the ticket documents, too, so I had a lot of performance problems trying to load larger lists of tickets, etc. It was also really immature at the time, both the database itself and the libraries to use it from <a href="https://rubyonrails.org">Rails</a>. This, plus my relative newbie-ness, unfortunately made the code more than a bit of a mess. I ended up spending quite a bit of time on some major refactors a couple years ago while adding some features. It still causes me pain every time I go in there to do something. Just use Postgres, people :)</p>
<h3 id="launch">Launch</h3>
<p>Once we had been using it and running the beta for a while and various fixes and improvements had been made, I started thinking about a real launch. At the time it was pretty painful to start up a web business in Canada. Merchant accounts and I don’t even know what else. <a href="https://stripe.com">Stripe</a> didn’t even exist, and then wasn’t available in Canada for quite some time. It was a non-starter for me.</p>
<p>The founders of Pingg got on board and helped me figure all that stuff out. Incorporation in Delaware, US bank account + <a href="https://www.braintreepayments.com">Braintree</a> account, accountants, lawyers, etc. They also put in some cash to pay for this stuff and some operating expense runway.</p>
<p>I was pretty <a href="http://zurb.com/forrst/people/rfunduk">active on a community called Forrst</a> at the time, answering questions and so on. I talked about the beta there and got a lot of our beta testers and initial feedback that way. I made a launch post as well. Between that and a <a href="https://news.ycombinator.com/item?id=2359747">Hacker News post</a> we got about 1000 hits during launch week (March 2011), and it stayed pretty steady for a while.</p>
<p><img alt="Early Bugrocket Pageviews" style="border-radius: 5px; display: block; margin: 25px 0;" src="/img/articles/bugrocket-retrospective/early-stats.png" /></p>
<p>Of course there was a new homepage, here’s the above-the-fold:</p>
<p><img alt="Bugrocket Homepage v2" style="border-radius: 5px; display: block; margin: 25px 0; margin-bottom: 0;" src="/img/articles/bugrocket-retrospective/homepage-v2.png" />
<small>The clouds moved! 😮</small></p>
<p>The price was set at $20/month all inclusive (soft-cap of 25GB of file uploads which nobody ever came close to). At the time it was pretty unusual not to require a credit card at sign-up. I got some flak over it on Hacker News, but obviously history proved me right – most services don’t require a credit card upfront anymore.</p>
<p><strong>Takeaways:</strong> I was pretty excited during the launch but I think it’s obvious that I didn’t really manage to get enough interest during beta/etc. These days the advice is all about starting marketing as soon as you start coding but that’s just not how I thought about it at all. I should have started blogging, tweeting, etc way earlier.</p>
<h3 id="growth-or-not">Growth (or not)</h3>
<p>Traffic to the homepage later peaked around 3000 visits/month in November 2011. And that’s also pretty much the height of trial sign-ups as well.</p>
<p><img alt="Bugrocket Trails Over Time" style="border-radius: 5px; display: block; margin: 25px 0;" src="/img/articles/bugrocket-retrospective/trials.png" /></p>
<p>We ran some standard ads, both text and images — looking at these ads from 2011 now… they do not age well!</p>
<p><img alt="Old Bugrocket Stuff" style="display: block; margin: 25px 0;" src="/img/articles/bugrocket-retrospective/old-stuff.png" /></p>
<p>We tried some other marketing ideas such as an AppSumo discount and the <a href="http://railscasts.com/contest">Railscast Contest</a>. These did pretty well, but it was slow going to find and do things like that.</p>
<p>After doing some math on our Google Ads results, the <abbr title="Cost Per Aquisition">CPA</abbr> was looking way too high – if I remember correctly it was something insane like $1000+/subscriber ($18 per visitor converted to trial via ads, 1-2% trial to subscription rate) which would take years of subscription to break even on. I stopped running them pretty quickly – instead trying to, typical developer that I am, focus on improving the product. I wrote a bunch of blog posts about new/improved features and also what we called ‘unfeatures’ (and sometimes both like <a href="http://blog.bugrocket.com/unfeature-dependencies/">Depends-on & Blocks</a>) which were more or less stabs at the other bug trackers that have dozens of complicated features seemingly for the sake of it, or just to please managers. “Bugrocket is for <em>developers</em>!” I would say, but they didn’t know about Bugrocket and I couldn’t seem to reach them.</p>
<p>Another thing that got me sidetracked was doing an API. I figured <em>surely</em> developers would be more interested if there were an API! Data freedom! So I implemented a read-only API along with another <a href="http://developer.bugrocket.com">static site for the docs</a>.</p>
<p><a href="http://developer.bugrocket.com"><img alt="Bugrocket Developer Docs Site Logo" style="background: #222822; padding: 10px; border-radius: 5px; display: block; margin: 25px 0;" src="/img/articles/bugrocket-retrospective/api-logo.png" /></a></p>
<p>A write API was planned but a grand total of <em>10</em> accounts (out of ~1500 total) ever made a request, only 1 of which is still subscribed today. Even sadder is that only <em>3</em> accounts ever made more than a handful of requests. So I abandoned the idea and left it read-only.</p>
<p><strong>Takeaways:</strong> For my first ever commercial product launch I wasn’t bummed about the numbers at the time. We were signing up trials and converting some of the beta testers, etc. In retrospect though, it was really hard to generate any interest in a new bug tracker. I definitely under-estimated what an uphill battle it would be to actually get people to not only come across the site but also try the product. Nobody wants to talk about bug tracking or cares enough to consider switching from their current system even if they in-passing dislike JIRA or Pivotal or GitHub issues or whatever. Ultimately it feels like it’s just not exciting enough for there to be room for more options.</p>
<h3 id="the-startup-valley-of-death">The startup valley of death</h3>
<p>As you can see by the trial sign-ups graph above and the cumulative subscribers graph below — by mid-2012 everything was trending down (less than 1000 visits/month) and would never recover.</p>
<p>The problem was that we were throwing money at the traffic problem. Once we stopped doing that as much, things just flat-lined. Here’s the graph of the cumulative number of paid accounts:</p>
<p><img alt="Bugrocket Cumulative Subscribers" style="border-radius: 5px; display: block; margin: 25px 0;" src="/img/articles/bugrocket-retrospective/cumulative-subs.png" /></p>
<p>It looks like it’s growing pretty nicely there at the beginning. But remember that was launch interest + Google Ads which weren’t even close to sustainable. It’s just too expensive and too low-volume to buy keywords like ‘bug tracker’.</p>
<p>Also – churn! The subscribers graph makes it obvious, but it’s even worse when you look at just subs/cancels over time:</p>
<p><img alt="Bugrocket Churn Graph" style="border-radius: 5px; display: block; margin: 25px 0;" src="/img/articles/bugrocket-retrospective/churn.png" /></p>
<p><strong>Takeaways:</strong> I think one of the big problems is that burning through the investment made by the Pingg founders was stressful for me. I felt disinclined to propose spending money on things that I really had no reason to think would work. Should we sponsor a conference or a meetup? Should we find somewhere else to advertise? Should we pay someone to write more regular blog posts? Something else entirely? I totally stalled myself on the marketing side. So all of my effort was put into the application itself – not exactly a bad thing, but it wasn’t very helpful in terms of traction/revenue/etc. I should have realized that it was making enough <abbr title="Monthly Recurring Revenue">MRR</abbr> to pay for operating costs, so the funds in the bank <em>should</em> have been aggressively used to try and grow.</p>
<h3 id="some-attempts-to-recover">Some attempts to recover</h3>
<p>Some contractors/freelancers were asking about using it for their client work. Client A should be not able to see Client B’s tickets, therefore I needed some <a href="http://blog.bugrocket.com/update-acl/">access control features</a> on a per-project basis in the app. Very few freelancers actually ended up using Bugrocket despite this feature, unfortunately.</p>
<p>The freelancers also helped push a decision to rejigger the pricing model. I had some smaller users complain that it felt like they were subsidizing bigger companies in a way because they were spending the same amount but using it way less. It got me thinking that maybe larger companies (by large I mean Bugrocket large, maybe 15 users) felt like it was <em>too cheap</em>, especially considering what alternatives cost. So off I went and did tiered pricing.</p>
<p><img alt="Bugrocket Tiered Pricing" style="border-radius: 5px; display: block; margin: 25px 0; margin-bottom: 0;" src="/img/articles/bugrocket-retrospective/tiered-pricing.png" />
<small style="text-align: center; display: block;">That weird beige background is finally gone!</small></p>
<p>It was one of those “let’s have a large plan we don’t really expect anyone to buy that makes the middle-tier plan look more appealing” situations.</p>
<p>After watching it for a while it was looking like that coincided with the traffic/trial drop-off, so it felt like a failure. Bugrocket is a very simple product and I think the tiers ended up being too big for its britches. Within a year I decided to go back to a single tier and dropped the price to $15/month instead of $20.</p>
<p>I was also starting to realize that it’s a big leap to use a new bug tracker. You spend time putting your stuff into it… but what if it sucks or is broken? I resolved to fix this problem by making a fairly elaborate tour system which involved the system making an account from a template-of-sorts and then using a side-project I had been working on – <a href="https://ryanfunduk.com/jquery-tourbus">jQuery Tourbus</a> – to walk the user through the various features and pages of the app. <a href="https://bugrocket.com/tour">Try it out!</a></p>
<p><img alt="Bugrocket Example Tour Step" style="border-radius: 5px; display: block; margin: 25px 0;" src="/img/articles/bugrocket-retrospective/tour-step.png" /></p>
<p><strong>Takeaways:</strong> At the end of the day I just don’t think technology/features was the problem. The problem was traffic and traction. Not enough people were looking for bug trackers. Not enough looking for the kind of bug tracker Bugrocket is (it especially did not resonate with managers who, it turns out, often make the decision on which bug tracker to use). And not enough willing to take the leap and use something besides the big well known ones (nobody was ever fired for choosing JIRA, even if devs don’t like it).</p>
<h3 id="maintenance-mode">Maintenance mode</h3>
<p>By December 2014 Pingg had been sold and we were all working on other things. I had also been running <a href="https://coursecraft.net">CourseCraft</a> with my wife for 2 years already and it was doing better than Bugrocket ever did. The other co-founders and I worked out a way to give Bugrocket back to me/wind down the US corp, etc. It would become part of the Canadian corp that already owned CourseCraft. I did a death-defying AWS account migration so some servers and such could be shared between the 2 apps saving a chunk of monthly cash.</p>
<p>Billing was moved to Stripe from Braintree since I was working for Stripe at the time and again I wanted to consolidate accounts and so on. I also went back to the original price of $20/month - talk about pricing churn!</p>
<p>Here’s the final pricing page with just the single option. Below this is a direct sign-up form.</p>
<p><img alt="Bugrocket Final Pricing" style="border-radius: 5px; display: block; margin: 25px 0;" src="/img/articles/bugrocket-retrospective/final-pricing.png" /></p>
<p>I also added a <a href="http://blog.bugrocket.com/update-custom-logo/">custom logo feature</a> and <a href="http://blog.bugrocket.com/update-slack-integration/">Slack integration</a> around this time. A lot of people use the logo feature and while it did bring in some traffic, hardly any use the Slack integration.</p>
<p><img alt="Bugrocket Slack Integration + Custom Logo" style="background: #fbfbfb; padding: 10px; border-radius: 5px; display: block; margin: 25px 0; margin-bottom: 0;" src="/img/articles/bugrocket-retrospective/slack-logo-config.png" />
<small>As simple as that!</small></p>
<p>Of course there have also been bug fixes and minor improvements in response to feedback/support requests and such here and there, but largely the product is ‘done’ and I’m not spending much time working on it.</p>
<p><strong>Takeaways:</strong> Losing a handle on the marketing and mostly seeing a 1-1 subscribe/cancel ratio put me in a weird spot. Should I shut it down? I do still like the product quite a lot! I’ve done a lot of freelancing (hey, you <a href="/contact">can hire me</a> 😉) and used plenty of issue tracking systems as part of that, and I still don’t like most of them very much. GitHub issues is mostly fine, though, and a huge number of developers find it convenient to keep their code and issues in the same place. At this point I’m happy to keep it around as a pet-project, improving it just for personal (and the 22 current subscribers!) satisfaction.</p>
<h3 id="future">Future</h3>
<p>Bugrocket costs are super low because of the shared servers I mentioned earlier. Plus with low traffic it’s not causing a lot of problems or needing a lot of scaling and so on. It brings in ~$500 USD/month (that’s over $650 CAD <a href="http://www.forbes.com/sites/charlespurdy/2016/11/15/what-does-the-trump-presidency-mean-for-the-u-s-dollar">at the time of writing</a> which is a decent chunk of the entire corporation’s monthly costs.</p>
<p>That means I don’t really have motivation to take any drastic steps. It has been suggested to me to shut it down just to get back the mind-share… but people still use it (there are customers who have been on Bugrocket for years!) and it doesn’t feel like a burden on my time/mind. Also a bit of nostalgia there for sure.</p>
<p>I’m pretty happy with how the visual style has evolved, how the homepage looks for the most part, etc. I feel like I can use it as a bit of a playground. If I feel like doing a redesign, I can just go for it and take that experience elsewhere. There’s something to be said for having a real project to poke at instead of just Todo-List demos all the time.</p>
<p>Occasionally I get the itch to do something with it, or encounter a weird bug to fix (recently I noticed a very long running bug with the you-were-assigned email that I’m shocked I and no one else noticed). Of course I also have to keep its dependencies up to date just from a security perspective.</p>
<p><strong>Takeaways:</strong> So, I think Bugrocket is around to stay for the foreseeable future, and I don’t think I’ll change it in any fundamental way. It’s definitely been one of the most valuable learning experiences I’ve had in my career — it had a huge impact on my ability to launch <a href="https://coursecraft.net">CourseCraft</a>. Even though it wasn’t a financial success (I mean, it is <em>technically profitable</em>!), it was still worth the time and effort spent. Going through all my old records to put together this post has, if anything, just made me itch to make another product… not sure if that’s a good thing or a bad thing :)</p>
<p><a href="https://bugrocket.com">
<img alt="Bugrocket Current Homepage" style="border-radius: 5px; display: block; margin: 25px 0;" src="/img/articles/bugrocket-retrospective/current-homepage.png" />
</a></p>
tag:ryanfunduk.com,2016-04-05:/articles/weekend-projects/Learning via Weekend Projects2016-04-05T00:00:00Z2016-04-05T00:00:00Z
<p>Ten years ago I found it utterly trivial to learn something new. I would pick out a random book on the subject and devour it, or just sort of bang my head against it over and over until I figured it out. Especially during college, I was an absolute sponge for learning new stuff. Looking back now, some of the things I learned seem pretty crazy to me now – an RTOS in 68030 assembly? I certainly haven’t retained much of <em>that</em>!</p>
<p>These days I’m finding it harder and harder to pick up new skills or technologies on a whim. Maybe it’s because I’m over 30 and that’s just how it goes, or maybe I’m cynical and have too much bias to be open to new things. Or maybe it’s not actually harder at all, and just seems like it. I’m not sure.</p>
<p>What I do know is that I still, for whatever reason, desperately <em>want</em> to <strong>learn new stuff</strong>. So I tend to spend a lot of my energy looking at and playing with new things.</p>
<h3 id="the-weekend-project-method">The ‘Weekend Project Method’</h3>
<p>The best way I’ve found to do this is what I call <strong>the weekend project method</strong>. There’s no big revelation or secret here, it’s just what it sounds like.</p>
<ul>
<li>Pick some new technology.</li>
<li>Decide on a simple/toy application to make using it.</li>
<li>Spend the weekend getting as far as you can.</li>
</ul>
<p>I’m sure this seems obvious! The thing is that <strong>it really works</strong>. In fact I don’t think I can recall something that I use in my day-to-day work that I <em>didn’t</em> first learn via weekend project.</p>
<h3 id="but-what-to-build">But what to build?</h3>
<p>I’ve found that the real trick isn’t so much the part where you learn the new thing, but actually the analysis paralysis where you try to figure out what to build with it.</p>
<p>Here’s some ideas that worked for me:</p>
<ul>
<li><strong>Todo List</strong> – Bummer. I had to go there. But there’s a reason it’s a popular way to demonstrate new libraries/etc. It does cover a lot of the basics of building apps. Bonus points for making it actually save the data to a server or something since that adds a whole extra layer of complexity.</li>
<li><strong>A Game</strong> – If you want to do something a bit more interactive you could try building a game of some kind. It can be something simple like a solitaire implementation, or you can go all out and make something that is multi-player or has several levels. I wanted to learn <a href="https://gaearon.github.io/react-dnd/">React-DnD</a>, so I built my favourite solitaire game: <a href="https://github.com/rfunduk/onirim">Onirim</a></li>
<li><strong>Integrations</strong> – Make a Wikipedia viewer, or something that shows the performance of your recent mailing list campaigns, or a Slack bot, or aggregate and display ‘+1 comment’ stats for GitHub repositories :)</li>
<li><strong>Clone a Popular Service</strong> – The good ‘ol Twitter clone. Or go against the grain and pick your favourite service. Simpler is probably better since you don’t need to make a production ready app or anything.</li>
<li><strong>Something You Need</strong> – Sometimes there’s a little pet annoyance you have in your job or life. Use your new tech choice to solve it as simply as possible. For example I was helping developers migrate their card info to Stripe, and I occasionally had to phone them with a password. “J as in… Giraffe?”, so I built <a href="https://ryanfunduk.com/phonetic/">Phoneticizer</a> on a Saturday afternoon.</li>
<li><strong>Challenges</strong> – Often regular ‘problem sets’ can be pretty boring to work on, but once in a while you might see someone post a challenge to build a real-ish thing online somewhere. For example check out <a href="https://github.com/staltz/flux-challenge">Flux Challenge</a>.</li>
<li><strong>An Open Source Library</strong> – Along the lines of ‘something you need’, take your new tech and make something to share. It’s ok if other projects already exist. At least to start with the idea isn’t to supplant something else, but just to use it as a learning experience. That’s how <a href="https://ryanfunduk.com/jquery-tourbus/">jQuery-TourBus</a> started, and it’s my most popular open source project now.</li>
</ul>
<p>Hopefully some of those resonate with you or at least give you some ideas. Pick something cool you’ve been wanting to learn and prepare for a weekend of learning!∗</p>
<p><small>∗ Doesn’t actually have to be all in one weekend :)</small></p>
tag:ryanfunduk.com,2016-03-24:/articles/learning-curve-driven-development/Learning Curve Driven Development2016-03-24T00:00:00Z2016-03-24T00:00:00Z
<p>With bootcamps and screencast-style training pretty much the norm for developers looking to learn new things, it seems like the whole industry is more focused on the learning curve than ever before. If you can’t change careers after a 3 month long bootcamp, learn something in less than an hour via screencast, or build+deploy your MVP to production in a weekend, then it’s way too complicated.</p>
<p>It’s a common excuse against all kinds of things from new languages, to transpilers like <a href="http://babeljs.io">Babel</a> and <a href="http://haml.info">HAML</a>, to all sorts of frameworks and libraries.</p>
<p>I think this is the wrong attitude. Even given the most complicated thing you could want to pick up, the time it takes to learn it well enough to get started is completely dwarfed by the time you spend actually using that thing.</p>
<p>When learning something you need to check the documentation now and then, you have to watch (multiple) screencasts, read books, ask questions, etc. Then, besides being able to use the thing on new and old projects, you turn around and start <em>making</em> screencasts, <em>writing</em> books, and <em>answering</em> questions.</p>
<p>If we all only did things that have zero learning curve, soon enough we would have nobody to learn from. Flashback to 12,000 years ago, a group of nomadic hunter-gatherers are complaining that “this hyped up ‘agriculture’ thing sounds like a <em>lot</em> of work.”</p>
<h3 id="the-struggle-is-a-feature">The Struggle is a Feature</h3>
<p>I’ve been struggling through learning new things for the entire 15+ years I’ve been writing software, and I’m convinced that harder things are often more valuable and more rewarding.</p>
<p><img src="/img/articles/learning-curve-driven-development/hello-computer.gif" width="300" style="float: right; margin-bottom: 20px; margin-left: 30px; margin-top: 10px;" /></p>
<p>If you’re exited at all about software and writing code, pick up something completely foreign to you and give it a real shot. You don’t necessarily have to build a business around it. You don’t have to submit it to be critiqued by anyone. Just build something with it and I guarantee you’ll find that even things with a learning curve are worth the effort.</p>
<p>There’s obviously value in making things understandable (and well documented). If everything took 4 years of university to get started with… well that’d be stifling. There’s definitely a bit of a fine line between ‘takes effort to learn’ and ‘is daunting and should be easier’.</p>
<p>Aim for things that are <strong>understandable with effort</strong>.</p>
tag:ryanfunduk.com,2016-03-17:/articles/getting-carried-away/Getting Carried Away2016-03-17T00:00:00Z2016-03-17T00:00:00Z
<p>Bootstrapping new products can be more than a little thankless. You work nights, mornings, weekends and on lunch breaks to make this awesome new thing. Then you pay out of pocket to get it online. Then you monitor it to make sure it keeps working. And let’s not forget about all the promotion you really should have been doing from the beginning.</p>
<p>More often than not, <strong>no one cares</strong>.</p>
<p>Eventually you’re demoralized at best and burnt out at worst. There’s no positive feedback loop to keep you invested and interested.</p>
<p>Subconsciously we know this, so it’s natural to over-compensate.</p>
<h3 id="faux-validation">Faux Validation</h3>
<p>You’ve probably done at least one of these:</p>
<ul>
<li>Design and print some business cards. (I like <a href="https://www.moo.com">Moo</a>.)</li>
<li>Get some stickers printed and <em>strongly suggest</em> friends and family stick
them on their cars. (<a href="https://www.stickermule.com/">StickerMule</a> is great.)</li>
<li>Create the company on LinkedIn. You can easily spend a couple hours fiddling with the profile.</li>
<li>Make a special Dropbox account for the company and add yourself as a team member. It’s best to stay organized, right?</li>
<li>Have a <a href="http://www.prweb.com/releases/2011/10/prweb8906073.htm">Press Release</a> made ‘officially’ launching your product. Only legit companies have press releases!</li>
<li>Buy an ad in a print magazine or paper. <em>So</em> many people are looking for websites there…</li>
<li>Maybe go all out and <a href="http://nathanbarry.com/shirts/">get t-shirts made</a>. And rubber ink stamps for use on the letter you send to the recipient…? Why not!</li>
</ul>
<h3 id="its-ok">It’s Ok</h3>
<p>To be honest, I think these are great ideas.</p>
<p><img alt="Bugrocket Stuff" style="padding: 5px; border: 1px solid #EEE; border-radius: 5px; display: block; margin: 25px auto;" src="/img/articles/getting-carried-away/bugrocket-stuff.jpg" /></p>
<p>It can give you some easy motivation wins to accomplish something related to the project, even if it’s a bit silly in the long term. Most of these things cost so little and take so little time that they’re worth it just as a nudge to get back to real work.</p>
<p>In short: <strong>Don’t be afraid to spend time and money on your project</strong>, even if that time and money isn’t spent as well as it could be in an ideal world.</p>