It has been said many times before; you probably do not need first class developers in order to produce first class software, but you need a first class team. I argue that if some or all of them are first class, then it makes it easier to create a first class team, as long as they can co-operate. The latter is vital. So, if we assume that the team members are proficient in the technologies used in the project at hand we can take a look on other vital aspects that makes a team work. The co-operation part.
How do we co-operate? One of the key components I would like to discuss is the ability to communicate. So to be more precise how do people, ourselves - us, communicate? Or, sometimes, the lack of it can be equally important to analyze. Most technically oriented persons would probably answer "by talking". Yes, talking is important, actually that is the technical part of it, and it can be analyzed. We do need to talk to each other. The actual talking and communicating in speech and text has been quite analyzed for great many years. Some of the basic ideas how this part of communication between individuals are described in various models, where the semiotic triangle is central. It describes how words, objects, concepts and symbols relate. There is also the area of pragmatics, describing how body language, gestures, utterances, etc. fit into the picture. Both of these alone can keep one busy for a very long time, these are interesting subjects indeed.
But, there are more subtler forces at work, some that might be very eluding - and apparently, not that much science seems to have been conducted in this area.
Why did he suddenly avoid eye contact? Why does he not want to speak to me? Why are she suddenly so angry? Well, I have this great idea but nobody seems to care after my presentation?
Are these questions you have asked yourself in a project? Encountered situations where similar scenarios have taken place? There must be something else going on. Enter our subconscious. Seemingly there is subconscious communictaion going on. Also, due to the evolutionary roots of our mind, there are certain reactions to certain behaviour - all in order to retain the integrity of the group (the team). It is all about group dynamics, but on a more subtle, subconscious, level. These are things we are not aware of. Simply, because we are deceiving ourselves not to notice what is going on. It is an autonomous function. One could argue that we actually run on autopilot more of our time than we might be prepared to admit.
How can I claim something as preposterous as the above? Well, I can't really, can I. I am not into psychology. However, I do meet, and have been working with, a great number of people from various parts of the world. What I have done is that I have read a very good and inspiring book on the subject. It is a book I can recommend, especially if you want to gain more knowledge in this area; "Why we lie: the evolutionary roots of deception and the unconscious mind" by David Livingstone Smith.
By the way; finding brilliant programmers can be hard sometimes. But, why not devise a test like the one posted here.
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
Showing posts with label development. Show all posts
Showing posts with label development. Show all posts
2007-11-15
2007-02-26
Writing to the statusbar in Eclipse from a non-UI thread
If you are dealing with the UI in Eclispe and need access to a certian part, e.g. the Statusbar in this case, it is quite easily achieved. On the other hand if you would like to simply write a message to this afore mentioned status bar, it is a whole new deal. You wrie your code that in the end extracts the site in question. As you get hold of the current statusline manager from the site, this is the way to go. Or,..?. well, when you start to debug the code you find that you run into NullPointerExceptions. The site or its view parts are null. This happens if certain methods in e.g. JFace is called from a non-UI thread. It actually says so in the Javadoc, in some places. I.e. the getActiveWorkbenchWindow method in IWorkbench exposes this behaviour.
If you are to produce code that calls these methods but does not have a UI-thread available? Well, then we can create one. It is quite simple once you've got the hang of it. It might look a bit complicated at first as it comprises using an anonymous inner class (which is a bit of favorite of mine as they resemble, to some extent, closures - without being it - ok, let the comments come!). Below is a code snippet that will produce a message on the status line:
If you want to the clear the statusline, pass null as argument to the setMessage method. Too many method calls? I "chopped"them up a bit to make it clear. One does find code here and there in the open source community where the author has more or less kept the calls figuring out the site reference to one line.
There are few posts on EclipseZone about, or touching, the subject. One of the more intersting threads can be read here.
If you are to produce code that calls these methods but does not have a UI-thread available? Well, then we can create one. It is quite simple once you've got the hang of it. It might look a bit complicated at first as it comprises using an anonymous inner class (which is a bit of favorite of mine as they resemble, to some extent, closures - without being it - ok, let the comments come!). Below is a code snippet that will produce a message on the status line:
final Display display = Display.getDefault();
new Thread() {
public void run() {
display.syncExec(new Runnable() {
/*
* (non-Javadoc)
*
* @see java.lang.Runnable#run()
*/
public void run() {
IWorkbench wb = PlatformUI.getWorkbench();
IWorkbenchWindow win = wb.getActiveWorkbenchWindow();
IWorkbenchPage page = win.getActivePage();
IWorkbenchPart part = page.getActivePart();
IWorkbenchPartSite site = part.getSite();
IViewSite vSite = ( IViewSite ) site;
IActionBars actionBars = vSite.getActionBars();
if( actionBars == null )
return ;
IStatusLineManager statusLineManager =
actionBars.getStatusLineManager();
if( statusLineManager == null )
return ;
statusLineManager.setMessage( message );
}
});
}
}.start();
If you want to the clear the statusline, pass null as argument to the setMessage method. Too many method calls? I "chopped"them up a bit to make it clear. One does find code here and there in the open source community where the author has more or less kept the calls figuring out the site reference to one line.
There are few posts on EclipseZone about, or touching, the subject. One of the more intersting threads can be read here.
Subscribe to:
Posts (Atom)