Sunday, 23 March 2008

An open letter to VW: Usability

I just wonder about colours that Volkswagen uses to show information on the front panel like temperature, odometer information, distance on the remaining petrol etc.: VW is using bright red colour to indicate that. Indicators locate in the center and covers quite a sufficient area in an advanced (actually standard) variation.

Why I wonder that? Because I used to use the following colour scheme:
- If an information will be displayed, then it is normally shown using green (well, may be blue) colour
- If a warning is shown, then it is shown in yellow
- If something critical (may be live-critical) or important, then it is shown in red.
I think you can easily recognize this colour scheme: identical to the traffic light one.

So, VW is ignoring standards exist in traffic and I just wonder what is the reason? Personally, I quite liked this car manufacture and was considering to buy some their cars, but the indicators colour scheme stopped me from doing that. Having to drive quite long distances sometimes and doing it a lot during late evening or night I find this scheme to be dangerous. There is one thing I afraid most: I could become used the red colour and will not adequately react on a decelerating / stopping car in front of me (as you know this is also "indicated" using red colour of rear lights). Moreover decelerating sometimes is just indicated just by more "red" and bright colour... exactly the same as colour of VW car indicators.

PS: I also do wonder why it is possible to customize a lot of things in the car, but cannot to change so simple and cheap thing as a color of indicators?!

Tuesday, 11 March 2008

Is quicker always better

I will start this post from a note: we are not talking here about producing cheap goods with low quality when the cheaper or faster production always means worse. Here we consider our nowadays world when we try to release a software to the market as soon as possible using agile and other methods that will not require compromising the product quality.

First of all, rushing sometimes means that you are constantly changing the release date. The traditional software development process will go through certain well-defined stages and normally you do see the product in more details on later stages, so you could discover some logical/design mistakes that will require certain redesigns and so will mean some more days for development. People hate constant changes of dates. The nature of mankind demands stability around to apply experience and make the future more predictable. Therefore neither customers nor in-house people (consultant, marketing, testers etc) will like such uncertainty and will not probably be happy if you offer your product one week early in the end of ends.

Thereafter, the early cut of project mandays could mean that you don’t have those anymore for future improvements especially if new release dates are promised to the management. Although the statement is quite elementary “you cut + you don’t have those days any more” it is not simple to understand for many people. They will argue that it is what actually we want to do cutting days since we think that the required functionality development will not require those. The real pattern is the following:
At some stage some kind problem will be discovered. My experience shows that it will occur with 200% probability - i.e. there will be at least 2 such problems in each project. A problem can be, for example, an inconsistency in the project design, a technical problem, a performance problem and so forth.
A typical reaction will be: OK, we don’t have any more time to solve the problem, so let’s adopt a workaround which we developed in a time-period we had. Notice that usually everybody is fine to do such decisions: there is a belief that it can be solved in the next release. In reality it rarely happens. Usually you will find that customers are not complaining and designers will say that there are much more important features to do. Unfortunately it will lead to a product, which is hard to develop (as there are a lot of temporally solutions) and sell (customers doesn’t complain – they just switch to something else or doesn’t select it considering which product to buy). So don't rely on a belief that you can improve software in the future, do it now and think twice cutting resources.

And of course you have no time to accommodate any better ideas or design you can come with somewhere in the final stage.

Sometimes the cut of dates is driven by testers who report that they can test a certain area by a certain date. But are they sure that developers will be able to solve all found problems by that date? They are not interested! So, the decrease of the production cycle should be agreed with all team members. Sometimes discovered problems are quite complex. In addition consider performance requirement that could arise during the testing or acceptance face.

Let’s finally talk about uncertainties that exist in any project. It is always possible that even during such relatively short period as is offered by agile and other iterative development methodologies, a re-prioritisation could happen including into the project more/other features. Have you participated in a project, where this never happened? May be if you are the in-house developer, but unlikely otherwise.

Concluding all previously said I would like not recommend rushing in cutting project mandays since faster is not always better.

Monday, 10 March 2008

MeWare

Eric Sink claims in his article that there are three categories of software (actually I would say just ware as the idea is quite general

MeWare
The developer creates a ware. The developer uses it. Nobody else does.
As a case – a ware is created first of all for by the developer for himself and others opinion is not considered at all.

ThemWare
The developer creates a ware. Other people use it. The developer does not.
As a case – a ware is created first of all for others. The developer normally is not qualified enough to have own opinion on how the ware should work, look like etc. Therefore other tell him what to do, while he decided how it should/can be implemented.

UsWare
The developer creates software. Other people use it. The developer uses it too.
The ware is a combination of the developer and others ideas and thoughts.

NobodyWare
The developer creates software. Nobody uses it.
The ware is created to die right after it is released. A good examples of that our students works in universities and some wares created because of some government/bureaucracy regulations.

Sunday, 9 March 2008

Zipping, Collaboration vs Cooperation

Reading further the diploma work "Towards an Integrated Approach to Collaborative Web Usage" I have found two more items that are worth to know.

Zipping
A feature that may be particularly interesting for determining which sections of a larger document a user is interested in is also explained: zipping. This is done by determining the sections and subsections via their tags (H1, H2, etc.) and then allowing the user to collapse or expand those sections.

Collaboration vs Cooperation
Collaboration is the process of multiple people or groups working together with a common goal. For example, a group of scientists working in the same field and sharing the results of their individual research do collaborate. While this could also be called cooperation, the relationship between people involved in collaboration is considered much closer. In particular, while cooperation may take place between competing parties, there's an atmosphere of trust and sharing information in a collaborative environment, and there is much more of a team spirit ([Maxwell, Beyond Cooperation]). Therefore, two competing companies may cooperate in the specification of a new standard that both are in need of - but this would not be called collaboration.
This implies an important relationship between the terms that shall be made explicit: collaboration can be seen as a more specific description of working together than cooperation. Instances of collaboration are usually instances of cooperation, but instances of cooperation are usually not instances of collaboration. Therefore, providing a means for collaboration includes support for cooperation as well.

Thursday, 6 March 2008

Classification of web tools

Reading a diploma work "Towards an Integrated Approach to Collaborative Web Usage" I have discovered an interesting classification of web tools created by following another article "Discovering User Access Patterns on the World-Wide Web". I citate this text below having done some minor additions and changes.

Level 0
A software system that “retrieves documents for a user under straight orders.”: the user must give the document's URI to the browser so that it can retrieve the document. The common term for this level tools is "Web browser". Notice however, that most currently available Web browsers extend the behavior at least by history and bookmark mechanisms.

Level 1
These tools provide “a user-initiated searching facility for finding relevant Web pages”. The most common example are Internet search engines. Current Web browsers often integrate search engines into their interface.

Level 2
Software systems that “maintain user profiles and have an active component for notifying users whenever new relevant information is found”. The user profiles in this class of Web tools are usually static: the user enters his interests and the system looks for information matching those interests (actually the same key words that he is using for level 1 tools). One real example of a tool from this category is Google alerts.

Level 3
A more dynamic and deductive approach qualifies a level 3 Web tool. While for a level 2 Web tool the user needs to be aware of his interests and must be capable of expressing them to the tool, level 3 Web tools attempt to infer the user profile by analyzing the user's behavior. This becomes particularly important as humans are not used to, and usually not capable of formalizing their browsing behavior or information needs because this is not needed in most every day situations. There are a lot of well known example of such systems, like for example Amazon or Google subsystems offering extra things (books, links) basing on (purchases, searches) history.

Level 4
A tool from this category should have “the capability of learning the behavior of both information users and information sources”.

Wednesday, 5 March 2008

Climate is changing everywhere

An interesting fact (for me) is that the change of the climate is not actually something happening far, far away from us (or at least me).

It is well-known that one of the most famous ski resorts of Europe locates in Alps and particularly in Austria

Everything is built perfectly from the infrastructure point of view. Routes are different for all skills levels and slopes are wide enough to accommodate a lot of people. Unfortunately everything becomes a bit worse if we consider weather as well. Surprisingly good, sunny and warm weather (good for the ordinal person) are not so good from the skiing perspective. The warm winter means no show and therefore the only available skiing resorts are on glaciers. Moreover even on glaciers the sunny condition and no snow mean that you will have to ski on ice (although it is white and made from pressed snow). You will notice it very easily during the morning time. Of course, snow will appear on the blue routes in the end of ends since skies will produce some while people are „drilling“, but not on the red routes- The most important consequence of it – there is an increased risk to fail and got something broken. Fortunately, in my case, consequence was a bit softer than „broken“ but still such serious that I had to treat it during a month. I have also seen an increased probability by my own eyes: during the day a helicopter came twice to take over to hospital seriously injured persons and a lot of others were visiting the local med-centre.

So, if you have no replacements for different parts of your body then be extremely carefully visiting skiing resorts or avoid them for certain time.... although I don’t expect snow the next year as well considering last seasons.

Tuesday, 4 March 2008

Is it simple to obtain a doctor of science degree?

This post is about to become a logical extension to the previous one ("Who is who in universities") and is aimed to increase the number of business community people considering to become a PhD. Notice that this post is written getting into account practises of Tallinn University of Technology (TTU) / department of informatics.

So, what is the minimum requirement to become a doctor of science? First of all (and that is the crucial one) is to write at least three articles to any scientific journal or publish them in conference proceedings. Thereafter you will have to compile you superior doctor work presenting your original research (method, algorithm, approach etc hopefully improving something sufficiently). The length of it should be approximately 70-80 pages (excluding appendixes and so forth). The work (sometimes called thesis) can be done either by combining your articles or writing it from the scratch. Finally it should be presented to a group of highly educated people sometimes called professors and in this particular case gathered together to understand “who are you?”, “why you are here?” and “does your work satisfy to requirements defined by this particular university for obtaining PhD degree?”.

Normally there is one more requirement to the minimum requirement mentioned above: learn at the university something useful and gather a certain amount of academic points (AP). For example TTU requires studying around 10 subjects.

How to achieve that?

Of course it is possible to pass this with minimal requirements (so called extern) but history know very little such example, so I will assume you are not mad enough to do that. Mostly the study will be compiled from a set of seminars on which you will find yourself presenting your ideas, describing something new from your PhD area etc. therefore I would call that: “having fun”. Of course you will have to study a set of other subjects like for example the scientific writing, but those varies from department to department and are not so numerous and you can pass them easily and quickly doing it “right” (spending minimum efforts and time)

Articles

We will be discussing this a bit later including formats, structure, content etc.

Idea

What I could say about such important question? Well I suppose everyone think that you should get one before considering continuing your study as a PhD student. Actually I think that this opinion is slightly incorrect. Of course it will be nice if a student has got a beautiful idea to work on in advance, but actually it is not quite required. Moreover I do not believe that a student can come with a ready made idea before starting the study, because it requires quite sufficient time to formulate, understand and make it correct. Actually the PhD study is about to do all this and therefore the idea will be formulate during the study, not before. It is obvious that the PhD work should be some kind extension to the master work, but it mean only the field of the research. Therefore don’t afraid to start having no brilliant ideas.
Moreover the research subject can sufficiently change during the study period and migrate to a co-field. Besides a lot of students got the idea done somewhere in the study by a day …. something strikes your head once and vu a la you are done. The only remaining activities are to write, present and celebrate.

Finally I would make a very “criminal” point from the academic research perspective. I have seen a lot of people who actually got the PhD for a very, very strange works (if to not say for nothing), so if you will finally arrive to the presenting your work in front of professors I shall say you will get your PhD for sure.

The thesis (dissertation) defence process

So, we have arrived to a topic of presenting the final work. The actual process of presenting the work is very formal (both from the regulation and the result point of view) and always ends with promoting the person to PhD degree. The reason is simple – normally it is too late on this stage to present doubts or negative result and will mean doubts in quality of the student supervisor and opponents. Therefore and the first and most important event that should happen before – your supervisor should let you (promote) to the final work presentation and s/he will not do that unless w/he is sure that the quality of the work is good enough. Notice that existence of your articles will not always mean the quality if those was written together with others, but normally are aimed to verify your expertise. Secondly, your opponents should agree to be opponents (participate). As a rule, those will not agree if they doubt in the quality of the work (or will decline later after reading it to avoid conflicts on site during the presentation process). That is why they normally would like to read your work and will force you to make certain changes (if the quality can be adjusted at all).

Job/position, i.e. how to earn money been PhD student

The question of being in a certain position (working for .. some company/institution) is also a crucial factor moving toward our PhD goal. Normally there are two ways either to be working for a commercial company or become a part of an institution working there as a lecturer or a researcher. The last one normally mean that you will not be getting paid well, but will have a lot of time for your research (and finally become sure that you are much better that “ordinal” people :) ). Besides you will be able to meet useful people and talk to bright scientists.
After saying that I would actually like to make an opposite suggestion. Working for the institution is not the only way to be successful on the road to PhD and it is possible to become a doctor working at the same time in a business sector. So, the main topic of this post is to encourage specialists from commerce to start the doctoral study and reach the goal. Don’t be afraid, it is possible and actually I did prove that by my experience and would like to help others as well. Actually a lot of researches in IT start to understand that there problems and ideas are rather artificial and requires real examples and cases.

Advantages

It is obvious that working for your employer you will get paid for all your time spent for them, so will get money and other bonuses. Advantages of this are: a) you don’t depend on other people (like for example you parents or your wife); b) you don’t suffer from cold and hunger, don’t have to rent a flat with two or three friends c) you can avoid wasting your time, for example in public transport moving around in your personal car and d)get what you need when you need that (books, journals, Internet access etc) instead of asking for funds filling numerous forms for the university. I think you will agree that it is much easier to think and research in good conditions, rather than missing very basic things (like been in a cold, noisy room with a poor Internet access). The obvious disadvantage (that we will have to balance) is absence of time (this will be our limited resource :)).

Some remarks on what you need to start

Fortunately we have been discussed already that the efficient study (which is also quite a fun) will not require too much time. Besides the process of finding an idea do require a concentration on that instead of a permanent presence of you at the university.
What you do really, really need is a) a wish to get the desired PhD degree (in order not to cancel your study somewhere in the middle; b) an employer who is willing to let you go to university to participate in classes or visit conferences when you need that (instead of following some kind fixed vacations schedule).
A wish to become a doctor” - I think it is crucial to decide about that starting your study to avoid spending your valuable time dropping the study later. From my point of view, the clever (meaningful) person should evolve all the time. Additionally you will have an opportunity to travel all over the world participating in conferences and al this will be paid by the university. Besides, later you will have at least something to recall as your greatest contribution.
An employer” – I strongly believe that if you are so clever that you are starting PhD study then you will easily find a good working place (otherwise your knowledge is highly artificial) and then you will easily become a very valuable specialist and your company will always be ready to find some kind trade off between your duties and needs, so you could agree on having time (for example counting that as vacation days) during which you can visit conferences.

Summarising all said above I would encourage you to start PhD study even working full day somewhere. Don’t miss one of the greatest challenges of your life.

Saturday, 1 March 2008

Who is who in universities

The main goal of this post is to give a high level description of ranks in universities (academic world) - in other words: who is stronger Seniour researcher or Assistant Professor :)

There are two parallel structures: one for teachers and one for researchers. By the way researcher are normally seen as an activity that should be done outside of university scope since the primary goal of any university is teaching students. Normally researchers are done mainly in labs although teachers do also a lot of research.
The main question here is financing. Theoretically researchers should be financed only via grands, while teaching is done after getting a job in university for money tha are collected either from students or government.

The high level of hierarchy can be described as (from lowest to highest):
  • Teaching:
    • Assistant (lecturer)
    • Lecturer
    • Associated (Assistant) Professor [in bigger universities those are different positions]
    • Professor

  • Researching (position here corresponds to the teaching one)
    • Juniour researcher
    • Researcher
    • Seniour researcher


Each level requires a certain degree obtain from an university. Those degrees are well known - bachelor, master of science, doctor of philosophy (PhD) (notice that there are two doctor degrees in some countries).
For example the doctor degree is required to be promoted to the seniour research position / assistant professor and higher. Obviously it is possible to pretend for a lower position having higher education level, but a rule of thumbs is the higher degree you get the high position you will be promoted to, although it depends on open position in universities.
The master degree is required to become a researcher or lector.

It is possible to find more details from wikipedia. for example by searching a definition for professor. Notice that the hierarchy greatly varies from country to country and can include much more positions, but earlier listed key position will still be there.

I think everyone would like to obtain the professor position (or at least the status :), so talking about that one we should mention that

- in some countries people are hired to that position and hold this rank for a certain time (normally 5 years) until a new competition among this position seeker is open

- in some countries it is a lifetime appointment until retirement after which they got an emeritus prefix.

The emeritus prefix can be added to many other ranks as well.

PS: Do you know that Adjunct rank means a part-time position normally for those who are working outside this academic institution.