Tech IT Easy

July 28, 2008

Some thoughts on Services-orientated Architecture (SOA)

Lego.jpgContext: I’m currently in discussion with a number of companies that are involved with SOA-vending & -consulting. As a result, I’ve been studying up a little on this market and hope to learn more by writing about it. Note: Since I know, judging by the response to other articles on enterprise-software, this isn’t exactly the most sexy of topics, I expect the number of comments to be minimal.

Jeremy has already written about this topic (primarily in terms of Software-as-a-Service (Saas) and Software + Service (S+S)) before (here, here, and especially here), so I won’t go very deeply into it, but SOA is roughly defined as:

guidelines that allow software developers to design systems in stand-alone chunks of computer code, each specifying the critical outcomes, performance metrics, and interfaces between a discrete activity and other services.” (Src: HBR, June 2008)

If that’s a little abstract, I see it as a selling you a ticket to Lego-land, where you can play with legos all you like, those lego-blocks representing individual applications that can be used by businesses through a web (SaaS) or hybrid (Software+Service) interface, and Lego-land being the SOA-system that integrates all of them for you. This is opposed to the historical approach of buying a lego-box, which you eventually replace by another and another (side-prediction: we will eventually see Lego-world online).

SOA’s value-proposition
While traditionally it has been so that in order to compete in a technological world, you have to be technological, the idea of SOA is to remove that element, instead allowing individuals and businesses to focus on what they do best. I, personally, like that very much.

Other, more measurable advantages are that it is dramatically more cost-efficient. If you imagine that 5+ years ago, every company had to either invest into a powerful wide-area network (WAN) to be able to centralise IT-services, or replicate islands of IT-systems for each business-location, SOA removes that idea entirely, using a freely available infrastructure, the internet, and removing the need to build IT anywhere, instead paying-as-you-go for singular services that an external provider hosts and distributes. Added to this is the idea that performance now becomes accountable, in the sense that it is covered by contracts (e.g. QoS or SLA), something that was much harder to do with a permanently employed IT-staff.

With all these advantages and several more, it is no surprise that, in 2007, over 50% of mission-critical IT-projects were estimated to be SOA-based, a figure which is believed to increase to 80% in 2010 (these figures are from Gartner and may be US-only).

SOA’s hurdles
While this sounds pretty great, anytime you’re talking about system-wide change, you have to consider that this will meet resistance and involve a great many stakeholders, i.e. take a lot of time. And the question is here, who will you talk to as an SOA-vendor? Will it be the business-side of your client, as you are selling easy-to-understand lego-blocks, or will it be the technology-side, as you are selling technology? This is a serious question, so please answer it in the comments!

Added to this, a SOA-deployment is a strategic issue for your customer, meaning that your selling-proposition will also need to include the option of strategic support, aka consulting-services. This means that technology-only SOA-providers (vendors) will likely have to work with third-party consultants that pick-and-choose the best SOA-package for their client.

Related to this, the lego-like quality of SOA, which promises values like agility, flexibility, price, and reuse, and several more, all very important in this recession-prone time, also mean that someone can quite easily replace your service with someone else’s legos. Arguably this is much less the case if you provide an architectural framework and focus on building ecosystems (create lock-ins). But that is easier said than done, and as such this is a field dominated by few big players that buy up smaller ones.

Some more things, which I haven’t researched, are the degree that open source is a factor/issue here, and different revenue-models.

Grasping the paradigm-change
On the customer-side, there’s two ways of seeing this trend. On the one hand, extreme efficiencies, which also follows Nick Carr’s view that IT is no longer a competitive advantage. On the other hand, you’re giving away a lot of responsibility, which can be bad in two ways.

One, you’re giving away a lot of power to an industry, which will continue to consolidate. It’s something that may not be a problem now, but may become one.

Two, delegating a problem does not necessarily solve it. Taking the retail-industry, the biggest problem here is logistical inefficiencies, caused by delays, unnecessary replication of processes, or otherwise. Here, SOA, as long as it spans across the value-chain of manufacturers-transport-retailers-customer, is clearly a good thing. But it still requires a solid understanding of how IT does and can help your supply chain reap better results, something an independent SOA-vendor may not do as well. My opinion here is purely hypothetical, but it may be worth investigating how the masters of retail (Wal-Mart, Tesco, Carrefour, etc.) solve it. And if this is a problem, I imagine it is elsewhere too.

The SOA playing field
This post is getting a little long, so I’ll briefly go into this. Following Forrester-graphs show the players in the integrating corner of things (consultants) and, on the right, the vendors (also note the time-difference (the second one is Q4 2007) and region). You can find the originals here and here.

SOA.jpg

Clearly this industry is very layered, with some offering the complete package, including strategic assistance, and others providing either the SOA or a part of it (SaaS or similar). There is a lot of movement in this field with players buying each other out or moving into related industries, either on the hardware or software-side.

Final thoughts
Because I’m not a soft-/web-ware guy, I’m still very much undecided whether to head in the software-only direction myself, though I see much merit for an integrated business-consulting + software-deployment approach, and I also prefer selling Lego-blocks to rubber-trees. Feel free to convince me of your points of view. :)

All of this was initial thinking of course, and as such I’m happy to hear if you have anything to add or if I made some obvious mistakes. Again, considering the relative unsexiness of this area, I don’t expect too much :)

Vincent

February 24, 2008

XML Stories

hello hello

It’s a sunny sunday so I will share my idea rapidly and kick off to photosynthesize.

Techiteasy is a community blog so we tend to interact, ping pong ideas etc. Kari was sharing some thoughts about gaming experiences, Vincent some others on blogging about books and I was trying how to o’reillishly “Learn Japanese in 24 hours” to get a glance of some Japanese neo authors who write novels on mobile phones, using the rules and language of mobile communication.

Interaction is an effort to extend your actions to enter another domain, act and receive action. In Gaming you choose among a list of actions on a specific domain. When you blog about books you do exactly the same but with ideas in the place of actions.
These two forms of interaction are both quite:

  • Technically complicated (developing the book/game, mastering the actions/ideas, add your input).
  • Imprisoned in a specific domain. (Kari cannot play the books Vincent is blogging about even if he had Windows)

Rin from Kokura (a primitive greek way of naming people that are distant but important) removed some bricks from my thought wall. Mostly, in terms of her functional proposition. (24 hours haven’t lapsed yet to understand Japanese)

Writing books on your mobile, much resembles coding, you have to keep it simple and efficient.
A hidden catch is that you can probably make it extensible and platform-independed.

Result? If you extend the functional proposition, you can possibly write a mini novel that will be playable for other users on other media.
…and pass from gaming, to authoring, to blogging for both…bookplate1.jpg

How to extend the functional proposition? Starting from basic technical standardization:
XML will-it be sufficient enough to create scenery taxonomies, character ontologies and plot relationships?
XAL Extensible Authoring Language, does it exist?
Throw me the apples

Georgia

January 30, 2008

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 ;-)

January 20, 2008

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. 

October 30, 2007

The life of a software developer, episode 3/4: how to be flexible?

software-iron-triangle.jpgAs a software developer, one of the most difficult challenges to have a interesting career path is to be able to adapt to changing environments, even when you are an expert in a specific framework. I think there are 2 majors reasons to explain this necessity: the first one is that technology evolves very quickly, so you have to be able to be on top of the new “killer” programming language (e.g. currently RoR); the second one is that the essence of a software developer job in almost every company lies in the ability of being assigned to different projects with different practices and programming languages. These changes in assignments are most of the time unexpected, unless you consider that you have to expect them all the time! In all cases, you must be efficient and productive very quickly: an in-house software developer almost always has to prove that he can do the job better than a service provider and that internal development offers more advantages than outsourced one. This is of course not always true, but the variety of a software developer job often depends on this assumption. To illustrate that, I remember the case of HCL America, a provider of software development services, loosing its clients because software developers at the client’s company threaten to leave the company if external developers were about to take some of their functions, even for the restricted time of a project.

But the question is, how to be efficient and productive very quickly with new programming languages or development platform? In my previous company, some members of my team and I have had to learn programming languages like JAVA or FORMS in only few weeks. Whereas it may seem difficult to be up to the task, there are some basic principles that help a software developer on a day-to-day basis to build on his current knowledge to acquire new skills.

One of the main asset to get started is simply… Google! I know some companies where software developers are not allowed to use an Internet connexion, and I think that it is completely counter-productive. We have to remember that the developers community is like the gamers one: we don’t like to spend hours looking for a solution to a problem that plenty of us have already encountered; we love receiving tips to go quicker, and we are ready to share our knowledge without any limits to benefit from this community’s knowledge in return. I am never reluctant to dedicate time to answer some developers’ questions on dedicated forums, and I use them a lot when I face a problem or simply want to get started and understand the “spirit” of a new language.

Then, the basic reasoning of any programming language is always the same. A traditional software developer formation does not provide a knowledge of every language, but an understanding of how you can solve a problem in a development context and what are the best tools to do that. Therefore, mastering basic algorithms like Dijkstra or the graph theory, and modeling languages like UML is almost sufficient to develop in every language.
For example, during my first year in my previous company, I had to develop an application in FORMS (language developed by ORACLE). Of course, as it happens all the time, I was asked to do that without even knowing anything about this language. But in only one month I was able to develop a complex application with FORMS and to help other people to get started with this language. The secret of such a flexibility was to understand how this programming language worked. Some basic questions were:

  • Is it a object-oriented programming or a procedural programming? – Which tools are used to develop this language?
  • Where is processing made?
  • How to create a variable?
  • What is the syntax of conditional statements, conditional expressions and conditional constructs?
  • How to make tests on the code?

Any good developer must be able to process quickly this kind of reasoning because of operational pressure. For example, for web applications, with interactive applications becoming mainstream, operational people just can’t tolerate that all their specifications to add interactive features can’t be developed in a timely manner. Therefore integrating Ajax to a code written in Java is simply an obligation if you want to meet deadlines. However, this kind of market pull, forcing technical people to adapt their skills and the technologies they master to market needs, is clearly what drives excellence and motivation among most developers, eager to push their limits further. This is also our capacity to overachieve in terms of flexibility, adaptability to new challenges, capacity of anticipation and rapidity which lead to recognition of the value of software development in any company.

October 21, 2007

BMyKey.com: your French real estate hunter

If you’ve ever been serious in the recent 15 months about finding your dream property in France, then you probably used BMyKey.

BMyKey was launched about a year ago by Katya and Pierre, after 7 months of platform development. Katya, a graduate in communication and marketing, left her first job to start the company with Pierre, a bright software engineer from SupInfo who has just finished university. Katya and Pierre are entrepreneurial real estate freaks (you can tell from browsing their blog) that decided to take the plunge to offer the world a simple property search platform on the web.

BMyKey handles both rentals and acquisitions, on all sort of possible goods spread over the entire French territory. It is available in both French and English, and the number of goods available has dramatically increased in the recent weeks (and still growing). Which is pretty handy since you’re now certain to find what you want on the BMyKey database.
Here’s a short review, but I strongly suggest you go to BMyKey and make your own opinion on your own.

Killer features:

- the website’s interface: it’s nice to play with and makes property search enjoyable

- search options: very easy to specify that you’re looking for a car park or a house

- ‘add to your favorites’, like Amazon’s cart. Very useful to review your items later…

- Accountability: when there are brokerage fees, they appear clearly below the price line that is global (eg EUR 118 500, incl. 8500 brokerage fees in this ad)

- Better than the Googles maps geolocalization of goods, the ‘nearby search’ that shows you the immediate surroundings of the property you’re surveying and helps you answer major questions (eg schools, shops, movies/theatres nearby, etc.)

- the tag cloud, really a great idea / too bad it’s mostly in French

- the ’send to a friend’ button, so simple to implement but so useful

- Tutorial videos that help you get started (just in case you recommend BMyKey to pa & grandma)

Shortcomings:

- not fully translated into English (eg pages ‘Who is behind’ or ‘Partners’; or worst: the logo tagline ‘L’Immobilier Intelligent’ that would translate into Smart Real Estate) but still enough for anyone looking for a property in France to take a dip

- a few dead ends on the website, but it’s currently being cooked (similar properties, which, it seems, will embed a recommendation engine; my space which will be a sort of lounge, U.[Lik] style, here’s mine)

Not convinced yet? Liar! BMyKey in real is all there. Enjoy browsing their wonderful web app dedicated to real estate hunters and sellers.

October 16, 2007

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.

October 11, 2007

“Platform as a Service” by SalesForce

A not-so-interesting, but worth watching once, buzz marketing video for SalesForce’s AppExchange platform & Force framework. You could basically leave content as it is and replace SalesForce – AppExchange – Force by: Microsoft + CRM 4.0 ‘Titan’ + .NET; Facebook + Facebook API; Twitter + Twitter API; Google + GWT; Adobe + Flash + Flex; etc. I like the overall approach but I think the video lacks specific content.

What I found rather innovative here is SalesForce’s notion of “Platform as a Service”, that is getting close to the concept of “Software + Service” (thorough post to come sooner or later) introduced by Microsoft. It seems market players converge on the idea of interaction of ’solid’ platforms developed and marketed by software market leaders + a number of customized services run by an ecosystem of independent software vendors & software developer communities. In other words, Platform as a Service = Software + Service.

October 3, 2007

Xobni: I want it

Xobni is an amazing OBA S+S example.

But what is OBA (see links here, and here, and here, and here)? What is S+S (see my quick explanation to Vincent here)?

Thanks to Julien for spotting Xobni.

September 11, 2007

Now blogging on Microsoft Startup Zone as well

As the youngest member of the Emerging Business Team, it is an honor for me to have been invited to blog on Microsoft’s Startup Zone with bloggers and colleagues as prominent as Don Dodge (my favorite blogger ever alongside with Marc Andreessen), Cliff Reeves, David Rowe and Rodney Bowen-Wright.

I see this opportunity as a perfect way for me to, from time to time, put the spotlight on Startup Zone (rather than Tech IT Easy) on the most promising French software startups innovating on Microsoft server and developer tools that I work with, and provide insights on venture capitalists perception of the Microsoft platform – which is positive at utmost, thanks.

I will allow myself to post brief pointers on Tech IT Easy to MS Startup Zone blog posts that you may find of interest – and vice versa.

Blogging on Microsoft Startup Zone will obviously not change anything to my commitment to making of Tech IT Easy, hand in hand with our crazy crowd of authors, a high tech blog reference.

August 21, 2007

12 non technical tips to design kick ass software architectures

I actually learnt what software architecture means something like 9 months – when Jean-Sébastien and Pierre discussed the architecture of CartoReso and I was listening, eyes wide opened not understanding the slightest bit of what was going on. However, it didn’t take long for me to realize how crucial designing a smart and robust architecture is in making the implementation of a software product strategy successful though.

This being said, there’s a number of things one should know when it comes to software architecture design applied to an entrepreneurial context. I acknowledge I’m brand new to this domain, but software architecture has been the one thing I’ve been focusing on in the last 4 months: the sun could rise without me having read at least a few pages on the topic. So, here are my 11 non-technical takeaways. There you go:

  1. Think strategy, not technology. Strange? Maybe. The goal of software architecture is to embed you strategy into your product. Keep that in mind. And keep strategic analysis informal: week-long brainstorms between founders will perfectly do. Keeping the strategic analysis informal shouldn’t prevent you from going the extra mile digging deep though. Be tough-as-nails, cold-blooded and if necessary, surround yourself with razor-sharp, nit picky colleagues that will pinpoint what deserves to be pinpointed
  2. Think intellectual property, especially if you’re small and weak. You don’t want the big guys to steal from you. Ooosh, I was almost forgetting. See this pizza-and-coke Linux guy in your team unwilling to think of patents as anything else than evil? Yeah, I know, he’s smart, nope, very smart and you don’t want to argue with him. But fight him with words until he understands intellectual property is key in a knowledge warfare industry where some countries (like China) are more equal than others when it comes to IP. The guy’s smart so it will take a lot less time than you expect as of now.
  3. Think interface and user experience first, also called Think take your time. Don’t start coding from day one. What you should do is draw the screens of your applications. Each screen. With all the buttons, everything. Think of the human – machine interface first. Paradoxically, the longer you’ll wait, the faster you’ll get it done. Procrastinate. Do actually your best in procrastinating. You’d better walk slow in the right direction than run fast in a dead end. Unfortunately, true geeks can’t help coding. So refrain them from doing so by all means – including, if necessary, use violence and blackmail their families.
  4. Think world-class engineers, or don’t think – or even think of thinking ever. Pick up the best – and trust me that’s easier to say than do. One smart develop does the work of ten lame programmers so do it, whatever it takes. And give out stock options, be generous about it: startup developers jump from one failed startup to another. Finding for once a good horse to ride is a rare, unique opportunity to make a home run and stop worrying about money for a while. These guys are the ones who deserve it most.
  5. Think division of labour. Software architecture helps you parallelize the work load between developers to make all different groups working on all different parts finish on the same date. Believe me, there’s nothing more beautiful than assembling parts of code processed by different brains, clicking on ‘compile’, and see it run. However, do not believe you can then take a nap: the hardest thing in software isn’t to have a program that compiles properly. I would tend to say the hardest bit lies in packaging your software (never did it so I should just stop here). You’ll come up first with a broad drawing of the different software layers depending on the number of floors of your software (eg data / infrastructure; application; presentation – the SOA trend tends to divide the application layer into two, technical and a functional, subcomponents) – which ease work breakdown structuring. For instance, those with some good taste (or the least bad taste) will deal with the interface, others with the client side, the remaining ones will work on the server side. As an example, in CartoReso, Jean-Sébastien dealt with lower layers hacked in C (he was the most knowledgeable in NMap, the open source brick on which we decided to build on), Pierre with the application engine and with integration / build / project management (since he was in charge of the middle layer) and my humble self with the interface. But a broad drawing isn’t enough. You may then decide to fine tune your architecture and delve into the details of each layer. This work is necessary when dealing with large software development teams: regression risk finds itself lowered when everyone knows what it has to do and each method is clearly owned by a lead someone.
  6. Think flexibility. Lay the groundwork for future evolutions: you’re not building a software for today or even tomorrow. Think long term. A fashionable way of implementing flexible architectures is to go for modularity – like Dassault Systems does: you don’t acquire one standard piece of software, you just build your own DS software by picking the modules you need in their catalog. Interestingly enough, Dassault Systems‘ pricing catalog follows the way the architecture was thought, hence creating a perfect alignment between marketing and engineering which I believe is an industry best practice. Why? Well, Dassault Systems happens to fulfill the dream of all software vendors: it sells generic software that matches specific needs.
  7. Think lock-in. The new release of Firefox sucks: it crashes thrice a day and every time I try to download something. so I’ve decided to drop it for Safari on my Vista Mac at home and IE7 on my Vista laptop at work. But I find it REALLY hard, as I loved these little del.icio.us taggers or icons to subscribe to RSS readers embedded in the URL bar. Firefox has achieved to lock me in (well, not quite, but so far it did): the number of available plug ins prevent me from dropping Firefox until I find a solution (FYI, there exists IE7 plugins on windowsmarketplace.com). Lock-in has long been the one major issue with Google: it is now solved since Google login eases access to other Google web applications via Ajax menus. The powerful lock-in strategy execution usually reflects the value of the underlying platform – and the value of a platform equals the value of its ecosystem.
  8. Think proprietary control of a widespread standard Look at Adobe Acrobat’s .pdf format, or Microsoft Office applications (used to be .doc, .ppt and .xls, and now, with Open XML, it’s .docx, .pptx, and .xlsx). Once you’ve set the standard, the value of your software increases dramatically because it takes long for an installed base to migrate to a new standard. This simple phenomenon is called inertia. The hardest bit here is to become the standard. Which can be achievved running faster than everyone and remain in stealth mode (invisible from the big ones) as long as possible. Easier said than done.
  9. Think competition. Don’t mess with large corporations. If they are after you before you’ve proved your architecture is hard to replicate, they’ll make an announcement stating they’re soon to release a similar software, which will slower sales for your software, and come up, probably a little late, with something similar and sell at a loss, which will inevitably kill you. If your architecture is strong, elegant and patented, then the big one will realize it costs a lot to replicate (developers, patent breaking risk, time frame, etc.) and will think of acquiring either you or one of your competitors. This is how big corporations now innovate and trust me, software architecture audits aren’t piece of cake. Should they choose to acquire a serious competitor, sell your company before you get to die. Indeed, once the big one has the same product as you do and i) you’re alone, independent and weak; ii) you haven’t set the standard yet, the usual path followed to reap you off the map is that it will sell a similar product to yours for cheap, probably at a loss, if not for free – and the only thing you can do to compete is do the same too. Right? But think twice: your software product is your only cash cow whilst the big one on the other side of the river generates revenues from a large product portfolio. You’ll henceforth die before your large competitor does, no matter how much money you’ve raised.
  10. Think first things first: your project needs an architecture too. “Right” order is: 0) idea + slideware demo 1) quirky demo for funding + recruitment purpose that you’ll throw away as soon as you’ll get seed funding + recruitment + strategic analysis 2) seed funding (angels) + software architecture 3) functional specs + user interface design + feasibility + technical requirements + development schedule 4) prototype started all over again from scratch 5) series A + refined proto + then start the marketing machine (road map, channel, trade shows, PR, buzz, and all that jazz), hand it to the CEO and prepare for release crunch time: documentation, support, help, manufacturing, shipping, etc.. Don’t worry though, things never happen as such. Expect the unexpected: the story never ends up as planned in the scenario.
  11. Think interoperability: since you can choose, choose the most appealing role of the play: the white knight. In order to play White Knight, you need to look like a honest broker, even though you’re not. Think of Firefox’s ‘we’re gonna free the web from Microsoft’-approach: they run on all major platforms, support a massive number of external applications (like iGraal) as a platform, is translated in a number of languages by a community, etc. and at the end of the day, Mozilla makes 60 million dollars per year, whilst Google makes much, much more (Mozilla runs Google as a default search engine), and locks you in with little apps like del.icio.us tagger. So, to recapitulate Mozilla Firefox’s set of best practices (I should say right here that Microsoft is very good to at implementing such strategies, I can answer questions on this if you like), your product should be multi platform (start with Windows (90% installed base is convincing enough), then move to Mac OS, then move to Linux), be multi language-ready (it’s not so complicated to support Chinese, Japanese, Arabic and Russian unless you think about it afterwards, and then it’s a nightmare), and opened to external developers through a game of APIs: it will generate a buzz, make your company look sexier and hence ease new hires, and last but not least create value on your software by developing what you don’t have time to develop yourself. If you can use freeware code, do it; if you can purchase code for flat fees, do it; don’t pay flat royalties for source code down (eg US$ 15 per product sold), go for pay-per-deployment revenue % royalties instead – ie 1% of unit price; too risky. Make sure you don’t start depending on a partner though: don’t get locked-in yourself. At the end of the day, a good interoperability execution of strategy will strengthen your bargaining position with potential partners who will then realize you have the ability to choose to support them, or not. And then you’re the one calling the shots.
  12. Think robustness. Like Criteo, software with crème-de-la-crème architectures never break because of the load (the post, in French, I’m pointing to basically says their full .NET software resisted torture)

Expect a bunch of technical takeaways this time as soon as I feel ready for it.

July 18, 2007

Tech Ed 2007: register now!

People,

Register now for the 2007 Tech Ed, an event organized for software developers (5 – 9 November 2007) and IT pros (12 – 16 November 2007) already familiar or willing to learn more about the Microsoft platform. It’s taking place in Barelona, Cataluña, Spain.

Since you read my blog and I’m a nice person, here are 2 passcodes that will save you EUR 300 (US$ 400) if and only if you register before July 31st 2007 online (here): TED11200 for Tech Ed Developers; SEE11555 for Tech Ed IT Pros.

If you’re serious about software development &/or IT infrastructure, you can’t miss the Tech Ed event. All the best European developers will be there. It’s gonna rock so much that I’ll do my best to be there between November 5th & November 9th, for the developer edition. It’s a pretty good occasion to go back to Barcelona, where I spent 3 great months last summer, and I’m very, very excited about the training in itself. I think I’m going to pick up sessions in both the Architect and the Web Developer tracks. What about you? I still need to confirm that I’ll actually be able to make it, but meet me there if you can!

Jeremy

July 17, 2007

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.

July 15, 2007

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 ;-)

Older Posts »

Blog at WordPress.com.