Business

Unlimited Paid Vacation Time For Buyers

From http://www.bnet.com/2403-13059_23-237128.html?promo=713&tag=nl.e713

“In a Results-Only Work Environment, people can do whatever they want, whenever they want, as long as the work gets done.” This is not simply company-sanctioned flextime. A true ROWE has unlimited paid vacation time, no schedules, no mandatory meetings, and no judgments from co-workers and bosses about how employees spend their days. In other words, managers trust employees to get their work done and do not mandate — or even comment on — when, where, or how it happens. Because everyone is evaluated based on what they accomplish, as opposed to how much time they spend looking busy at their desks, it becomes clear very quickly who is actually getting work done and who isn’t.

And an example

For example, after migrating to a ROWE, Best Buy’s strategic sourcing and procurement team boosted employee retention by 27 percent and shed 10 low-performing employees. But the real proof was the huge uptick in performance: The department, which buys materials for the corporate environment, saw a 50 percent increase in cost reductions over two years.

Now I suspect that there is a bit more here than meets the eye but nevertheless it’s a story worth keeping in mind for buyers.

Product Management

Collaboration tools I’m considering

We’ve been looking at various Web 2.0-ish collaboration tools that might make our life easier when working with clients on projects. I introduced some of my team to some of the poster children of the collaboration space:

www.dreamfactory.com

www.huddle.net

www.basecamphq.com

The feedback was interesting: DreamFactory was too sophisticated. The view was that if you wanted to go this far as DreamFactory would let you then you may as well stick with MS Project. Basecamp on the other hand was too simple, little better than just using basic Outlook Email and Google Docs. Huddle seemed just right. In particular its support for online editing of Word and Excel docs (using Zoho for extra Web 2.0 brownie points) in addition to offline editing was singled out for praise.

This feedback is based on a particular way of working so won’t work for everyone. However it was surprising to me (as a Ruby on Rails believer) that Basecamp got such short shrift from people with no axe to grind. I’d welcome any views on the pros and cons of various modern collaborative tools.

Software Development

Dabbling with Drag and Drop in Adobe AIR with Flex 3

One of the fun things about my job is checking out where we can use new technologies to enhance our service offering. I’m a doubting Thomas when it comes to new technologies. I don’t like to rely on third party sources (whether blatant marketing, analyst reports or even developers excited about a new tool). I need to have a go myself. 

I’ve been keeping tabs on the development of Adobe AIR over the past months. Readers of this blog will know that I’m an ardent believer that the user experience needs to be got right first, and only then should be enhanced with something whizzy. But for sure we all want to have a range of whizzy tools available to us to use judiciously.

So I thought I’d have a look at how easy it is with Adobe AIR to do some drag and drop.

A few points before I start. You can develop AIR applications in a number of languages, e.g. Flex or HTML/JS. The documentation isn’t all that clear but from what I can figure so far:

  • If you use HTML/JS then you are limited to the usual drag and drop of items within a web page. But you can’t drag to/from the desktop
  • If you want to be able to drag items to/from the desktop you need to use something like Flex.
  • Flex apparently also supports limited dragging of certain items from the application to the desktop. From what I can figure in practice this means dragging a data table into a spreadsheet.

So I’m using Flex in this example. There is some sample code out there (e.g. http://www.mikechambers.com/blog/2007/11/07/air-example-native-drag-and-drop/) but when I checked it out it hadn’t been updated for Flex 3. The example below is an updated version based on the code at http://blog.everythingflex.com/2007/06/18/simple-drag-and-drop-air/
I’m on Windows so I’m using the mighty FlashDevelop. The example below is using 3.0.0 Beta 8.

1. Fire up FlashDevelop
2. Select Project -> New Project
3. Select an AIR MXML Project and give it a sensible name (e.g. dnd)

Flash Develop
Flash Develop

4. Expand the src directory and delete the Main.as file
5. Replace the contents of the Main.mxml file with the following code (WP isn’t keen on pasting in the indents – so no indents today).

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
creationComplete="init()">
<mx:Script>
<![CDATA[
import flash.desktop.NativeDragActions;
import mx.controls.Alert;
import mx.controls.Image;
import flash.filesystem.File;
import flash.desktop.ClipboardFormats;
import flash.events.NativeDragEvent;
import flash.desktop.NativeDragManager;

private function init():void{
this.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER,onDragIn);
this.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP,onDrop);
this.addEventListener(NativeDragEvent.NATIVE_DRAG_EXIT,onDragExit);
}

public function onDragIn(event:NativeDragEvent):void{
NativeDragManager.acceptDragDrop(this);
}

public function onDrop(event:NativeDragEvent):void{
NativeDragManager.dropAction = NativeDragActions.COPY;
var dropfiles:Array = event.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
for each (var file:File in dropfiles) {

//NB The following is case sensitive - so Image.JPG will produce "unmapped extension"
//but Image.jpg will work fine
trace("Adding file with extension [" + file.extension + "]");
switch (file.extension){
case "png" :
addImage(file.nativePath);
break;
case "jpg" :
addImage(file.nativePath);
break;
case "gif" :
addImage(file.nativePath);
break;
default:
Alert.show("Unmapped Extension");
}
}
}

public function onDragExit(event:NativeDragEvent):void{
trace("Drag exit event.");
}

private function addImage(nativePath:String):void{
var i:Image = new Image();
if(Capabilities.os.search("Mac") >= 0){
i.source = "file://" + nativePath;
} else {
i.source = nativePath;
}
this.addChild(i);
}

]]>
</mx:Script>

</mx:WindowedApplication>

 

6. Hit F5 to test the application
7. Drag images into the big empty window to see them shown there

Simple as that. You will notice inside the code that the app is looking for .png, .jpg, .gif files only. Turns out these suffixes are case sensitive inside Flex so make sure your file extensions are lower case. Or change the code.

Conclusion from this:

  1. If it’s correct that HTML/JS can’t be used to support drag and drop between the application and the desktop then this is not desperately surprising when you think about browser architecture, security, sandboxes and so forth.
  2. If using Flash/Flex is the only way to address this challenge then so be it. My initial worry was that in order to use Flex in anger I’d have to hire a whole cadre of Flash/Flex developer/designers. But it turns out that Flex is very reminiscent of HTML and JavaScript/Java so there isn’t going to be much of a learning curve for developers already familiar with web apps.
  3. I’m glad this exercise forced me to have a look at Flex because it has a lot going for it as far as aspects of RIAs are concerned.
  4. But. I have a concern about how maintainable Flex code is in the long run. Check the example here about the use of View States, in particular the example of how to maintain three different-sized windows. To be fair there are some MVC frameworks out there for Flex but even so I would be tempted to keep AIR usage to the fringes of my applications for now.
Auctions

Reverse Auction Guidelines from Purchasing.com

Purchasing ran an article some time ago providing guidelines on running electronic reverse auctions.

They make 7 points presented as questions and answers that buyers should take into account when figuring whether to run a reverse auction. Here are the 7 points:

  1. The more competition the better
  2. Do your supplier qualification before the event – protect yourself from having fly-by-night bidders offer an attractive price that then turns out to be unsustainable
  3. Make the spend in the reverse auction as large as possible to make the reverse auction as interesting as possible for your suppliers
  4. Make sure your specs are clear and watertight
  5. Beware of running reverse auctions where a strategic relationship with your supplier is important (reverse auctions may damage supplier relationships)
  6. Reverse auctions can offer a range of benefits in addition to (or instead of) lower prices e.g. faster sourcing times, a clear audit trail
  7. Make sure you factor in all non-price parameters as numerical values into your auction

It is a great article and I just want to add a few comments/clarifications from my perspective.

Point 1: The more competition the better. I do agree with this – and generally I would like to see 4 suppliers in a reverse English auction. But bear in mind that in 2008 the auction industry now has more experience across a range of auction designs that can be particularly useful where have limited competition. In particular I am thinking of the successes I have seen with reverse Japanese auctions.

Point 5: Your ability to gain the benefits of a reverse auction, and still have a strategic relationship with your supplier, depends on how well you manage the process and not on whether you include a reverse auction or not. New suppliers are usually happy to win business through a reverse auction. Incumbents are usually unhappy having to compete with anyone to retain your business (whether through a reverse auction or whether simply through any traditional offline mechanism). In my own personal experience I can say that I have got a great relationship with the software development company that I selected via a reverse auction.

Point 7: I still see very many buyers shying away from incorporating non-price factors into their auctions. The good news is that there are nowadays robust methodologies in place to make doing this easier for you than would have been the case even 5 years ago.