Category: Java

Approaches to search

approaches to search-1.jpgLooked at two new (for me) search-engines this week, Cuil (pronounced cool) and Keyboardr. Keyboardr is a geek-project and, like Mac’s Quicksilver, is all about navigating via a keyboard. Cuil, which I had heard of before, I was made re-aware of by a recent Stanford entrepreneurial thought leaders podcast, in which its creation and the theory behind it was discussed. I liked the idea of approaching search as a visual placement problem, as that is how humans (in my opinion) often judge information. Still, I didn’t think that Cuil was particularly innovative, from a GUI perspective. Even so, all interesting projects, as is Mahalo—human powered search.

What remains clear is Google will continue to be the thought-leader in this field, not because it is a better search, but because it is so integrated with the web.

What I’m thinking about is how search can be improved to become useful for human beings, rather than search-engine optimised websites, and the key to that seems to me to be presenting information in the right way for the right person.

Take Java tutorials, which I was looking for last week and where my priority was to find a. the right tutorial for my beginner-level and b. be taught by a good teacher. Two elements that matter here are level and quality, of which the first is easy to search for—just insert ‘beginner’—but the latter is currently being solved by Google as follows: the more it is linked too, the better it must be, which also makes sense. But it does ignore an element, discussed in the Stanford podcast, which is that unknown teachers can both be bad, but also exceptionally good.

Education online is different from education offline. The latter, if good, will be very popular, but interested people will run into a physical constraint—only so many students fit in that building. Online education, if good, will also be very popular but not have the same physical constraints, though possibly imposed price-based ones. But since we are talking good old open source Java, let us assume that price is not a factor. If everyone picks the most linked tutorial, which is also of good quality, it means that everyone potentially ends up with the same knowledge. The commoditisation of code.

But how do you produce exceptional Java-coders? These are arguably all people that walked the extra mile, either through inner potential and/or through environmental factors, such as an exceptional teacher. There’s another factor, which is that diversity can also breed innovation, by exposing people to a wide variety of ideas and perspectives, again made possibly by people working with a wide variety of tutors. Still talking Java here, but it could be applied to anything.

Search, in other words, promotes mediocrity, by leading people to pick the most common denominator, the top-result, rather than across the wideband of possible results, made possibly by the widely hyped up “long-tailed” nature of the internet.

And that is one problem that search is currently facing. How this is solved, is possibly a GUI solution, by presenting results in the right way and right variety. It could also be a human solution, such the one used by Mahalo. It could be a user-generated solution, using social-based variables through sites like Facebook, Twitter, FriendFeed, now LinkedIN, and something that Google is also implementing (badly, I hear). It could be a technological solution, something Cuil is also working on… etc. etc.

One thing is certain, that Keyboardr, no matter how geeky and cool, won’t exactly solve this problem :D

Vincent

Beware! Dummy learning Java!

running with Java.jpg

Discipline is the mother of all innovation…!

I’ve decided to dedicate one hour per day to learning Java. If I remember correctly, Jeremy did something similar, but I’m not sure it was for this language. Reasons for doing this are:

  • A good intro-language for code-dummies like me!
  • Built to be cross-platform: not only PC-wise, but on mobiles as well (I plan to write about the latter in a future post).
  • Plenty of resources around (more in this in a sec)!
  • The intellectual challenge!
  • Necessity: remember my last mantra?

After looking around for resources, of which there is no shortage, I’ve decided on a three-pronged approach:

  • A lecture-series, by Swinburne University of Technology, entitled “Object Orientated Programming” (free on iTunes U)
  • A book, called “Head First Java, 2nd Edition,” which got good reviews on Amazon, and is co-authored by Kathy Sierra. The lecture above recommends, “Core Java, Volume 1,” which I have to see whether that would make sense to get, in order to follow what they are saying.
  • Exercise-tutorials, to learn the basics, of which there is no shortage online. I am currently a third of the way with the tutorials on Javaomatic, and will see what happens afterwards.

Since I don’t like working solo on things, I think a logical next step is to take part in projects where I can practice my l33t haXing skillZ as well as contribute on the business developmental side.

My questions to the audience are:

  1. Where do you stand on Java as a language and as a standard? Personally, I have yet to come across a Java-app that I actually use day-to-day.
  2. What is the one Java app that I should check out to inspire me!?
  3. How easy is it to build on top of Java and learn/use other languages? What web-languages are most related to Java (yes, I am aware that Java could be a considered a web-language also)?

Enjoy the weekend!
Vincent

P.S. don’t forget to answer our poll !!!

Developer to all-technical-staff ratio: 1:4 as a rule of thumb?

Here’s a quick question to all people used to either interact with or being part of software development teams.

Consider a software vendor, a good one, and its technical headcount. It is no secret that R&D teams aren’t made of software developers only. In order to be deployed successfully, architectures and code need to be tested by a QA department (QA = quality assurance) where professional testers run through thousands of automatized-or-not scenarii; documentation; technical support staff help the install base with potential regressions occuring during updates and coping with changing information system environments; localization project managers monitor translations of the software: and last but not least, application engineers actually parameterize the software at clients.

Now my question, how many technical staff should you account for every software development engineer? I figured out an average ratio of 1 to 4, that is to say, for every technical team of 100 there should be around 25 software developers actually hacking code.

I know there exists extremes but by and large, from what I’ve seen, I don’t think I’m too far from the reality with a 1:4 developer / all-categories-technical-staff ratio.

What do you think? Feel free to describe what the company does when sharing your experience, because, since there are very large discrepancies between, say, an SAP that manufactures ‘heavy’ enterprise software and any web application designer that may not necessarily run industrialized testing and that has no professional service department, we might not get nuances at first sight.

PS: the ratio will also depend on the maturity stage of the company: at Microsoft, [# of develops]/[develops + Microsoft Consulting Services staff + developer evangelists + localization engineers + testers (1 for each develop) + architects] approximately equals 1/4 (1 to probably 5 ot 6 adding documentation specialists; & 1 to much more if you consider the system integrator ecosystem that actually does the application engineering). But the company is rather mature and therefore can afford to focus on quality of execution rather than productivity in execution. Which probably wouldn’t be the case for an enterprise software startup for obvious resource reasons. Anything to share? Best and worse practices, per specific industry (Web 2 / UGC, Video Games, enterprise, affordable consumer traditional applications, etc.) most welcome. I need to test my own budgeting assumptions ;-)

Sun-MySQL / Oracle-BEA: scramble in low layer software

Last week, the unsexy world of lower software layers witnessed some significant consolidation moves: Sun Microsystems acquired MySQL AB, and Oracle Corporation acquired BEA Systems.

I know you guys browsing the blogosphere want to hear about Paris Hilton (this one keyword to boost visits from search engines), and most of all Twitter, Google, Apple, MS-bashing (which I won’t do unless deserved & today I believe it’s not the case), Facebook, and all that jazz. So I’ll make it quick, although I think this topic is more strategic anyone else, especially when it comes to applicative platform decisions – amongst them web apps.

  • MySQL’s acquisition by Sun Microsystems

One thing that’s pretty sure is that 1bn$ (800m$ cash, 200m$ in Sun stock options) for a flagship asset like MySQL is dirt cheap. MySQL enjoys a very large developer community, a well-deserved strong brand awareness amongst web and SaaS application developers & DBAs – as well as geeks of all sorts, and most of all references like Linden Labs (the publisher of Second Life), Flickr & Facebook that have proven wrong those, like me (although I still think the TCO of MySQL is a lot larger than with MS SQL Server or Oracle 10g technologies), who doubted MySQL could handle massive loads (see this interesting slideshow by John Allspaw from Yahoo! on Flickr’s architecture) despite it’s very nice and simple administrative console. To me, MySQL will be to Sun what Flickr, MyBlogLog and del.icio.us are to Yahoo!: the jewels of the crown. 

So, from a price standpoint, I’m buoyant. However, it’s hard for me to say whether Sweden-born MySQL is a good or a bad acquisition for Sun, strategically speaking. The move looks a lot like a vertical integration effort by Sun to push its application server SunONE against Apache to run with MySQL, and its server-side OS Solaris against Linux server distros when it comes to running a MySQL database. This is where since may get mixed up, as Sun has been engaged in a very fruitful partnership with Oracle to almost bundle Solaris & Oracle 9i/10g. The same goes for Postgre SQL by the way. Therefore, my take is that a lot in the success of the acquisition will depend on how Sun’s management positions MySQL databases against Oracle.

A quick last remark: in Europe, it’s become very trendy to pretend you’ll IPO to actually get acquired by an American corporation. Anyways, I’m glad there’s one more financial success story in open source: MySQL AB wasn’t in business to be open source, but had chosen to be open source to actually do business. Open source ayatollahs pretending to developer communities hacking code in their spare time for the greatness of mankind are fools treating others like likes – that is to say fools: open source is one more software business model. Period.

  • BEA’s acquisition by Oracle

This very aggressive move is one more confirmation of Oracle’s market share-acquisition strategy. Oracle is now at loggerheads with IBM Software Group, the world’s leading middleware vendor. Websphere 6.0 and Weblogic Server 9.0 + Aqualogic BPM, alongside with Software AG’s Webmethods, have been competing for a while in the business infrastructure middleware market – & I suspect Oracle anticipates Microsoft’s upcoming marketing effort to generate adoption of BizTalk Server amongst large accounts. Hence the fact that I believe that this time, Oracle’s acquiring a little more than juste market share: with Weblogic, Aqualogic, Oracle Databases and BI Suite Enterprise Edition, Oracle has a broad enough catalogue of good products to compete with Websphere, DB2, Cognos on the IBM side, and BizTalk Server, SQL Server and PerformancePoint Server & ProClarity Analytics on the Microsoft side. 8.5bn$ was therefore the price to pay to win back Weblogic Server + DB2 or + SQL Server accounts as well as afford not to loose the everyday larger account base willing to go through one software vendor, and one only, to get equipped in infrastructure software. Moreover, Oracle kills two other birds with the same stone by 1) isolating SAP whose catalogue, although enriched with BO’s acquisition a few months ago, lacks heavy weight munitions in lower layers; 2) harming Red Hat whose JBoss Application Server has long been embedded into Weblogic. It may look like gambling, but I doubt Oracle will let Red Hat support Weblogic too long.

It’s not the end of the middleware war yet, but we’re getting closer to it since the entry barrier for a potential new incremental-innovation entrant has become very high in the recent years. 

Is software high-tech? Take II

software innovative take 2.jpgNo it is not. And when you think about it’s kind of a good thing. Because it means that the path from technology to revenue is that much shorter. Of course, the other side of that coin is that there are many people competing for that same revenue.

After writing my last post on this, and Marc’s comments, I started to ask myself some questions, such as:

  • What is technology? Is it mechanical, digital, a hybrid?
  • What is software? Is it the nail, the hammer, the glue, something else?
  • Should software be an end-product? Is is worth anything without the hardware, is hardware worth anything without software?
  • What would it take to make something innovative, aka. high-tech?

Certainly not an exhaustive list, but a good start.

My favourite of these is the fourth question, what it takes to be innovative. Back, when I was trying to convince myself to go into software, my main objective was to create something that would change my / the world in some ways. But it was strange, every-time I was thinking about a product, or rather a service (I see software as a service), I was always thinking that it would be so much better if there were hardware designed for / with it.

It’s the age-old debate of Apple vs. Microsoft, Quicktime vs. Flash or Java, a console vs. a computer, Firefox vs. IE/Safari etc. The difference between these “technologies” is that the one is designed to be—somewhat—platform-agnostic, and the other is designed for a platform.

We’ve rehashed Apple vs. Microsoft many times, so I won’t go into that too much. But if you look at cross-platform apps like Flash (as well as AIR) or Firefox, they are clearly feature-rich, but in many cases laggy as hell. I would consider both an inferior product, simply because it does not work as well as other competing products on the same hardware. The same with Windows, which has huge legacy-support, but is in some cases (a loud minority, I’m sure) not as “plug & play” with the systems it runs on, as e.g. Apple’s OS X, or the Xbox-OS.

Both of which are designed for the specific hardware, and it is actually the whole package—hardware + software—that is considered the innovation.

For something to be considered innovative, it should be seen as the whole end-product for the consumer. A minor example. When I installed OS X Leopard on my ancient (but perfect) G4-laptop, it gave me the two-fingered right-click. By all accounts a hardware-innovation, a tiny one, but which made the whole interface better. I’m not sure if software on its own could ever achieve a similar effect on the user.

So what would it take for real innovation to occur? It would have to be a paradigm-shift. We’re seeing a lot of interesting software coming out, a good example probably being Second Life. Yet Second Life—which was inspired by a world called “The Metaverse” that an author, Neal Stephenson, came up with in a book, called “Snow Crash,” is nowhere close to that ideal.

The reason is that, from a user-perspective, the Metaverse started with the interface—gloves and a helmet hooked up to a box—which allowed the user to literally hook into a system. How does Second Life ever compare to that? Instead, it forces users to be immobile behind their PCs, staring into a 2-d interface, imagining themselves to be in a world, in which they clearly are not.

And, in my eyes, the same applies to lots of software designed for an interface that simply does not innovate.

Facebook, Windows, OS X, Open Social, AIR, etc. All platforms actively marketing for developers. Yet how much of that marketing is happening in hardware, an area which has largely been commoditised over the last 20 odd years to the degree that R&D in that area must have been stagnating much.

You do see some changes. Microsoft, when it started on the Xbox, made a paradigm-shift. Apple has been doing the same for years, but now at an exploding rate. Microsoft’s Surface will be very interesting, as will the next version of Windows, though still restricted to a 2-d interface. And there’s probably 100s of other examples, which I can’t think of now.

The thing is that innovation in software has exploded in the last decades, as has, to a lesser degree, hardware. But we have reached a mature-level where the novelty has worn off. For software to become interesting again, we need new hardware—a new way to interface with technology, that takes us away from the boring old mouse and keyboard, and allows us to the live the mobile life for which our physical bodies were actually designed.

The Wii is a good example of what happens when you don’t just focus on hardware, you don’t just focus on software, but you focus on how your product can actually become useful in the lives of people that are not geeks, early adopters, or the loud minority.

Vincent out. This is my last post this year, I think.

High Availability Architectures (4/4) – Technology Trends

In the previous episodes of this serie, we’ve addressed the Availability, Scalability and Performances aspects of HA Architecture. In this one we’ll concentrate on the future of these architectures and the emerging technologies to tackle specific HA constraints.

Technology Trends

The future is a G word : GRID. Grid of memory, grid of CPU and Grid of disks. The main limitations today is to have this one to one relationship between the application and the physical server on which the former is deployed. Hence the main trend of the market today : to virtualize servers by using Network Access processing, memory and storage.Azul Systems

Network Accessed processing

This is the Grid of CPUs. Azul Systems offers some sort of Java mainframe, a box containing 768 CPUs and 700GO of memory. Applications are deployed on blades as usual but these blades contain a proxy to the Azul box : whenever CPU process is required, the blade proxy hands it over to the Azul box which is configured to allocate a certain number of CPUs for that very app.

Websphere XD also offers new possibility on CPU and servers virtualization.

Network Accessed Memory

Terracotta offers a solution for Network Accessed Memory. This is a server managing objects lying in network memory. Thus differents applications running on different JVMs and different servers can share the same instance of a given object. Client applications just need to import the terracotta client libs and define in a description XML file the objects and attributes to be shared and that’s it !

Main issue here with the open source version : 2mn start up time. This would then create a main Single Point Of Failure in the system.

Network Access Storage

SAN (Storage Access Network) offers a very robust and efficient solution for network repository. Communication are fiber channel based and therefore very performant .. but very expensive. This already is commonly used and it has paved the way for the above 2 other solutions of network access services.

My agenda @ TechEd 2007 EMEA

If you’re serious about software development &/or IT infrastructure, you can’t miss the Tech Ed developer training event between November 5th and November 9th in Barcelona. All the best developers from the very best European software publishers will be there. And I’ll be there too (as the outlayer, the worst developer in the room), to support IDEAS startups Chief Technical Officers making it to the EMEA TechEd. A few days ago, I chose the sessions I am going to attend. It’s going to be a great learning experience, not to mention the fun side as I’m going there with a bunch of wild animals from the French Developer & Platform Evangelism group of which I belong to at Microsoft. So, here’s my agenda for Tech Ed:

Mon, 5 Nov 2007

Putting the User Back into Architecture

Windows Live Platform: An Open Discussion

Why Software Sucks

Principles and Patterns of Security

Life Beyond Distributed Transactions: An Apostate’s Opinion

Implementing Microsoft SQL Server Express Edition

Tue, 6 Nov 2007

ASP.NET: Why, What, How and When?

Build Your Own Software Factory

Understanding Software + Services

Improving Software Safety and Reliability

Applying Ergonomics to the User Interface

Wed, 7 Nov 07

Exploring the Building of Software + Services

Applications with Microsoft S+S Reference Bits

Communities? Can They Really Help My Business, My Day-to-Day Job, and My Career?

Identity for .NET Applications: A Technology Overview

Agile Development with Team System

Thu, 8 Nov 2007

Exploring Event Driven Architectures

Self-Paced Hands-on Labs and CommsNet Open

ASP.NET Roadmap

The Irresistible Forces Meet the Moveable Objects Auditorium

Understanding the Data Mining Add-Ins for Excel

Software Plus Services

Fri, 9 Nov 2007

Blogging Panel

Top 10 Mistakes Developers Make – Tales of an Over-Worked IT Pro

Windows CardSpace Case Study 1: Identity Providers – Experian

The Future of IT

Web Application Security

 

Not bad, is it? I look forward to being there sooo much. And on top of that, I have many friends to visit in Barcelona.

Welcoming Rémy Miralles on Tech IT Easy

photomoi.jpgphotomoi.jpgphotomoi.jpgphotomoi.jpg

Despite the fact that summer is a slow blogging period, Tech IT Easy remains attractive for bloggers: please join me in welcoming Rémy Miralles, a new blogger on Tech IT Easy.

We have been looking for a long time to add a technical profile to our team of bloggers: as a French software engineer, Rémy will help us provide you with more technical articles about software and development in general. Rémy is also particularly interested in quality management and will hopefully help us better understand all the aspects of this subject. Also, if you are interested in some special subjects, do not hesitate to drop a comment and Rémy or one of our bloggers will probably find it interesting to dig more into it.

To get to know Rémy better, here are some basic facts about him. He will graduate in September from a Master of Information Technology for Management Applications (MIAGE in French) from Orsay University, which combines both a technical and a business education. Thanks to a work/study program, he has also been working for two years as a Software Engineer at Linedata Services, a major player in the market for financial IT solutions. Among other things, he participated in the implementation of quality management projects to help Linedata to get certifications. Rémy has also been appealed by the entrepreneurial adventure as he founded (with me ;-) ) in September 2005 Blogentreprise, a corporate blogging platform and directory, which is now discontinued: apart from the technical side, this experience has made Rémy acquire more business insights. He is now looking to internationalize his career by moving to the US in September to find a new job.

If, like Rémy, you don’t have enough time to run your own blog but would like to have feedback on your tech thoughts from a great community of readers without the constraint of updating everyday, do not hesitate to drop Jérémy an email (see his addresses in the About page) to join our team. I also remind you that if you have a blog written in a local language and would like to gain visibility in English, Tech IT Easy may be a great solution.

To conclude, a warm welcome to Rémy!

 

About visualization tools

visualization.jpgSome people manage to analyse and remember information by writing, hearing or visualizing it. I am definitely part of the latest type.

This is why I am really interested in tools appearing on the web to visualize some experiences like shopping, search and social networking.

Some of these tools serve a practical purpose whereas others focus more on the artistic experience, but the frontier between the two interpretations seem to become more and more irrelevant.

I have made a quick selection of some tools I discovered on the net for different uses:

1) Shopping: it is proven (don’t remember the source but it is quite obvious) that starting a product search with images improve conversion rate. I can personally confirm this assessment as I buy more books on when I use Blackdogair (visual tree of Amazon’s recommendations) than when I simply go on Amazon as I rapidly get lost trying to explore every combination. For lifestyle products, Browsegoods totally stimulates impulse purchase: if you’re a woman and click on the “shoes” category, the vision of thousands of great shoes will definitely drives you crazier than traditional browsing putting in evidence prices rather than images!

2) Search: visualization of search results can cater to some unconscious users’ expectations. For example knowing how many search engines references this result, knowing at first sight if the result is a picture, a video or text, understanding how the different results are linked to each other. This is exactly what Touchgraph offers by clustering results and clearly indicating sources and connections. I also heard that SearchCrystal isn’t bad (even if I haven’t tried it) notably because it shows with different shapes results appearing in different numbers of search engines, as a proxy of relevance.

3) Social networking: this field is probably the one where visualization tools are the most artistically involved, which may lead to think that these visual representations are just “gadgets”, like for example the Facebook Friends Wheel. But, apart from artistic projects, some of them are more useful, to visualize the structure of your network: how people are connected, what are the “clusters” in your network for example. Again, Touchgraph provides a great and customizable tool to do that (the image in this article is the visual representation of the core of my network), including the links between people thought pictures’ tags.

Understanding networks (being recommendations, search results or communities) has always involved visual representation (essentially with basic lines and points), so this is not surprising to feel familiar with these tools. Jérémy always tells me that a great chart is worth thousand words, so he should agree with this article ;-)

Fidji SIMO is a co-author on Tech IT Easy, who preferred looking at images than reading text when she was young; it might have left marks! You can find out more about her on this blog’s initial announcement or her blog.

5 reasons SaaS developers enjoy their job

If you’re a software-as-a-service publisher (eg Google as far as Google Earth or Google Gear aren’t concerned, SalesForce, Idylis, TellMeWhere, Netsuite, Excentive, Facebook, Zlio, Brainsonic, Microsoft as far as Live or Titan are concerned, U.[Lik],  eBay, Yahoo!, Inspirational Stores Group, Amazon, 37Signals, Neocase, Advance IT, Constellation, blueKiwi, SideTrade, Twitter, etc.), here are 5 reasons you’ll find hiring software developers easier than traditional software companies or, even more true, IT service companies.

1) SaaS developers enjoy faster release cycles. Indeed, go-to-market time frames tend to shrink as new functions may be implemented on a seamless basis (provided all regression tests were performed on a redundant test server or mirror environment).

2) SaaS developers don’t suffer the pain of an heterogeneous installed base (the nightmare of traditional software license vendors like Oracle and SAP). If all users work on the same environment, then it’s easier to innovate (you don’t need to take into account upgrades and regression risks) and even, dare to think about starting all over again from scratch a new version of your software.

3) SaaS developers will enjoy the pressure of having to keep up with client requests and new web technology trends constantly. Actually, since the SaaS paradigm is equivalent, roughly speaking, to a pay-as-you-go business model, then clients may decide to stop using the app and hence paying the SaaS vendor anytime they want. Which puts pressure on the software publisher team in general, and on the develops in particular who will have to keep watching what competitors do, how the market evolves, what their clients need, and what new technologies may allow (eg Silverlight and Apollo definitely open new windows of opportunities).

4) SaaS developer will work in small, agile, commando teams rather than endless product development open spaces. Why? How? Making money per US$50 / month doesn’t leave room for too aggressive recruitment campaigns. It takes a long time to build a sustainable SaaS company. Cash flow stream forecasts may grant visibility, you’re still never 100% sure that you’ll keep your clients until then. In other words, SaaS publishers don’t benefit from the huge upfront fees software license vendors collect as soon as they ship their product and find it trickier to finance their working capital. In a nutshell, viable SaaS publishers are by nature and by design very healthy, well-managed companies with conservative approaches. Software developers are key elements of the engine and this is where the money will go as soon as recruiting will become the current motto. Till then, R&D teams will remain small, agile and commando-style (testing new features, removing some, etc.). Great labs to give new software engineering methods a go for people passionate about such things!

5) SaaS developers have a chance to do the work of graphic designers as well (and modify it more often than with a software license vendor), and may, should they choose to do so, have a true impact on the user experience and general design of their application service. For instance, I heard develops @ Google do the design work themselves, keeping a few principles (simplicity, etc.) in mind, and starting from what they think the mindset of the user will be. Same for Titan (online version of Microsoft Dynamics CRM) Salesforce or Idylis (online ERP company based in Paris). In short, Software as a Service may be the best option for software developers with a strong graphic design acumen, or keen on interacting with users and brushing their design skills up!

Enough for tonight. I’m not even mentioning the possibility for develops to improve their infra- or distributed computing skills thanks to SaaS models but I’m pretty sure you would’ve thought about it. Let me know if you can think of other selling points SaaS vendors may make use of to attract software developers vs. software license vendors. Software publishers are whatsoever all amazing, be they SaaS companies or not. So if you’re a good develop in an IT service company, jump off and if you don’t know where to apply, send me an email and I’ll put you through.

Open source can be very, very expensive

I had dinner tonight with a friend and technical consultant jumping from a 3-month mission for an industrial companies to another 3-month mission for another industrial company. So far, so good.

The issue is that one of these clients hates to pay for software and has the weird habit of wanting to develop in-house all its software development tools.

Result is that my friend, unwilling to spend more than 3 months at a client, had to recruit 2 developers to develop tools for IT consultants and software developers to do the job.

Which took them 1 full year. Each are paid respectively EUR36K (junior) and EUR48K (senior; 3 years exp.). That’s EUR84K + 30% of social charges corresponding to the French rate. Hence a total of EUR110K.

As a result, it took one year of a senior and one year of a junior developer to develop an IDE that does maybe 20% of what Websphere or Visual Studio can actually do in terms of both functional breadth and optional depth. Not to mention the absence modularity (vs. modular approaches for Eclipse or Visual Studio through plugins & open APIs). All clear in terms of software expenses: it all cost nothing but 2 computers and electricity. But consider the total cost of ownership of the move: EUR110K (US$ 150K) for an app that barely does one fifth of something that’s free (eg Eclipse) or almost free (Visual Studio 2005, through the Empower Pack)!!

My conclusion: such behaviors harm the software industry. For a number of reasons:

1) if there exists software vendors, it means there exists markets for software vendors and hence clients for such software vendors. Why do some clients believe they can reinvent the wheel? Why can’t they invest a few thousand dollars in Visual Studio, or Rational Rose, or even download Eclipse for free??? That’s such an egotistic thing!

2) they harm the software industry, because not only the steal 2 resources (2 good software developers) to independent software vendors, which are having a hard time recruiting develops because, in part, of competition from IT service companies, but also they display an unpleasant picture of software-savvy people. Let’s assume they would’ve matched the quality of IBM Websphere or MS Visual Studio: do these people think they would have gotten a medal for paying 2 skilled resources for 12 months and hardly matching the existing?

3) open source can be a model, in 2 ways: i) to invent new ways for software developers to collaborate; ii) to wake up established vendors if new releases take too long to go to market (eg Firefox vs. IE6). Such episodes harm the open source software industry, and hence the software industry as a whole – because such approaches are not industrial approaches but amateurish ways of creating applications. By the way, it shows how expensive open source can be in terms of total cost of ownership – if not implemented by pragmatic people but driven-by-ego or even worse, -ideology.

In short, an combo of in-house approach & open source can be a disaster for the software industry, and the nightmare for any chief financial officer.

Attract software developers and boost your GDP

Dubai isn’t dumb when it comes to economic policy. Some economists there have noticed software giants (Google, Microsoft, Apple, Oracle, SAP, IBM, BEA, Yahoo!, etc.) acquired companies on a valuation related to the number of software developers such preys accounted. A few years ago, it was commonly agreed that a software giant would be willing to ‘acquire’ each software developer for something like US$ 1m. In other words, a 12 developers-strong software startup would be worth something like US$ 12m. Nowadays, I would say it gets closer to EUR 1m per developer though (EUR 1 = US$ 1.37).

Dubai has noticed the trend and has started to build gated communities for software developers – very near Dubai Internet City. In terms of ROI, a relatively small initial investment (it is no secret that Dubai employs thousands of slaves from rural India, Indonesia and Pakistan to get the construction job done) for roads and houses that are soon to be refunded by individuals and taxes anyways, plus a massive communication effort in hand with both the software and IT service multinationals willing to invest in the area to attract software development talents from South America, Russia and South East Asia, will mechanically generate tremendous per capita GDP and create value for the local economy.

What if software development was a true booster for the World Economy? I wish more politicians got to know about Dubai’s measures to increase GDP. It all boils down to this: attract and train the best software development talents.

PS: many thanks to Raphaël Fétique, from eCommerce consultancy Converteo, for the info ;-)

5 things you should know about SaaS

Felt like sharing some thoughts on SaaS with you today – those who already know something about SaaS won’t learn anything from me here – and I’m willing to learn if you’re in the mood to comment. But those who are discovering what Software as a Service is might find something to take away.

1) SaaS doesn’t equal ASP, and conversely

Many people, mostly entrepreneurs, use the expressions ‘ASP’ (application service provider) and ‘SaaS’ as if these 2 concepts meant similar things. Which isn’t the case actually.

  • ASP is an IT infrastructure access mode that refers to accessing applications located on remote servers. In other words, ASP architectures are client – remote server architectures where the server is more distant to the client than in ‘usual‘ client – server configurations.
  • SaaS is an entire new business model that can be assimilated to OnDemand, or pay-as-you-go software. Nothing to do with IT architecture stuff. With SaaS, one may either rent a service (a service based on a software) monthly or only when the service is being used, for instance.

In short, SaaS is a business model thing whilst ASP is an IT infrastructure architecture thing. Btw, I find the use of the term ASP obsolete whilst mentioning SaaS just rocks at the moment (see 5)).

2) Sell service, not software!

It’s hard for me to say so, I spend my time promoting software. But if you sell service, you’ll speak to functional executives and if your solution addresses a sound need – the you’ll close deals. If you just sell software, then it’s likely that you’ll get to talk with the CIO team and things might get a lot tougher for you if you’re not 100% clean on a number of things including accountability, traceability, confidentiality, accessibility and security issues. Functional execs meet with a handful of guys like you on a yearly basis whilst CIO teams meet hundreds so they’ll naturally be more selective.

In other words, SaaS sells better when presented like a service, so don’t mention software at all when selling to clients. Allow your clients to try your service for free with no down investment (low entry barriers) for a while, then pay when they’re satisfied, and leave if they find your service doesn’t match their expectations anymore (low exit barriers).

3) Treat your clients as partners, not clients – keeping in mind that some will be more equal than others…

Treat SaaS clients like partners: let them suggest new features for your product road map, and tell them you will integrate these features for all your customers without having clients pay more for it than they currently do.

4) Understand your client’ organization and adapt your pricing structure: target local P&L rather than global B/S

If your client is a decentralized organization, go for a pricing that involves all different entities (eg profit centers) so that you don’t impact the IT budget (no balance sheet investment) but all the local profit center expense accounts rather (billing demultiplication makes you invisible to corporate cost cutters in case of a downturn).

5) SaaS is a current VC buzz word

For something like 9 months now, venture capitalists have all become all crazy about SaaS. I, and they, know it’s just a buzz word, a cosmetic thing – but it works so what can I, they do? You’ll score points if you mention SaaS during your pitch – and loose them if you mention ASP as well in the same presentation.

Nota Bene: chart from Fred Chong’s top blog.

Software marketing management dept. – timing matters!

Most early stage software publishers or ISVs (independent software vendors) rightly focus on production (software development) and sales in the beginning of their growth curve, and hence seldom have a marketing department from scratch.

I believe this is the right approach: when facing a certain resource scarcity, focusing on generating revenues rather than deploying cost centers is key to short term survival.

On top of this, having none, and no product management & marketing department (handled by the executive committee) in between product development & the sales force allows for better interactions between these two species: sales people are able to better feedback software developers with client needs, helping them understand what their clients want and hedging against market risk. Collateral good: develops and sales guys actually..interact in a rather human manner!

In short, leaving sales people and software developers interact in the very beginning of an ISV growth curve can only be a good thing.

But soon, things get complicated if the management team doesn’t do something about these 2 issues:

i) avoiding sales people to sell functions and releases that are yet to be specified, developed, tested, implemented and deployed. Indeed, sales guys won’t hesitate (often right before bonus time when everybody’s busy) to sell product upgrades that aren’t even in the agenda – which jeopardizes the ISV from a reputational perspective.

ii) integrating competitive items in your product road map. As you grow, your competitors have noticed you and it’s very likely that new function developments won’t exclusively come from customer wills, but also from strategic moves by your competitors. And these will need to be prioritized and integrated: you would better not miss the train, wouldn’t you? Since neither software developers nor sales persons have the time and commitment to do competitive watch, someone has to do it. Right?

The answer to these issues is to bring in a product management (road map) and product marketing (product sheets, white papers, case studies, testimonials + trade marketing often separate from product marketing) group in the middle of the floor, between the sales department and R&D. In my opinion, product marketing management should, when the software publisher reaches a certain point of development (usually break even), become the only interface, a compulsory meeting point, between product developers (R&D) and business developers (sales persons).

To wind up: having a marketing dept. before the company breaks even might slow down your efforts to have your product match market expectations whilst not having a product marketing management dept. after the company breaks even will affect sales in the mid/long run. This goes for software vendors, but I’m pretty certain this way of thinking would perfectly apply to a number of industries other than software.

Another resolution: spend 2+ hrs/week learning C# development

I discovered (via Benjamin) the Microsoft Beginner Developer Learning Center. Back in computer science University this year, I was trained to hack code in Java, Matlab (signal processing), VHDL (electronics) and even in PHP / MySQL during a practical database session – but hardly in C# or on the .Net framework tools, which would be extremely useful considering 1) the company I’m working for; 2) the fact that many software entrepreneurs I meet tell me their choice in favor of the .Net framework + Visual Studio Team System helps them be 30% more productive than if they had chosen another environment like J2EE + Eclipse or (even worse) PHP + MySQL.

 

I browsed the site quite extensively today, and I decided I would try to spend 2 hours or so per week going through the tutorials which look really well devised. In terms of level, there are 3 tiers available: 1 (beginner), 2 (beginner-intermediate) and 3 (intermediate). As far as I’m concerned, I guess I’ll try to start with Tier 2.

 

There are also 2 tracks available: web development & software development. I find the latter track to be more sort of ’straight to the point’, but I may be mistaking.

 

 

Feel like doing like me? All you have to do to get started is download 2 free apps: Microsoft Visual Studio Express Edition, and Microsoft SQL Server 2005 Express Edition.

 

Click here to access Microsoft’s Beginner Developer Learning Center. All feedbacks / pieces of advice appreciated.

Staypressed theme by Themocracy