Monday 26 December 2011

Process management for software development companies

Our bugtracker system has grown far beyond bugtracking, and that is the time where you need to realize, that bugtracking is not much different from managing a construction site, a catering company or many other kinds of businesses. It's all about automating the process, and this requires a generic process-automation tool, and not a bugtracker. So, why do people still get and install bugtracking software? I see several reasons:

1) The bugtracker screenshots shows data that end-users can relate to. If you see a screenshot with states, buttons and text that is similar to what you need, it feels comfortable. There are fewer things to check, than if the screenshot doesn't show anything that relates to what you want the software to do.

2) Integration with your existing tools. Things are much easier when things are integrated, right?

However, sometimes we need to make a choice, between what is right to do, and what is easy to do. If you can save 100 mandays by investing 10 mandays, it becomes a no-brainer. Well, if you can convince yourself, that the most tempting screenshot does not represent the right solution. It also requires that you know the alternatives, and most software developers never heard about process management tools like Joget or Bonita.

We have a list of possible tools to choose between, but we have not decided, yet. If you know good process management and production planning tools that make Bugzilla, Jira, Mantis, Team Foundation Server and Redmine look old, leave a comment.

Saturday 23 July 2011

Google+ is a different approach

Many try to compare Facebook with Google+, and often they conclude that Facebook har more friends, so they will not switch to Google+.

However, Google+ should not be analyzed as a Facebook killer. It isn't. Facebook has a huge head start, and even though Google+ has grown extremely fast, most current users were already gmail users. For those that do not have Google accounts, Google+ is not as obvious.

It is not a good idea to compare two systems using a one-dimensional good/bad scale, there is much more to comparisons than that. Initially, Facebook really annoyed me, because each country in Europe had it's own network, and you could only be part of one network. Then, they removed that feature, and few people really noticed. Then they added groups, then they hid them well, then they added friend lists, then they added "Top news" and so on. The core of Facebook, that has persisted all the way, is a friend list and posts, and the ability to keep the profile 100% out of search engines.

Google+ has a different approach. The core seems to be the friend list and circles, but the friend list can include people that do not acknowledge the friendship. The profile contains part that cannot be hidden from the public, such as the name and photo. So, the list of friends works differently and the circles are part of the core user experience. By doing that, Google+ will be able to do other things than what Facebook can do, and generate a different user experience. It's like comparing a bird with a human - both have skills that the others have not, but some skills overlap.

There is no doubt that Google will integrate their services further. The Google+ account is used almost everywhere, from blogs to email, and circles are now supported by Picasaweb, Google Latitude, Huddle and Hangout, but will probably also come to Google Docs, and maybe we will see Google Groups reinvented as "Shared circles". So, instead of sending emails to the scout parents, you can now post on Google+, and some will receive the messages there, some will receive it by e-mail. Those that have Google+ accounts will be able to discuss the message online, immediately, without spamming people's mail boxes. And you can keep it totally separated from your Golf club while still handling messages from both in the same place.

So, what does Google+ kill? Well, currently, not much. But it will improve sharing of information, especially among people that already have Google accounts. But because the fundamental mechanisms are more advanced than on Facebook, more can be built on it. Facebook will continue to have the advantage of size for quite some time, which should technically put it in the position of being able to compete well, but because of Facebook's reputation, many may not perceive it as a serious way to share important stuff.

Will people have time for Google+? I believe that they will, because it can be a more efficient way of spending time, than looking into e-mails and various other online forums.

Monday 6 June 2011

Is WPF+Silverlight dead on Windows?

Does anybody still remember WinForms? If you think WinForms is old outdated technology, and WPF is the new and cozy, you might want to go on Youtube and look at the Windows 8 previews. Microsoft was dead serious when they embraced HTML5 and JavaScript last year, HTML5 and JavaScript seems to be the new toolkit for writing GUIs for Windows. In case that you wonder how JavaScript relates to other programming languages, have a quick look at StackOverflow's question on strangest language features. My personal favorite is the one about the JavaScript truth table.

A quick Google search informs, that:

* Microsoft is very quiet on WPF development. I guess they have to be, in order to support the new HTML5 strategy.
* Discussions on blogs about WPF+Silverlight contain a lot of "It will still run on Windows 8" - but not "This is how apps should be built today" or "WPF is still Microsoft's strategy for making Windows 8 apps"

I am not surprised. Microsoft keeps renewing itself, by abandoning old development tools. It has been this way ever since... well... forever. Who knows, maybe they will invent a new paradigm for NUMA cpus, that abandons compatibility with programming languages based on Garbage Collection. Or they will adopt Python and a new version of C++ as their new primary development languages. If you're in doubt whether these statements are jokes from my side or not, don't worry. I'm in doubt, too, and Microsoft does not really explain the choices this time. Explanations don't seem necessary any more, other things are more important, things move on, and "developers, developers, developers" is history.

Interestingly, Delphi 1 source code made in 1996 still compiles with Delphi XE today, with the same GUI forms, and it still outperforms .net and Java on speed, while having a similar complexity level and developer productivity. Now, this is impressive technology.

Thursday 31 March 2011

OOP Spaghetti code explained

The term "spaghetti code" is usually attributed to pre-OOP code, but there is a lot of OOP code out there that is definitely entangled and a mess. I have seen quite some of it in my carreer, and this kind of spaghetti is characterized by its dependencies.

An class is nothing else than a data structure with associated code, mainly written in a way that puts both into the same source code file. However, if a method for class A depends on a class B, it generates a dependency from class A to class B, no matter if this method is used or not. If class A is about business logic (e.g. "Customer"), and class B is an API thing (e.g. "File"), then the problem isn't that big. A smart compiler can figure out that the method is not used, that there is no active reference to "File", and then maybe not include the File object in the final app. However, if both class A and class B are of the same level in a hierarchy, for instance, if A is "Customer" and B is "Product", then it is usually the beginning of a messy friendship. It doesn't take a lot of these to create a hairball. It gets really bad, if a lower-level class depends to an upper-level class - for instance, if a MySortedListImplementation depends on AppSettings, which depends on Customer.

Wednesday 30 March 2011

Why startups don't use .net

There have been several articles over the last couple of weeks about the usefulness of .net for startups. I will mention three:

* Did the Microsoft stack kill MySpace?
* Why we don't hire .net programmers
* Why Microsoft could kill your startup career

Even though our company is now several years old, our HQ is still located in an office facility that is mainly for startups. Well over the time we have had many companies, including Microsoft, Mozilla, IHTSDO and a few others, but most of the companies are startups. I recognize the same thing: I have not heard the word .net been used by any of the startups, yet. Would I hire a .net developer? I see no problem with .net, but also no significant value of having it on the resume. There are so many other parameters that are important.

I think the last article describes the problem best: Do large companies use their software engineers well enough? I think most have a problem here. A good software engineer is a serial decision maker, who writes down decisions about how things should be done in an automated way. Seen from the management POV, this is not a deterministic process, but a stochastic process, simply because the human mind is shaped by so many things, that influences the outcome. Many attempts have been made to improve the value generated by software developers, including agile software development processes, better ways to write specifications etc., but often these methods are confined within the software development department. If you want to get problems solved, for real, a larger part of the organization needs to be involved, thinking out-of-the-R&D-box must be allowed, and innovation must be rewarded.

Is there a correlation between having spent many years on .net, and not being a good choice for startup companies? It seems so. But it is not about the technology.

Friday 4 March 2011

Apple leaves the PC era

In the recent iPad 2 announcement by Apple, Steve Jobs revealed, that Apple now earns most money on post-PC products like iPad, iPod, iPhone, Apple TV etc. This tendency does not need to continue for a long time, before the Mac computers are reduced to merely strategic products for the company.

Saturday 12 February 2011

Why Microsoft and Nokia have a chance

Many iPhone and Android fans don't believe that Nokia and Microsoft have much chance to succeed. While everybody agrees that they wouldn't have a chance without good partners, few seem to agree that they can do much together. The most frequent explanation is that their level of innovation is too low, and their R&D doesn't really work.

Most people, however, don't care about the phone producer's level of innovation. Even Apple consumers don't - they just want something that works. Nokia has been quite good at this, and I still think that S40 is a great OS for a phone if you don't want it to do much else than call someone and write an sms on a device that has a great battery life.

Nokia S60 was a usability disaster, but as long as sales were strong, Nokia believed that they were doing the right thing. Now they know that they didn't. The main problems are navigating the menus and application availability. WP7 seems to solve the primary usability problem, quickly.

So, who are Nokia's customers now and in the future? They already most of the techies to Android and iPhone, and the remaining customers often don't even know whether their phone is running S40 or S60. The OS choice doesn't matter to them. What they see others do, and want, is online address book sync, and access to the most important apps, like Facebook and Angry Birds, and maybe a calendar sync.

In USA, the biggest providers of mail and online address book services, are Hotmail and Yahoo. In many other countries, Gmail also has a small part of the market, especially amongst those that don't use Android or iPhone. The big question is, who will deliver the best contact book sync for Hotmail and Yahoo mail? Microsoft and Nokia are in a very good position for that. Facebook and Angry Birds are also available to WP7 customers.

So, if a customer uses Hotmail, and really doesn't care about weird app markets, which phone is best? An Android phone that doesn't really work well with his or her online mail and contact list, or a Nokia WP7 phone that just works?

I think there is a huge market for a Nokia 5310 like device, with the same battery characteristics and form factor, that can do facebook, has threaded SMS and sync the address book with Hotmail. WP7 doesn't need to do all the neat stuff that Android can do, in order to become popular.

Don't get me wrong, I love my Android phone. But a Hotmail phone makes much more sense than a Facebook phone.