Wednesday, 31 March 2010

Scrum

The guys over at AxoSoft, creators of the rather good OnTime software have produced a video Scrum in Under 10 Minutes as a quick introduction to Scrum.

Scrum is nothing earth shattering, and it’s not going to be a silver bullet for many people, but it’s well worth a look, and if followed correctly I’ve no doubt it will help a lot of projects run more smoothly.

Of course, the video is a gentle advert for the AxoSoft OnTime application, but it’s not forced at you so is worth a watch.

As it stands the company I work for has started using OnTime, but at the moment it’s just performing a to-do list and time logging role for me, and I suspect most of the other team. We’re yet to take the bull by the horns and make effective use of the many features.

Oh well, hopefully we’ll get there. Certainly on the task I’m working on at the moment a burn down chart (or even some smaller milestones) may have provided a morale boost that we are actually making progress.

Never mind.

Tuesday, 30 March 2010

Well, it made me laugh…

A little departure from the normal seriousness of this blog, I was recently sent this link to a page on The Reinvigorated Programmer titled A brief, yet helpful, lesson on elementary resource-locking strategy.

Enjoy.

Wednesday, 17 March 2010

Game over WinMo7?

It certainly looks that way.

To be fair to Microsoft, this initial release of Windows Phone 7 offers a lot from what is essentially version 1 of the OS.

That said, (what I consider) stupid decisions like the aforementioned lock-in to the Marketplace and removal of cut and paste functionality have, as you know if you’ve seen my previous entries, made my heart drop.

I’ve also just been reading a quick article on what’s [not] in the first release of Windows Phone 7 which is staggering, little is particularly new news, but put together it’s clear this is a version 1 OS and some of the core benefits to myself and many other users of earlier Windows Mobile incarnations are being discarded.

As a result I really don’t believe WinPh7 will offer what I’m after as a user, at least not in its initial release. This is terrible news because as a developer I was getting genuinely excited.

Obviously I don’t know for sure what route I’ll take when it’s time to upgrade in November, but at the moment Android seems to be ticking way more boxes than as a user.

I may download the development kits and write a few apps, but my enthusiasm will be massively reduced if they never get any further than the emulator, although to be fair I’m not even sure they’d make it to the phone even if I have one, since I’m still unclear what the deployment process involves.

I feel a little cheated as I was really expecting great things from this initial release. Sadly it looks like that’s not likely to happen.

Noooooo!

WTF?

Is the development/design team working on Windows Mobile 7 on drugs?

Apparently they’re deliberately not implementing Cut an Paste functionality!

I’m speechless.

I tried installing the CTP of Visual Studio 2010 for Windows Phone last night before reading the ReadMe.txt telling me it would neither work in a virtual machine (as I was trying to install) or alongside other versions of Visual Studio (which stops me from installing on the main desktop).

Now I’m not bothered.

I use cut and paste all the time on my Windows 6.5 mobile.

As one person has already said, it looks like Android is the best upgrade path for Windows Mobile 6.5 users.

Along with the marketplace announcement, at the moment I tend to agree.

Tuesday, 16 March 2010

So that’s the shine taken off Windows mobile 7

Well, it seems part of my prayers have been answered, the tools to develop applications for Windows Phone 7 will be offered for free! That’s absolutely great news.

However…

It looks like applications will now have to be sold via the Windows Mobile Marketplace, so no downloading and installing apps from anywhere else then?

And they will also be vetted in the same way as Apple currently does I assume. If MS decide they don’t like your app it could presumably be removed (or declined in the first place).

Sure, I understand this means that apps will need to meet a certain quality and that some of the frankly abysmal applications you can find for Windows Mobile and Android will not be accepted, thus keeping the quality higher, but this could be achieved by the marketplace without this unnecessary restriction.

This really is a shame, I have been one of those people deriding the fact that to get an application on an iPhone you need to go through the iTunes app store, now MS are doing the same.

Shame.

So now it’s all about the tools. If I find I can get on with developing apps with the tools available I may still get a Windows 7 phone, if not then I guess it’s over to Android or Symbian.

And what about the fact I develop apps for personal use… will they work?

Tuesday, 9 March 2010

More Windows Phone 7 Speculation

I’ve just been reading through the CNet Windows 7 FAQ and while it doesn’t add too much more information to the mix (as is to be expected until MIX10) there are a couple of little nuggets in there.

Firstly, it seems to confirm that the old Windows Mobile apps won’t run on Windows Phone 7, something we more or less already knew.

Secondly it says Windows Mobile 6.x will continue to be solved for years to come, or as Microsoft say "it's not as though one line ends as soon as the other begins."

I love this comment from Charlie Kindle in his blog:

We took the feedback we gathered from developers, looked at the full potential of Windows Phone 7 Series and landed on 3 basic goals for the platform we’re delivering;

  1. Enable end users to be able to personalize their phone experience through a large library of innovative, compelling, games and applications.
  2. Enable developers to profit.
  3. Advance the “3 screen plus cloud” vision

The first one is pretty obvious: A key value proposition for Windows Phone is personal. We believe consumers will use games and applications to make their phone experience their own.

(Did you notice we always talk about applications and games? A little factoid I heard today: According eMarketer, the number of people playing games on the phone has more than doubled in recent years;340M people will play games on the phone in 2010 up from 155M in 2007).

But what do we mean by “profit” in the second goal? When we talk with developers we hear them talk about three different “currencies”: making money, learning, and recognition. Some developers are in it for the money. They are either literally being paid to write code or they are writing code with the hope it will generate coin.

Other developers tell us they are interested in advancing their knowledge – love of the game. They love learning about computers, programming, games, social connections, etc… So they build software to learn. They profit by being smarter.

Other developers are clearly motivated by pride. Maybe there’s a bit of money and learning involved, but to these developers being noticed or recognized as doing wickedly epic sh*t is top of the list for how they measure profit.

Nice.

From reading a variety of other blogs from the team and developers it seems almost certain that the main UI is indeed based on Silverlight, which is the brother to WPF, so I’m hoping these two technologies will merge over time after all (as opposed to being against this in an earlier post), or at least the line between the two blur significantly. That looks like it’s where we’re going.

With that in mind, I’m off to download the XNA Game Studio to have a play before something better is launched (I’m taking a wild guess here) next week.

Monday, 8 March 2010

Interesting numbers…

I was looking through a post on Reddit discussing reality of learning programming in 21 days, as illustrated by this site (and taken a little more seriously here), when I stumbled across an extremely interesting article What your computer does while you wait by Gustavo Duarte.

If you’re interested in such things this makes a very informative read.

To take a sentence out of this article, whilst talking about how fast instructions are to process on a modern CPU Gustavo makes this comment:

It’s worth keeping this in mind when you’re thinking of optimization - instructions are comically cheap to execute nowadays.

In case you miss it, later on in the comments section he makes the point that should go hand-in-hand with this one:

99% of the time you want the cleanest, simplest code you can possible write. In a few hotspots, which you discover by PROFILING the code rather than guessing, you optimize for performance if it’s really called for.

Everything I’m reading at the moment points in the same direction, basically that software is so complex and code bases so large that it needs to be written to primarily be understood, or as Martin Fowler puts it in his book Refactoring: Improving the Design of Existing Code:

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

Amen to that.

One of the points Martin makes is that be refactoring you often don’t make the the code any slower as, by the process of making the code more understandable, you can optimize the code more easily, possibly even as a side product of the refactoring. Even if this is not the case, after the refactor the code is easier to optimize in those areas where this is really needed.

So that’s going to be my mantra outside of the workplace from now on (and inside the workplace where I can, but I’ll describe that as much as I’m allowed to in a later article). In fact, that’s been one of my strong points to a greater or lesser degree since I started out, I try to follow the KISS principle:

Keep It Simple, Stupid!

I’m the stupid part. If you let me keep it simple I’ll write you something that’s useful (but often in the real world we’re thrown into overly complex existing systems that we have to code to without any chance of being able to influence the overall design in a positive direction). Or, to paraphrase Martin Fowler again (since I can’t locate the quote): I’m not a great programmer, I’m a good programmer with great processes.

Just give me the framework that allows this, or allow me to create one, and we’ll all be happy.