hints at Adobe Flex support announced its Spring 07 release yesterday, including what it calls an Business version of MySpace: a portal where organizations can share of their data or applications with their customers and collaborate with them. During a briefing, I talked to Adam Gross, vice president of developer marketing. has a SOAP web services API, and apparently more than half of the platform traffic is via the API rather than through direct visits to the site. Would it make sense for to use Adobe’s Flex Data Services to support rich internet applications created with Flex or Apollo?

“Stay tuned,” was his response. “Flex makes so much sense for us. I can build those experiences, just like I can in AJAX,but I can build richer experiences that are easy to build, they plug right in and I can upload them to Salesforce, it’s hand in glove to our model.”

Of course it is already possible to use Flex with, since Flex supports SOAP web services. On the other hand, if exposed a Flex Data Services API using AMF (Action Message Format), that would make for smoother, faster and easier development of Flex clients, which use the Flash player as a runtime.

Technorati tags: , , , , , ,

Delphi 2007 is done

CodeGear says it has completed Delphi 2007, its RAD development tool for Windows. What’s notable about Delphi 2007? First, it’s Win32 only. Borland CodeGear hasn’t yet won over many .NET developers, so it took the decision to concentrate on native code in this release, although CodeGear is not abandoning .NET completely.

Second, it builds apps that work right on Windows Vista.

Third, there’s a new database API (CodeGear calls it an “architecture”) called DBX4; I’ve not investigated this yet. 

Fourth, it’s mostly binary-compatible with Delphi 2006 so that existing add-ins should work.

Fifth, it uses MSBuild (same as Visual Studio 2005), which is good news for anyone with a non-trivial build process.

Delphi 2006 was a huge improvement over the two previous versions (Delphi 8 and Delphi 2005). Version 8 was for .NET only, bypassed by most Delphi developers. 2005 brought .NET and Win32 together, but the IDE was barely usable. 2006 is pretty good; it looks as if 2007 may be better still. Although the feature set is not particularly exciting, the product is said to be faster and more reliable, which is what Delphi developers care about most. I will be reviewing the release shortly and will post links when available.


Technorati tags: , , ,

Why software projects fail

Martin Fowler and Dan North from ThoughtWorks gave a keynote at QCon entitled The yawning crevasse of doom; this refers to the tendency of those who develop software not to communicate with the beneficiaries of the software – users, business people etc. This was a recurrent theme at QCon; addressing this problem strikes me as a primary characteristic of agile methods such as Scrum. It helped me to understand that most software failures are caused not by technical issues but rather by communication problems. Of course communication failures can occur within the development team as well as between developers and other stakeholders; Kevlin Henney and James Coplien mentioned the perils of “throwing architecture over the wall” in their session on Agile Architecture is not Fragile Architecture. If architecture is divorced from coding it is likely to fail. It further follows that improving the software development process is more to do with improving how teams function than it is about tools or even procedures.

I find this a healthy corrective to the reams of PR I receive from vendors implying that their tools can prevent project failures. They love to quote figures from the Standish Group which allege that most software projects fail. This is the cue for a marketing pitch explaining the benefits of their application lifecycle tools. I am not against application lifecycle tools; one of their purposes is to enable better communication. However, it’s unlikely that landing new tools on dysfunctional teams will bring about improvement. It’s better to fix the team, which is a management issue, and only then to resource it with the right tools.

What is the team? In reality, the team is everyone with an interest in the outcome of the project, not just developers.

The snag is that it is much easier to buy new tools, or indulge in other forms of deckchair rearrangement, than it is to address the real issues that are preventing the team from functioning – maybe issues of personality, geography, or inappropriate management structures.


Microsoft attempts to buy search share

Microsoft is giving enterprises incentives to use Live Search instead of Google or Yahoo, according to a ComputerWorld report; John Battelle has more details.

Buying search share is nothing new; the Mozilla Foundation apparently gets a ton of money from Google for making it the default in FireFox. This is just another skirmish in the search/toolbar/gadget wars; the stakes are high, because search is the user interface of the web.

I doubt the strategy will have much impact, unless Microsoft fixes what really matters: the quality of its search engine.

It’s hard to overstate the importance of search today. I was reminded of this during a recent presentation on software usability. Speaker Larry Constantine made an example of a feature in Word: how to insert a caption for an image.

Problems like this are easier than they were in the pre-Google era, for the simple reason that users are now able to search for the answer. Try it: Google for “word insert caption” (without the quotes) and up come dozens of postings on the subject. Quicker and better than online help.

Since the ability to search efficiently is now a key productivity factor, it follows that businesses should think twice before allowing themselves to be bribed into enforcing search preferences. Better to evaluate the search engines, and maybe give some training in how to use them.


Technorati tags: , ,

Farewell to the Times Reader

Fired up the New York Times Reader today, to be greeted by a message:

This note is to let you know that the beta period will be ending in two weeks. Times Reader will launch as a subscription service on March 27. It will cost $14.95 a month or $165 a year.

Times Reader, you will recall, is a fantastic WPF (Windows Presentation Foundation) application for reading online content. It works offline and nicely demonstrates how rich Internet applications can improve on web browsers.

In one sense I have no quibble with the price. I believe journalism is worth paying for; and $15.00 a month is not excessive.

Unfortunately it’s not good value for me, nor I suspect for many others who have tried the beta. For starters, I’m in the UK which makes much of what is in the NYT of less interest. Second, I have access to a ton of free content – starting perhaps with along with innumerable blogs – and I don’t have time to read as much of that as I would like. The subscription model makes no sense for this kind of general content.

The NYT would do better to continue providing free Reader content. Give subscribers some extras like premium content, or earlier access to articles, or less intrusive advertising.

I understand the pressures though. It’s an unsolved problem.


Technorati tags: , ,

Scrum: good but not that good

Jeff Sutherland, co-creator of the Scrum development methodology, gave a talk at QCon on Agile Project Management: Lessons learned at Google. The session was packed; I’m realising that this is as much an Agile crowd as it is a Java crowd.

This was a fascinating session though not in the way that I’d expected. There was a fair amount about Google but not that much about how it uses Scrum, more about the overall characteristics of the company, its flat, team-based management structure, and of course how much money it makes. There is plenty of good sense in Scrum; it facilitates communication, surfaces problems, and promotes sane prioritisation. A key insight is that software development is not just about technology; it is also about people. “Scrum is the only process that makes personal issues as important as technical issues,” says Sutherland.

That said, I didn’t much enjoy this talk. It came over more as a Scrum marketing pitch than what I’d hoped for, which was a real-world account of a Scrum implementation. Listening to Sutherland you get the impression that Scrum is the One True Way; nothing else will do. Adopt Scrum and succeed; do anything else and (if you have competition) your company will fail.

Sutherland is a master motivator. We hear a lot about success. There are little anecdotes about soldiers climbing ridges. Along with Google, we learn about another company Sutherland admires, Toyota, and its secret of success which he calls The Toyota Way.

I don’t doubt the value of Scrum as a process; but I question whether it is only right way to develop software.


Technorati tags: , ,

Getting to grips with LINQ 2.0

Microsoft’s Eric Meijer spoke at QCon about “LINQ 2.0” in his keynote. So what on earth is LINQ 2.0? The name is probably inappropriate; he explained to me later that it is just a convenient tag for “what comes after LINQ 1.0”. Meijer started by talking about integrating relational concepts into languages; he didn’t say exactly what this would look like, but the idea is that you could specify relationships between objects, independent of the objects themselves. This is not LINQ 2.0 though; perhaps it is LINQ 1.1. LINQ 2.0 is about simplifying multi-tier, cross-platform web applications- hence the title of the talk, “Democratizing the cloud.”

So how do we do that? The starting point is that users want the same experience everywhere, irrespective of computer platform or device. Meijer’s idea is programmers should be able to code for the easiest case, which is an application running directly on the client, and be able to transmute it into a cross-platform, multi-tier application with very little change to the code.

That means a cross-platform runtime, right? Sort-of, but Meijer doesn’t envisage having to distribute a runtime engine such as .NET, the JVM (Java Virtual Machine) or Flash. Rather, he wants to use what is already available. Therefore he envisages .NET IL (intermediate language) binaries becoming a universally executable format. The runtime could be the CLR (Common Language Runtime), or the JVM, or the Flash player, or the browser. This would be transparent to the developer, because some intermediate piece would translate the .NET IL to JavaScript, or Java, or  a Flash SWF. or somehing else.

This is a little similar to the concept behind the Google Web Toolkit, which lets you code in Java but translates your code to JavaScript. The idea is that you code in whatever language you like, provided that it compiles to IL. For deployment, some sort of cross-compiler does whatever is needed to run it. Maybe it gets converted to JavaScript, or a SWF, or WPF, or WPF/E; you are not meant to care. He calls this late-binding against the client runtime. Note that this is different from implementing the CLR on multiple platforms, though Microsoft is beginning to do this as well (WPF/E).

So that’s the cross-platform runtime sorted. What about the programming side? How do we make our single-tier VB.NET application into a multi-tier web application?

Meijer talks about growing the application organically using refactoring. His use of the term “refactoring” is wrong I think; refactoring is meant to leave functionality unchanged. He means something more like re-purposing. You would take a method and add an attribute to convert it to a web service. Of course ASP.NET already has this (WebMethod attribute), but Meijer’s idea seems to include greater intelligence about the plumbing behind the exposed method. He believes programmers should only need to think sequentially, even though in reality web applications may have multiple entry-points and users may do things like clicking the Back button.

Meijer applies the same thinking to concurrent programming; developers should be able to do this with simple attributes, rather than struggling with synchronization statements and the like. Similar logic applies to state handling: Meijer reckons programmers should be able to program statefully, and have the infrastructure deal with the problems.

We should give programmers the illusion that their servers are stateful, while we can implement that in some scaleable way. That should be done once instead of all programmers trying to solve that problem.

No roadmap

I chatted to Meijer after his session. He emphasised that there is no roadmap for implementing “LINQ 2.0”; he is merely sharing some research thinking. What I’ve described above may never be implemented, or may evolve into something very different. Some parts sound fanciful to me. Will the idea of compiling IL for different runtimes really fly? Is it feasible to reduce multi-tier programming to a few attributes? Will this be any better than DCOM, which was meant to make distributed objects easy, but proved more complex and less robust than had been hoped?

That said, there’s little doubt that advances in programming will be about introducing new levels of abstraction, which may well provoke scepticism among old-school developers. This has happened before. I respect Meijer for what strikes me as good work in LINQ 1.0, so I’m paying attention.


Technorati tags: , ,

Constantine on Usability: should the Office Ribbon be customizable?

Here at QCon, Larry Constantine gave a keynote on usability. His big idea is that developers should not rely on user opinion, feedback and testing to determine the user interface and feature set of applications. You end up with too many features, and replication of past errors. He made some good points, but I was not greatly impressed with this session. The majority of the time was spent poking fun at other people’s UI blunders, which left little space for presenting Constantine’s proposed solution, a thing called Activity Modeling.

First up for scorn was the options dialog in Microsoft Word (pre-2007). This is one of those multi-tabbed affairs with a bewildering number of checkboxes. It’s better in Word 2007; but Constantine is not keen on the famous Office Ribbon either. Let’s say you have an image in a document, he said. Would you really expect Insert Caption to be on the References ribbon?

Possibly not; though looking at the section it is in, I can see the logic of it (it is grouped with “Insert table of figures”). That said, personally I wouldn’t search the ribbon for this. I would right-click the image; and indeed, if you do this, insert caption is right there on the pop-up menu. Constantine either did not spot this, or chose not to mention it.

The underlying point is fair though. No matter how Microsoft designs the ribbon, it will not seem intuitive to everyone. So should the ribbon be customizable? Constantine says it should; he even has a mystery source at Microsoft who told him that it would have been, but the developers ran out of time.

I’m not so sure. Customizability would be nice; yet it is less necessary than in earlier versions, since many more features are exposed by default. The advantage of fixed ribbons is that once you have learned where features are located, they are always there. The snag with highly customizable UIs is that no two instances are the same.

Let’s say you have your customized Word set up just how you like it. Then you have a system crash, or visit another office, and you have to work with Word set back to its defaults. Now where has that pesky icon got to?

In any case, Office is atypical. It’s a mature general-purpose tool, used for everything from quick memos to books and dissertations. By contrast, most business applications (the kind that most developers have to work on) are narrow in focus.

My view is that usability is just difficult to achieve. I don’t think there is any silver bullet, not Constantine’s Activity Modeling, nor Microsoft’s one-way glass, wish line, or any other single technique.

That said, usability does deserve more attention than it tends to get. One good point Constantine made was that the increasing computing power available today gives us more options than were available in the past. Lots of research opportunities here.


Quick thoughts from QCon

I’m at QCon in London – a conference aimed at the “technical team lead, architect, and project manager”, according to the little printed guide, and notable for having tracks on .NET as well as Java, though in reality this is more of a Java crowd.

Good session from Martin Fowler and others from ThoughtWorks on “Modifiability: or is there Design in Agility?” This is about the distinction between agility and chaos; Fowler referenced a remark he attributed to Kent Beck about the difference between the simplest thing that will work (good) and the stupidest thing that will work (…). Just common sense nicely articulated: take most care over the decisions that are the least reversible.

I also enjoyed the comments on test-driven development, noting that a spin-off benefit of TDD is that it enforces modular design, since without modular design you cannot easily create tests.

I sat in briefly on Christian Weyer’s introduction to WCF (Windows Communication Foundation). What I learnt is that outside a niche of advanced Microsoft platform developers few people have any clue what WCF is; Weyer’s presentation didn’t change this much as few attended, which is a shame. Incidentally I’m seeing quite a bit of WCF misinformation floating about, for example that it is just a wrapper around old stuff like .NET remoting, or that it can only use SOAP and therefore must be slow. Neither is correct. Microsoft has a tricky PR job on its hands to get attention for this; the same applies to WPF (Windows Presentation Foundation) and the other .NET Framework 3.0 technologies.

I won’t say more about Weyer’s session as I had to leave early to talk to Amazon’s Werner Vogels about its platform services like S3 and EC2 (internet storage and on-demand servers). I asked Vogels why Amazon offers no SLA (Service Level Agreement) on these services; he said it was early days and to watch this space. Ironically he mentioned that Amazon attaches great importance to SLA’s internally, so at least it understands the need. He added that Amazon is committed to maintaining its current strategy of relatively low pricing. It was a good chat and I’ll try to find time to write some more about it shortly.

That’s it for now; next up for me is Larry Constantine’s keynote on usability; tomorrow Eric Maijer is speaking on LINQ (Language Integrated Query), which he created. More later, but not from the conference center as the internet connection is injuriously expensive (£6.00 for 30 minutes). Ouch.

Blogging is on the brink of a new phase

Washington-based Pew Research Centre has published a 160,000 word report on “the health and status of American journalism.” Although it is US-based much of it is relevant worldwide, particularly in the online realm; in fact, among the publications covered are and The Economist.  

Much food for thought here. The online business model remains uncertain; the report suggests that advertising is not enough and speculates that:

…news providers [will] charge Internet providers and aggregators licensing fees for content.

which strikes me as highly speculative; I don’t see ISPs wanting to pay for online content though I suppose aggregators might. The report doesn’t say how well the subscription model is working for sites like I am sure subscription works well in niche areas like high-end business reports, but is it ever going to be a major source of funding for general news?

As for blogging, the report says that blog creation has peaked but that blog readership is growing – see Steve Rubel’s summary to get the picture. Blogs are an increasingly tempting target for PR and vulnerable to manipulation. Here’s an interesting comment:

Blogging is on the brink of a new phase that will probably include scandal, profitability for some, and a splintering into elites and non-elites over standards and ethics. The use of blogs by political campaigns in the mid-term elections of 2006 is already intensifying in the approach to the presidential election of 2008. Corporate public-relations efforts are beginning to use blogs as well, often covertly. What gives blogging its authenticity and momentum — its open access — also makes it vulnerable to being used and manipulated. At the same time, some of the most popular bloggers are already becoming businesses or being assimilated by establishment media. All this is likely to cause blogging to lose some of its patina as citizen media. To protect themselves, some of the best-known bloggers are already forming associations, with ethics codes, standards of conduct and more. The paradox of professionalizing the medium to preserve its integrity as an independent citizen platform is the start of a complicated new era in the evolution of the blogosphere.

The highlighting is mine. I reckon this is spot-on.