Read my book

I wrote books about Webpack and React. Check them out!

Thursday, October 24, 2013

Linkdump 17 - Business, Startups, Personal Development...

There is no option. I must dump links on you guys. Maybe I should do that more often. See also the previous dump.

Business



Startups


Personal Development


Software Development


Web Development


Computer Graphics & Gaming


Art

Monday, October 21, 2013

The Rise of the MOOCs - Education Revolution in Motion

Access to high quality education material has never been easier and cheaper than now. MOOCs, or Massive Open Online Courses, are one concrete manifestation of this. You could say it really started with MIT OpenCourseWare. Inspired by the success of Stanford's AI MOOC Sebastian Thrun established Udacity. Of course Udacity isn't the only MOOC provider as examples such as Coursera, edX, Udemy and Khan Academy show.

The MOOCs differ from traditional academic training somewhat. They come with their own benefits and challenges. By definition they are massive. You can easily have another hundred thousand peers studying with you. Of course dropout rate can be consequently somewhat high. It can be as high as 85-95%. But is that an issue really?

This highlights one of the key differences between traditional education and MOOCs. In former you complete courses so you might earn a degree. People completing MOOCs are not usually in it for a degree. Rather they learn because they want to. You have to be very motivated to complete these courses.

How Do MOOCs Work?

Due to obvious constraints the course format is somewhat different than in the real world. In Udacity's case the courses have been split into modules that contain smaller video units. Every once in a while the lecturer might quiz you and then it is up to you to provide an answer. This can be in form of a multiple selection question or a programming assignment. Coursera appears to use a bit different format. They provide both video and text material. In addition there are separate assignments to complete during the course.

At best the courses can be just great and provide you a very good idea of what the topic is about. So far one of my favorites has been Steve Blank's course on How to Build a Startup. He goes through various aspects of Osterwalder's Business Model Canvas in detail. I would not say just passing the course is enough but it is definitely a very good starting point.

Udacity's course on Game Development was bit of a disappointment for me personally. The quality of the exercises varied greatly. Sometimes they were tough to complete even with some previous experience under your belt. You can only imagine how difficult it can be for a complete beginner who has to learn it all. Fortunately there are support systems in place in a format resembling Stack Overflow that allow you to receive some assistance from your peers.

Although the first edition of the course could have been better there is a chance they will improve the course based on feedback. This is something that has happened in the case of their course on Interactive 3D Graphics, a course I have yet to fully complete.

Pros and Cons of MOOCs

I would say MOOCs are a very nice step towards the right direction. They democratize education somewhat. You may benefit from world class education without having to enter a prestigious school with heavy cost. It all comes down to your willingness to learn.

You will miss some of the benefits of a traditional organization. One of the core benefits of the highest ranking organizations is that they pool a lot of talent together. Many of those people will be the leaders of tomorrow. It is hard to put a monetary value on these sort of connections. It is hard, if not impossible, to reach the same with communities surrounding MOOCs.

You will also miss the benefit of having an actual degree. Although at least here in Finland the value of those has decreased as more and more people have them. It is not a real differentiator on the job market. It is more about what you can actually do and have done rather than what kind of papers you have in your pocket. That definitely diminishes this downside although I believe this could depend a lot on the region.

It is possible to get some certifications from MOOC providers. This is one of the ways they make money. Even more interesting is that they can work as a proxy between skilled workforce and employers. If you get really lucky, you could end up with a job!

The Future of MOOCs

There are a lot of courses out there. And more keep on appearing. This also poses a problem. How can you develop courses that serve their audience well? As I mentioned earlier a course might have a truly massive amount of people participating. How do you create a course that offers something to each of them?

I believe we will see some sort of mass customization in some point. Rather than building a course and hoping it works for the most we will see more modular courses that can be tailored based on individual needs. In case you need more help with certain topics your "course" will simply have more material on those.

I think the concept of course will morph somewhat too. It feels very artificial and something stemming from the requirements of academia. You have to fit everything in semesters after all. There is no such need in case of MOOCs. Instead it would be possible to build a learning path for each student based on their needs. A path would be something leading the student towards her learning goals.

Of course the problem with mass customization is that it can be somewhat difficult to do it right. The advantage of a course format is that you can build a course upon a narrative. A path is something more complex perhaps.

I also expect to see new business models to appear around MOOCs. Perhaps we will see some elements of the "old world", such as tutoring in digital format. I know there are online tutoring services already. I expect to see tighter integration between MOOCs and these kind of services, though.

Conclusion

All in all MOOCs seem like a very welcome change to me. They usher a new era in education. Never before has it been easier to have access to an incredible amount of material literally for free. I don't expect the old institutions to go away. Rather I believe they will adapt to the situation. This is already apparent by the way some prestigious universities share their material. It is also in their benefit as it allows them to push the quality of their education further and provides transparency.

Given degrees don't have the value they used to have, MOOCs provide an excellent way to show that you are interested and more importantly actually to learn more about topics you enjoy. They also provide you a possible edge on the job market and allow to demonstrate your learning ability. As a side benefit you might get some cool projects done to showcase your prowess in a very concrete way.

If you have not given MOOCs a go yet, pick a course you find interesting and give it a go. It will require some time commitment on your behalf but it just could be worth it in the end.

Tuesday, October 15, 2013

Sell Value, Not Features

If you haven't been following #NoEstimates discussion, go ahead and read Pawel Brodzinski's post on it. You should also check out Neil Killick's writings on the topic. We had a nice discussion about the topic at Jyväskylä Lean Coffee. The core of the issue is simple - does estimation provide any value? If not, why do it at all?

When to Estimate?

If you are starting a project from scratch and have no previous experience about the domain to base your estimates upon, I believe time spent estimating is more or less waste. Instead you might be better off by getting your hands dirty and prototyping. The more you understand, the better you can estimate.

Generally estimation is used when trying to figure out the size and cost of a project. Unfortunately due to many possible biases, and the fact you might still be missing a lot from your estimate, the cost may not reflect reality. In the worst case you are stuck with a death march that has a fixed cost and have to finish the project no matter what. That is something you definitely want to avoid.

There are a couple of contractual ways. You can for instance state that in case the scope of the project changes too much, you will renegotiate. But even still it feels like there must be a better way. How do you know the features included in the offer are relevant in the first place?

Value, Not Features

What if it was possible to build contracts based on value, not features, delivered? It is true value can be harder to quantify. But even with feature lists the whole purpose is to produce value. The features just enable that. Wouldn't it hence make sense to move focus to value itself then?

In practice this would require a different way to construct a contract. Rather than specifying beforehand that you will deliver this and that feature, you would state that you would focus on providing this and that value. For instance in case of a web development project you could state this in terms of actual usage and user activation. It is possible to measure these things after all.

Mutual Success, Strong Relationships

This focus on metrics gives the project success a concrete definition. And best of all the definition is something that benefits the customer and helps to build trust between the parties rather than alienate them. Of course selling based on value is more difficult.

You will actually have to understand how the business of your client operates and what he values. But it also means that once you get to this stage, the bond between the parties will be much stronger as a result as it's not only about the money anymore. Money is just a side benefit from value created.

Conclusion

I believe estimation still has its time and place. Putting too much emphasis on it in the sales phase may be a big mistake. There are ways to build more meaningful relationships with your clients than relying on feature lists. A happy client is a paying client.

Sunday, October 6, 2013

How I ditched Spotify Premium in favor of Google Play Music?

I've been a subscriber of Spotify Premium for quite a while now. Unfortunately during the last few months there have been some technical glitches. One time I had to downgrade my client as a new version hogged all the memory. This was fixed of course but it definitely didn't leave a good impression.

Google Play Music became available for Finland just last week. The VIP service seems comparable to Spotify Premium. And it costs less (7.99 vs 9.99 euros) per month. Spotify offers Unlimited package for 4.99 euros per month but that doesn't come with the highest quality or mobile support.

This was perfect excuse for me to give Google Play Music a go. I have not encountered any glitches yet. In some cases music selection seems superior to Spotify even though it is missing some of my favorite records likely due to contractual reasons. It uses a web based player. This comes with a gotcha, though. You won't be able to use playback controls by default.

Fortunately it is fairly easy to work around this. In order to avoid having the web player in one of my tabs, I use a specific Panel View plugin. It can be activated easily using an icon. As I am on OS X, it is possible to use Automator to trigger certain AppleScript and bind that to some keyboard shortcut. Unfortunately it is not possible to bind the media keys directly. Instead you have to do something clever.

Here's a basic recipe on how to get it work:
  1. Install Charles Wilkinson's scripts as instructed on his blog post
  2. Install KeyRemap4MacBook - Don't worry, it works on other OS X systems as well, not just MacBook
  3. Bind the new services provided by Charles' script to F7, F8 and F9 (fn-media key)
  4. Activate "Music Controls to F7,F8,F9" at KeyRemap4MacBook
If everything went fine, you should have a nice setup now. You might want to study the scripts before installing them. It's always nice to know what you are running.

This gives me experience comparable to Spotify for a cheaper price. So far I have not encountered any problems. Getting the hotkeys to work just makes it better. There are likely ways to do something similar on other systems as well.