Friday, March 07, 2008

Do you really want to know about the bugs that inhabits your bed?

I cannot say I'm crazy about documentaries that teaches me about the all the bugs that inhabit my living space. Sometime ignorance is bliss, right? But I hope our customers don't get too itchy about the fact that we're now publishing information about known bugs in our application. We recently reengineered most of our IT management processes and as a part of that the bug management process has now become much more transparent that earlier. For those of you interested, here's the answer to a few of the questions you might have:



Q: Do you publish all bugs?

No. There is a degree of editorial control to the bugs list. Only bugs actually verified by a developer/tester are published. Minor bugs are left out not to clutter the list. Security related bugs will also be left out of this list.


Q: Why can you not give us the actual date for when the bug is fixed?

Let's just say that software development and release management is a complicated process! The scope of a release is changed continuously during a development cycle and last minute testing can also affect the outcome of a release. Since new bugs reported potentially could reshuffle the priority of other bugs we feel that giving out an exact date is, well, dishonest. However, the status of a bug is a rough indicator of when you might expect a bug to be fixed.



Q: Can you explain what the different statues really means?

Approved: The bug has been confirmed by a developer/product manager and is put into the backlog of development work planned.

In progress: The bug has been assigned to a developer and most likely a fix would be released in one of the upcoming planned releases.

Ready for testing: The bug has been fixed by a developer but is awaiting QA/testing. Potentially this fix could be included in the next release but it might also be stopped in the QA process.

Fixed and verified: The bug is fixed in the version indicated by the field "Fixed in version". (Please note that even though the bug is fixed this particular version of it's learning might not have been released yet. The current version of it's learning is stated clearly on the login page, bottom left corner.)

Q: Why the heck do you make bugs in your application?!
Bugs are unfortunately a natural part of development and product lifecycle management. Denying it would just make things worse. Our job is to both minimize the number of bugs making it into our product and managing the ones that got through. Making our bug management process more transparent will hopefully make us better at that job.

Sunday, January 13, 2008

Enterprise software as a service growth

According to the economist, revenues in the enterprise SaaS industry will reach $6bn in 2008, accounting for 17,5 % of all enterprise application sofware. The article is also an interesting read on NetSuite recent flotation and the business of enterprise Software as a Service in general. Read it here.

Tuesday, January 08, 2008

The prime minister, the astronaut and me...

Don't ask how, but today I was lucky enough to participate at the annual conference of NHO (Confederation of Norwegian Enterprise) in Oslo. Even though I knew that this must be the most prestigious conference you could possibly find here in Norway, I was slightly struck by all the familiar faces of politicians, journalists and billionaires that got crammed together in a fairly intimate conference hall. (The conference hall itself was a bit out of the ordinary with a 360 degree canvas showing images, movies and presentations being played around a rotating stage. )

The theme of this year’s conference was education and enterprises role in education. After an inspiring introduction by the American astronaut Robert Curbeam, OECD's vice-secretary general Aart de Geus presented the cold facts from the last Pisa survey that sadly shows that Norway is well below the OECD average in terms of skills in reading, math and science (A fact that everyone that took stage later, including a wide range of politicians, agreed was a serious issue). His advice to the Norwegian educational system can be summed up as follows:

  • Ambitions (on behalf of the pupils and students)

  • Autonomy (to the schools and educational institutions)

  • Accountability (school leaders must be responsible for the end results)

Other speakers ranged from three different Norwegian ministers, a former labor minister to the Clinton Administration, a Danish minister and a range of researchers, CEO's and other politicians. The whole conference was wrapped up by the prime minister himself, that I think surprised everybody (certainly me) by giving the perhaps the most charismatic, personal and humorous speech of them all.

Some of the presentations and videos from the event have already been published here:

http://konferanse2008.nhosp.no/category/Multimedia/category.php?categoryID=27

Now I'm off to sneak into the equally prestigious annual dinner party :-)

 

Wednesday, January 02, 2008

Radio silence has ended; happy new year!

Seasons greetings! I apologize for the prolonged silence to the few of you that follows my blog on a regular basis. Desember was busy as always, but now that next years budget is nearly finished I will try and post on a more regular basis.

I have to confess I didn't spend much time in front of my computer this holiday. But here's a few of the things I did this christmas that could be worth sharing:

1. Converted to using Google Reader as my main rss reader. About time? I used to think it was a mediocre but the massive improvements made to this piece of software over the last year has made it into the best online applications I've ever used. I will try to post items worth sharing here: http://www.google.com/reader/shared/02565532683670666986


2. Read a brilianty simple and short article about privacy which I hope all of you will find time to read trough: An Inalienable Right to Privacy.


3. I learned to use keyboard shortcuts in gmail.

4. Upgraded my work-computer to Windows Vista. I must say that I was pleasantly surprised (even the "horror" of the new security feature "User Account Control" hasn't bothered me much), allthough expectations where low considering all the flack it has received over the last year.

Monday, October 08, 2007

Consumer SaaS vs. enterprise SaaS

First; for those of you not familiar with "SaaS" - Software as a Service, here's my simple definition of what it is: Software as a Service is the business of delivering software via a browser over the internet, typically enabling a range of customers to use the same single instance of the application. (I have written a few blogposts related to this topic previously without really explaining what it is, sorry:-)).

There are plenty of famous services on the internet that can be labeled SaaS. Over the last few years we have all become users of SaaS solutions like Google Apps, hotmail, youtube, facebook and del.icio.us. The service my employer offer, itslearning.com is also a typical SaaS solution, but there is a slight difference between the earlier mentioned services and our own. Our customers are educational institutions, or enterprises, while the more profiled solutions are consumer-based. But even if Facebook get's all the coverage, a significant industry is now developing for enterprise-based SaaS software (the most famous being salesforce.com).
From time to time opinionated people in the educational sector seems to think that services provided by the likes of company will be wiped of the face of the earth by the more profiled consumer-based services. Where it so easy. There are a number significant differences between Consumer- and Enterprise based SaaS that will require a good solution. But if you want to try and prove me wrong and put us out of business with a learning platform based on consumer-based technology, here's a list of differences between customer and enterprise SaaS that you might want to think about:
CharacteristicsConsumer appsEnterprise apps
Revenue modelAd-based.Subscription fees.
Salesword-by-moth, trends.Tenders, DM's, knocking on dors.
Data privacyVendor "owns" your personal data.Enterprise keeps full ownership of data.
SLANo (remember skype going down for two days?)24/7 Availability guarantees, response time guarantees, financial, guarantees. The list goes on.
SupportNot directly. Community driven discussion groups, blogs, etc.professional help desk.
TrainingHey, if you can't use it - why sign up for it?professional training services.
Integration and customizationGeneric API's. Consulting services, 3rd party integrators.
Development road-maps.Innovation. What will be the next trend that signs up more users?A mix between innovation, strategic development for expanding market shares and pleasing existing accounts.

Technorati Tags:

Sunday, October 07, 2007

What did you do last summer?

In our line of business, the summer holidays are basically the only time of year when we can catch our breath and do heavy duty maintenance and prepare our data center for a new season of crazy growth. This summer we where painfully close to filling up our existing storage units so for months ahead we planned expanding our storage solution with a new piece of equipment from Dell/EMC, known as a CX3-20 SAN array. Being by far the biggest investment ever done by our company hardware wise, i thought I might share a few interesting (?) facts about this piece of machinery that you don't need a computer degree to understand...

  • It can be set up to be connected via fiber channel to 128 servers.
  • In theory it has 1000 times more bandwith than your average USB disk drive.
  • It supports up to 120 disk drives (either "cheap" iSCSI disks or very expensive Fibre channel discs - depending on your I/O requrements).
  • It's maximum raw data capasity is about 83 TB.
  • If the SAN detects that a piece of hardware is about to fail an e-mail is immediately sent to Dell Gold support in Dublin. A harddisk can actually be changed remotely since there are several spare harddrives in the storage array.
  • You could change one of it's power supplies without turning it off or in any way affecting it's operation.
  • You could easily configure one of these to cost you as much as this one or approximately 2500 of these. :-)

Monday, October 01, 2007

it's learning is great!

it's learning is great. It's a terrific product, it's a good service and it's a great place to work. Maybe I'm not a very objective or credible as a source for this information having been one of the managers of this company for the past 4,5 years. Being one of the people with the initial idea to the product back when I was a student might also have clouded my vision. Perhaps there are even days when I don't feel this is true myself. (It doesn't happen very often, but we sometimes have days like this or this)

But that's not really my point. What I am trying to achieve is to counter-balance something that has been bugging me for quite some time. If you search for us using Google, one of the first results points to a web-site that compares our product/company with manure.

If you're a potential customer or just looking for some info on us, please read this:

  • The mentioned web-page is, in my opinion, about as full of it as it claims it's learning to be. Please get a demo of our product before you make up your own mind.
  • Last week we had more than 250.000 unique users logged in to it's learning one or more times - a proof that a lot of people find the software quite useful.
  • Not only do we have the dominant market share in primary and secondary education here in Norway, we are also the supplier of virtual learning environments to some of the biggest universities in Scandinavia (To mention a few: University of Copenhagen, University og Malmö and the Norwegian University of Science and Technology).
  • We're a company still largely owned by the former students that originally founded the company back in 1999 and our financial situation is very robust.
  • We're qualified for the BECTA Learning Platform Services Agreement in the UK after a very througout tender process that looked at a lot of different sides of our product and services.
If you're an existing customer, a partner, a friend, a blogger, a competitor or just an opinionated fellow, please do the following:
  • Comment this post. Let us know a little bit about who you are and what you think about or product, services or company. (I do moderate my comments because of random spam problems - but I will of course let critical remarks pass!)
  • If you find this post interesting and feel slightly sympatetic please link to it or pass it on to others. This way mabye we can actually get this article up on Google's ranking to counter-balance some of the bad karma from the prevously mentioned post.
  • If you do not think we deserve to be known to the world as escrements, please do not link to any web-site describing us in this manner, it will only increase its google ranking.

Thank you, yours sincerely,

John Arthur

Thursday, September 27, 2007

So how many users do you have?

The potential customer asks: "So, how many users do you have on your system?"


System engineer 1: - "Well, perhaps 25.000 concurrent users during peek hours."

System engineer 2: - "We have 80.000 active sessions during peek hours".

System manager: -"Every week, more than 350.000 unique users logs into the system".

Product Manager: - "We have more than 1.000.000 active users!"'

Sales manager 1: - "We have 4.000.000 users!"

Sales Manager 2: - "We have 10.000.000 logins a month!"

Managing director: - "We have 100.000.000 page requests a week!"


So who's lying? Answer: They might all be telling the truth. The problem is not the answer but the question. To illustrate my point; imagine you wanted to choose the vendor with most users. You asked five different vendors and they all responded differently as above. The vendor most likely to give out the highest number would probably win - even though this might have been the vendor with the least users.


(disclaimer - these numbers are fictional and not related to it's learning. But i will give you a number that is not: We had 262.240 unique users logging on to itslearning.com one or more times for the past seven days.)

Monday, September 24, 2007

IMS Enterprise Services

We have recently made a few changes and enhancements to how it's learning can be integrated with external applications and services. Allthough we have more than sixty userdata integrations (think: users, groups, courses, etc) behind us, all of these integrations are batch-based. This means that all the chances happening to your user-data is only imported into it's learning once a day. With the support of IMS Enterprise Services v.1.0 (SOAP based) it is now possible to build integrations that allows for on-the-fly updates of userdata within it's learning.


Q: Does this then mean that we can now offer all of our customers IMS ES?
A: Nah. It takes two to tango. An integration between learning and and external student administrative system involves two parties - the "sender" of userdata (the administrative system) and the receiver (us). Not that many administrative systems yet support IMS ES. There are some honorable exeptions. Capita's SIMS in the UK supports it (if you allow for a slightly loose interpretation) and several customers are currently implementing support for their own homebrewn systems.
Q: Is it possible to customise the IMS ES solution?
A: Even though IMS ES is a pretty clear and precise specification, it allows for extentions. The way we have implemented the IMS ES specification we have taken into account the need of customisations. This means that we can allow for extentions and different interpretations of the IMS ES spesification.

Q: Is it free?
No. In addition to mabye needing the help of one of our consultants you will need a maintenance and support agreement. But investments in integrations usually pays off pretty quickly - the manual labor required to maintain it manually is usually not free...
Q: What technology is is build upon?
The interface (and also the specification) is purely SOAP based, so support with a wide range of platforms and technologies should be guaranteed. To move messages around, transform data and add customisation capabilities we use MS Biztalk 2006.

Wednesday, September 12, 2007

Downtime, part 2

My last post touched on some of the reasons why we scheduled planned downtime when updating it's learning to version 3.2 Thursday evening/night. Unfortunately, the following day we got some unplanned downtime and had to temporarily roll most of our customers back to version 3.1 while troubleshooting and sorting out the bug. Fortunately we quickly found a resolution to the problem, but it is a textbook example of how easy it is to mess up your performance in a large data center.

To explain what happened, I have to start off with the basics of how our hosting environment works (simplified version!):



1. Content switches. This is the entry point of any request to our web-server. The primary function of the content switches is to route you to a pool of web servers based on what it's learning "site" you belong to (our customers are divided into 4-5 different pools of web-servers at the moment - maybe a subject worth blogging about at a later time). The content switch also terminates https traffic; load balances web-servers and caches static files.



2. Web server(s). Every pool of servers consists of 5-8 web-server. This is where the actual application is installed. Based on the load on the servers in the pool a request is assigned to a server. (so for every page you click inside it's learning you could access a different server).



3. Session state server. HTTP is a stateless protocol. Every request from your browser to the server is initiated and terminated. To keep track of who you are a session ID is created. This session ID is stored in a cookie on your computer and on the server. Since we have a lot of web servers and you can be assigned a random server between requests, all sessions are stored on the session state server. When you access http://www.itslearning.com/ you are assigned a session on the session server. This session will continue to live on our session state server until 20 minutes after you close your browser. So with the amount of traffic we receive new sessions are created and expires every second.


4. Database server. This is where the customer databases are stored. Depending of the size of the customer there could be one, two or a heap of customers residing on one database server. It's learning is a very database dependent application, and the amount of traffic makes it important to have finely tuned database servers.


5. File server. The file server(s) act as a client for the SAN where all the files uploaded into it's learning are stored. These are directly connected with dual fiber cards to a very, very expensive hard drive.


So what happened? The problem came with a new security measurement introduced to it's learning. you can now only access files and similar from a separate domain (files.itslearning.com). What we didn't realize what that the implementation created a new session on our session state server for every file that was opened by a user in it's learning. This simply was to much for the session state server, and it froze. We ended up with one of these guys on our servers: