What immigration, Internet security, and car rental companies have in common

I was reading a book by Bruce Shneier “Secret and Lies rdquo;. While this book is about Internet security, Bruce uses lots of real world analogies to explain the technical stuff. His analogies were transformed in my head into different analogies that have nothing to do with the Internet, hence this post about immigration. But first let me cite Bruce (sorry for the long quote, but it “s very well said).

Bruce writes: rdquo;Less than one percent of eBay transactions ndash; unmediated long-distance deals between strangers ndash; result in any sort of complaint. People are, on the whole, honest; they generally adhere to an implicit social contract. The general lawfulness in our society is high; that “s why it works so well. (I realize that the precious paragraph is a gross oversimplification of a complex world. I am writing this book in the United States at the turn of the millennium. I am not writing it in Sarajevo, Hebron, or Rangoon. I have no experiences that can speak to what it is like to live in such a place. My personal expectations of safety come from living in a stable democracy. This book is from the point of view of industrialized world, not the world torn apart by war, suppressed by secret police, or controlled by criminal syndicates. This book is about the relatively minor threats in a society where the major threats have been dealt with.)

Attacks, whether criminal or not are exceptions. They are events that take people by surprise, that are “news rdquo; in its real definition. They “re disruptions in the society “s social contract, and they disrupt the lives of the victims rdquo;.

It “s been seven years since Bruce wrote this, and I “m sure that mentality of most Americans has been substantially changed, and you know why. But let “s get to the immigration subject, let “s try to get into the head of a person who lived in a society where having a criminal mindset is not exception, but norm of life. Let “s get into my head circa 1987. I used to live in the country that ceased to exist: USSR. Ronald Reagan was the man who gave the best definition of that country: “The evil empire rdquo;. Everything was upside down in that country, but most importantly, the mentality of an average person was kind of criminal. First, we lived knowing that there is a written law, and there is an actual law, and the two were quite different. We knew, that bribing is the shortest way to get something done. We knew who had to be lubricated in any given situation and what “s the amount. While the majority of the population were honest people, their mentality by the Western standards was criminal. Their minds were sharpened for survival in a non-user-friendly environment. At the same time Americans lived under assumption that majority of their population are law abiding citizens. I do not want to idealize America, sure enough it had and still has corruption, but it “s not a norm of life here. That “s for sure.

When I arrived to the USA, it took me some time to get used to the fact that in general, people are friendly here. If you ask for something, people really try to help you because they are doing their jobs without expecting small or not so small gifts in exchange (let “s leave bureaucracy aside as it “s the same in any country).

America was always a dream land for most of the people of the world. The worse political or economical situation was in Xlandia, the more people from that country wanted to leave and go somewhere else, preferably to America. At the base level, all people (even the ones with criminal minds) want the same things: a safe place to live for their families and some food on their tables. When this is achieved, people want to move to the next level, which means having a better place to live, better food and some luxury items they could not afford before.

But regular Americans and immigrants from the developing countries are moving to the next level using different roadmaps so to speak. Immigrants, trained to survive in their homelands, are often trying to find some loopholes in the laws to move to the next level of success. The more corrupted your country was, the harder you “ll be trying to find the ways around.

There “s lots of urban legends about Italian mafia in the USA. The HBO “s show “The Sopranos rdquo; was probably the most popular one over the last decade. People in the movie looked so real. Why? They came from Italy that is known for its corruption.

Indian programmers who live in the USA have very close ties with their families overseas and go there religiously as often as they can afford. They purchase lots of gifts to their relatives. They told me that customs officers in Indian airports casually take bribes. The same applied to Russia (not to the USSR, but to today “s Russia, Ukraine and other republics of the former USSR).

Speaking of the airports hellip;In his interview with IT Conversations (way after 9/11) Bruce Shneier will state (and I agree with him ) that current preventive anti-terrorist measures in the airports are pretty much useless. There are so many different targets for terrorists hellip;protecting just one of them (the airports) does not help that much. Next time they “ll put a bomb on unprotected buses or in a shopping mall. Read today “s news ndash; al-Quaida has regrouped and is even more dangerous than it used to be before 9/11. Bruce was right, you need to go after the terrorists and not after their targets.

Last week, an HR person from the most desirable employer that makes software has contacted me asking if I “d be interested in a position in London, Zurich or Moscow. I “m not looking for a new employer at this point, but I caught myself thinking that it “d be nice to spend a couple of years working in Moscow. Russian is my first language, and Moscow is considered to be a nice tourist destination. But pretty quickly I “ve asked myself another question, “Do you want to live again in the corrupted environment trying to find ways around to get by? Not really. rdquo;

So which are the countries were the criminal mentality is the norm? Let “s ask a rental car company called Budget. I had to rent a car in Germany a couple of weeks ago, and they gave me a paper to sign. That paper had a map shown below and the text warning you that your are not allowed to drive the car to the countries shown in orange, you are not allowed to take Audis, BMW, and some other cars to the countries having checkered background, and there is no restrictions for the countries shown in grey.

Budget gives you the exact answer about criminal-minded countries. Budget is not into politics, but they just know theft statistics and do not want to lose money regardless of how newspapers or travel agencies praise the life in any particular country.

Let “s apply similar rules and simple math, to the situation with the mindset of Americans based on the level of immigrants in this country. If there were no immigrants at all here, the mind set of 99% of the Americans would be the same as Bruce “s ndash; criminals are exceptions. Now let “s blend in 10% of immigrants from the orange countries ndash; now it “s only 93% that are law abiding citizens (I assume that three in ten immigrants will quickly change the way they think to the better). Spice it up with another ten percent from the checkered countries, and the level of the lawful people will drop from 93% to 89% assuming that 6 in 10 will quickly adjust.

Would it mean that accepting people from the grey countries would not change the mindset of America? Nope. Since about ten percent of the grey countries ” population are also immigrants, bringing 10% of grey people would lower the level from 89% to 88%.

With all this math I did not even touch the immigrants that are called Muslim fundamentalists. If other immigrants will eventually blend into the American society, fundamentalists do not even have any plans to do so ndash; they prefer to change America to fit their standards, and they won “t think twice if committing a crime is required to achieve this goal.

All in all, because of the immigration the percentage of lawful people in the USA drops pretty fast. What a science!

Remember “What a Country! rdquo; by a famous Russian immigrant Yakov Smirnoff? Several years ago I went to see his show in New York, and he said that when he was naturalized and became an American citizen, the first thought that came to his mind was, “I hate these immigrants rdquo;.

I am also an American citizen, but I do not hate immigrants. But my calculations and conclusions sound reasonable to me. Prove me wrong!

Real-world Flex for Java programmers, 5-day bootcamp

“Real-world Flex for Java programmers ” is an intensive, five-day hands-on training program for Web developers who need to create and integrate rich Internet clients written in Adobe Flex with enterprise J2EE applications. This is one of a kind hands-on workshop because during this week attendees will

create two fully functional Flex/Java applications, learn how to properly set up a Java/Flex enterprise project start using Flex Eclipse plugins that will turn your Java project into a Rapid Application Development (RAD) environment start working on their projects in the class under the guidance of two experts and certified Adobe Flex instructors Yakov Fain and Dr. Victor Rasputnis, co-authors of the book Developing RIA with Adobe Flex and Java .

Pre-requisites Each student has to bring his/her own laptop.

Students should have working knowledge of Java

Curriculum Day 1. Overview or Rich Internet Applications technologies, introduction to Adobe Flex, working with XML data, data binding, Basics of LiveCycle Data Services, working with remote Java applications deployed under Apache Tomcat server, creation of an RSS feed application.

Day 2. Creating reusable flex components, configuring LiveCycle Data Services, fundamentals of building Flex-Java-DBMS applications, logging and debugging, where the sessions belong, batching database operations, data-aware Flex components.

Day 3. You ‘ll be given an assignment to create a Java-Flex-DBMS application and will work on it in the class. You ‘ll learn how to set RAD environment, how to speed up and improve your productivity with Eclipse plugins for Flex and most importantly, you ‘ll get this CRUD applications up and running.

Day 4 and 5. You ‘ll start working on your own project in the class under the guidance of the Flex/Java mentor. If you are ready to work in this mode, bring your own sample database pre-configured for work with Tomcat, and we ‘ll help you to start your project from the right foot. If you are not ready with your own project spec yet, we ‘ll provide a sample spec and the database for you, and you ‘ll be working on this project under our guidance.

Location

New York, NY NYC Seminar and Conference Center (see http://www.nycseminarcenter.com/ )

For hotel info visit http://www.nycseminarcenter.com/visiting/hotels.cfm

Dates November 26 – 30, 2007

Tuition The cost of this bootcamp is $2495.

Early Bird price is $2195 (ends on September 26, 2007)

Each student will get free licenses of the following Eclipse productivity plugins ($846 value, see details at http://www.myflex.org):

ClearData Builder

FX2Doc

Log4Fx

Fx2Ant

InstructorsYakov Fain is a Principal Consultant of Farata Systems. He ‘s responsible for the Enterprise Architecture and emerging technologies. Yakov authored several Java books, dozens of technical articles, and his blog is hugely popular. Sun Microsystems has nominated and awarded Yakov with the title Java Champion. He leads the Princeton Java Users Group. Yakov holds BS and MS in Applied Math. He is Adobe Certified Flex Instructor. You can reach Yakov at yfain@faratasystems.com.

Dr. Victor Rasputnis is a Managing Principal of Farata Systems. He ‘s responsible for providing architectural design, implementation management and mentoring to companies migrating to XML Internet technologies. Victor is Adobe Sertified Flex Developer. He holds a PhD in Computer Science. You can reach him at vrasputnis@faratasystems.com

RegistrationThe number of seats in this class is limited so early registration is suggested. To register, follow this link .

Carcast #4: My vacation notes and more

Here ‘s the link to the MP3 of my fourth carcast (this is how I call podcasts recorded while driving the car).

1. Safe places to live in Europe

2. New 7 wonders

3. Time magazine has published a list of top 50 Web sites . Surprisingly, Google is only 12th in the top 25 sites you can ‘t live without.

4. Some of the recent Larry King podcasts are available at CNN ‘s Web site.

For all CNN “s podcasts see this page

5. I am featured at Adobe developer Spotlight Web page. See http://www.adobe.com/devnet/flex/articles/spotlight_yfain.html for details.

I “m not sure why I was selected by Adobe, but thanks anyway.

6. An email from India

Hello Sir, This is Hemanth from India. It was about an year back that I had misused the content from your site without any knowledge of copyrights and directly placed the content in my website namely : http://www.javaprogrammingworld.com

The reference to the discussion we had is in : http://yakovfain.javadevelopersjournal.com/read/next/1634919.htm

When I do a Google Search for my name this is the link that appears

Stolen Web Content [yakovfain.javadevelopersjournal.com]

Can you take back the charges and please get the link removed from the seaches. This is letting me down when people search for my Name in Google.

Thanking you,

Hemanth

7. Talking about missing deadlines. This is about Iraq (I made a mistake and named it Iran once during recording, but I meant Iraq there).

8. iPhone is out and I “ve played with it for five minutes.

Reading Eric Sinks book on the business of software

Vacations are meant for reading. This time I “ve picked a book “Eric Sink on the Business of Software rdquo;. This blog is not a review of this good book, but rather my own thoughts and comments inspired by reading about running a small company that develops software.

These comments are based on my own experience in this field.

I like these quotes from Eric “s book:

bull; “I like the smell of a freshly killed bug. rdquo; Very well said. I “d take it one step further and submitted to Wikipedia the following definition of a geek: “Software geeks are people with a smell disorder. Most of all they love the smell of a freshly killed bug rdquo;.

bull; “Good communication is not 50% listening and 50% talking, It “s more like 80% listening and 20% talking rdquo;. Very true. Can you listen to someone other than your boss or wife without interrupting for more then 3minutes? If yes, you have no problems with communication skills.

bull; “Your ideas are worthless rdquo;. Exactly! There is long and winding road between your great idea and a PRODUCTION QUALITY software product.

bull; “The purpose of 1.0 is to help pay for the development of 2.0 rdquo;. This means don “t try to put too many features into the first release of your product ndash; get it out the door and start making some money.

Eric “s message about not using your house as collateral for your business is not strong enough. My message is this: “Do not even think about it! rdquo;

One day you came home telling your wife, husband, or a domestic partner that you “ve got an idea about developing a software product that will change your life and make you rich. But to implement this idea, you need some cash ndash; let “s take a second mortgage to get this cash from your house. The only proper reaction of your wife, husband or a domestic partner is showing you a middle finger. No, there can “t be any special circumstances that would justify a chance to lose your house if you made a mistake. If this idea is that great, why won “t you try to convince anyone other than wife, husband or a domestic partner to shell out some cash for implementing it? It “s not easy? I know. But maybe this means that your idea is not that great? Fine, if you still believe that this software product is your future, go ahead ndash; start spending extra 5-6 hours daily (after your paying job) developing your product, or get a second job if you need to hire a software developer.

I had and still have lots of ideas, but over the years I came up with the following cold-shower technique. Let “s say, you have an idea of THE software product. Assume that you “ve already created it. Turn on the time machine and visualize the day when you “ve completed development of your one-of-a-kind-state-of-the-art software program. Congratulations, but what “s next? What are you going to do with it? Can you sell it to at least one person? Price does not matter. Can you make anyone pay even $10 for your creation? How are you planning to advertise it? Do you have even a slightest idea about marketing? Do you have the budget for marketing? Your Web page explaining the revolutionary effect of using your newborn baby will go unnoticed unless you will be constantly promoting it.

Eric “s book is about creating a small Independent Software Vendor (ISV) company that creates profitable software. He mentions that there are companies that do both ndash; develop software and offer consulting services, and this is how his company has started.

I “m also partner in a company that does exactly this ndash; we develop software components and plugins and offer consulting services as well. This business model allows us not to carry all eggs in the same basket. It has the following advantages over a product-only ISV:

1. Having two sources of income (consulting and product sales) is better than one. This is a no-brainer.

2. Both of these business activities complement each other dearly:

a) the money earned by consulting gigs can be used for the software product(s) development. Such internal investment is a lot more attractive than asking for venture capital (VC) elsewhere.

b) it “s a lot easier to get consulting gigs if you are also an ISV. The fact that you can develop some advanced software adds a lot of credibility to your consulting services. This really helps us to stand out from consulting body shops that try to bid on the same projects. Our negotiations of new consulting gigs are not marketing shpiels played by the sell reps in expensive blue suits, but rather highly technical conversations with perspective client “s geeks and CTO “s.

3. If our software product sales won “t be as good as predicted, we won “t need to turn off the light in our business. Armed with the knowledge gained during product development, our technical skills (so needed in the consulting business) are always up to date, which is pretty easy to show.

Venture CapitalTo use or not to use VC is not an easy question. VC does not come for free ndash; investors want a piece of the pie and bring stress and pressure to the life of your small company. If you are using internal funding, having a month without revenues is no big deal. But with external funding it may be a problem. Eric writes, rdquo;For a company that was built with somebody else “s money, operating at a breakeven is a failure rdquo;.

It “s not easy to get VC funding even if you want to go this route ndash; most of the VC won “t even consider investing into a small ISV unless it can show some serious annual revenue ($1M may not be enough).

I am on page 65 now, and so far I disagree with only one Eric “s statement: rdquo;I obviously need their [customers] credit card information, but I discard it immediately after the sale is complete. rdquo; I do not think that a small ISV should even bother writing a module that charges customers credit cards. This has to be done by professionals that are specializing in this business. We use PayPal for dealing with payments, which means that do not even know our customers ” credit card info. Our logic is simple ndash; we do not want to deal with even a single payment related issue. This is not our cup of tea, and let professionals handle it. We pay 2.5% percent or so from each transaction to PayPal, but we sleep well at night knowing that this area is taken care of.

PeopleA small ISV just can not afford hiring the wrong people (both employees and contractors). Wrong people are the ones that are either not technical enough or do not have proper communication skills. For example, we “ve had a technically sound worker who did not like answering emails. After our three failed attempts to get the status of his assignment, we had to fire the guy. Larger firm would never do something like this, but a small ISV just can not afford to have such a peron. Yes, it “s a pity that we “ve invested some time into this worker, but we can “t make success of our company dependent on the mood of one programmer (even if he “s has good technical skills).

We had to let go another person after about two month of employment ndash; he was not good enough technically. Hiring this guy was a mistake in the first place, we “ve lost several thousands of dollars on him, but we must cut the losses quickly, learn from our mistakes and move on. Large corporations have lots of dead wood, which burns large chunks of their profits. Small ISVs should not tolerate this.

Eric does a good job explaining the difference between programmers and software developers, and he makes a very important statement, “a small ISV should not have any programmers rdquo;. This statement might sound strange, but it “s not if you realize that programmers are the people who just write code and do nothing else. Not to be confused with people called software developers, which do many other things like talking to users, making decision, perform testing and ARE CREATIVE.

Our small ISV has people working in different countries, which makes having programmers (not developers) even a bigger no-no. Unless you can afford writing crystal clear specs for programmers, which small ISV can “t, having programmers is expensive even if you pay them relatively modest salaries. They may not understand (and care) why they were asked to write this piece of code. The worst scenario takes place because of the time difference: you give them an assignment TODAY, and TOMORROW they respond that they did not understand it. It “s a bummer. You “ve lost a day, which may affect your deadlines, and the salary paid to this person for yesterday “s work was paid for nothing.

My short vacation is coming to an end, and I “ve completed a half of Eric “s book. I like the book, and will finish it one day. But I will follow his own advice ndash; do not read one book on business of software ndash; read ten.

Carcast #3: Summer Reading and Excitement in Programming

No, there is no reason to justify 2-3 hours in the car on commuting. I “m continuing finding a way to make this time productive by listening to podcasts, but here “s my third contribution to the movement “Commuters Unite! rdquo;

For this third carcast (listen to the MP3 here: yakov_carcast3_summer_read.mp3) I picked up the following topics:

1. Is there excitement in software development

2. Summer reading

a)Tuesdays with Morrie

b) Mythical man-month

c) Secret and Lies

d) Object-Oriented Analysis and Design With Applications, second edition

e) Eric Sink ndash; free eBook Business of Software

f) Java for Kids, Parents and Grandparents

g) Why Zebras do not get ulcer by Robert Sapolsky. Purchase used book at Amazon.com. For example, today after listening to the recorded lectures by Robert Sapolsky I “ve got this book there for one penny plus $3.99 for shipping and handling. Here “s the copy of my order:

Order #:058-8168771-5950736 Shipping Method: Standard Shipping Subtotal of Items:$0.01 Shipping amp; Handling:$3.99 – Total for this Order: $4.00

Shipping estimate for these items: July 2,2007

“Why Zebras Don ‘t Get Ulcers: An Updated Guide To Stress, Stress Related Diseases, and Coping ( “Scientific American ” Library) ”

Robert M. Sapolsky; Paperback; $0.01

3. Listen to Robert Sapolsky: http://www.wnyc.org/shows/radiolab/episodes/2007/07/01

4. UPS IT disappoints.

5. Leonard Cohen. If you haven not heard his music yet I envy you, cause I already did. These are the video clips with some of his great songs:

a) Dance me to the end of love

b) I “m your man

If you are over 30 and do not like this music, there is something wrong with you. Period.

Commuters, Unite! Let “s help each other. If you know of some interesting podcasts that can make commute less useless, please leave a comment to this carcast.

SOA, RIA and the Human Factor

While delivering a talk on SOA I ‘ve asked the audience the following question, “What do you think is the driving force for implementing any technology or architecture in a decent size Enterprise? rdquo; The answers were typical ndash; better code re-usability, accessibility hellip; But I was looking for a different answer that has nothing to with technical merits of any technology. Based on what I see in the real world enterprises, the main reason of implementing SOA (or any other IT initiative) are career goal of individuals working in this organization.

People want to become more visible and move up the career ladder. Implementing SOA across organization can make enough noise to move them to the next level.

SOA Ground Up

The SOA in your firm can evolve from the ground up. For example, an ambitious architect attends conferences, goes through training, reads white papers, and now he truly believes that SOA is a right way to go. He “s aggressive and influential and managed to convince the CTO or CIO to allocate funds for this.

If you are not an architect but just a software engineer, you may try to start convincing your application manager, but typically application managers don “t want SOA. They are busy with business as usual: do not forget to call into the change management meeting, fix yesterday “s production bug, deal with an offshore team, attend 5-6 meetings a day hellip; They are firefighters. Imagine a firefighter that is putting out a fire hellip;Here you come in a clean white suit offering to sell some new bells and whistles for a fire truck hellip;

The chances of a software engineer to start SOA movement are very slim, really.

SOA Top Down

Another reason for SOA is this: your CIO went to a conference and attended a presentation of an energetic speaker, which clearly explained benefits of SOA over any existing architecture. This is the worst case. Subordinates will not resist – they also have career goals hellip;

Your CIO will come up with an SOA project plan based on available funds and resources, which means that this project is doomed. The fact that your CIO will never admit that it was a mistake makes things even worse.

All application groups will roll up the sleeves, will work hard and meet the deadlines.

But let me remind you a quote from a must read book “The Mythical Man-Month rdquo;:

An omlette, promised in two minutes , may appear to be progressing nicely. But when it has not set for two minutes, the customer has two choices ndash; wait it or eat it raw. Software customers have had the same choices.

The cook has another choice; he can turn up the heat. The result is often an omlette nothing can save ndash; burned in one part, raw in another.

SOA as a burner

The third reason for implementing Enterprise SOA is to burn some cash: we (IT) have $2M ndash; let “s service-enable all of our applications by the end of this year. Why $2M? It “s elementary, Watson! Because you need to burn $2M this year, otherwise you won “t get funding next year. Get some high-price items. Who cares that no real feasibility study was made? Just go with a well known vendor and get expensive software/hardware – your developers will figure out how to plug in that Enterprise Service Bus into your SOA.

SOA Maturity

I work as a consultant, and sometimes I have to interview technical managers to figure out if SOA is a realistic solution for their company, and how the CUSTOMERS of this particular silo application will benefit from implementing SOA in the firm.

What do I see ndash; all these people are working hard to fulfill their current obligations, to make sure that their applications are up and running in production, that support calls are answered in a timely manner, the offshore team is delivering, and on and on and on. And her I come in a white suite asking all these smart questions:

rdquo;How do you run business today? rdquo;

“What parts of your application are the candidates for being converted into services? No, SOA is not the same as Web Services rdquo;.

And these polite but tired people are looking at me, listening to me, they “ve seen already other architects trying to change the way they do stuff in their organization. Several similar initiatives have failed before, and here we go again hellip;I can not forget one technical manager ndash; this lady was having hard times even finding time for meeting with me. During the appointment she was polite, but looked tired and worn out. She “s a professional and was trying to answer me questions anyway, but her phone rang off the hook, he right hand was moving the mouse over the MS Outlook screen. “I “m so sorry, I need to take this call hellip; rdquo; And I “m thinking to myself, rdquo;What am I doing there? Does she needs SOA? rdquo;

Is your organization ready for SOA? Does your company have the right skills, infrastructure, SLA, SDLC in place? What methodology are you planning to use to identify services?

Do you have lots of third-party shrink-wrapped applications?

You know how to wrap up your CICS application into a Web Service, but are your mainframe developers willing to get re-trained? What about the governance?

Some architects start with purchasing expensive software and hardware assuming that the main part of the SOA initiative is accomplished. No, you can “t buy SOA.

Someone has to do a feasibility study for your firm (preferably external vendor) ndash; but this has to be an honest opinion of a qualified group of people. This study has to be convincing, it has to show if implementing SOA is the right choice at this time for your firm.

SOA maturity assessment is extremely important.

Technical Benefits of SOA

If someone will create an inventory of all applications of a large organization and the data exchange between these applications, it may look scary.

An app A provides data to app B. It would be nice if the app A would be able to easily send the same information to applications C and D as well, but this would require some data transformation. Currently, your people would just create and deploy a new ETL (extract-transform-load) processes for A2C and A2D data exchange.

But SOA can offer you a more elegant way by implementing an Enterprise Service Bus that would take care of the data routing and transformation. Someone said that the main reason for implementing SOA is reusability? Let “s look at the before-after SOA diagram:

The second diagram looks much better than the first one, but how much it “s going to cost your firm to switch from the first diagram to a second one?

How much would a reusable service cost you comparing to just writing new ETL scripts for each new connected pair? Is it worth the money?

Why reusable components would be expensive? Let “s talk about infrastructure, which is an enterprise level group that owns shareable software and hardware.

ESB Infrastructure

ESB requires a centralized group with proper skills. How this group will be funded (a slice of each project “s budget, internal consulting, a hybrid)? SLA must be in place that would require this group accommodate every application team “s needs in a timely fashion. The quality of service has to be clearly defined (is it 24×7 or what “s the max time the service can be down).

Do not forget about service versioning, which is not the same as application versioning. Some service consumers may be happy with the version 3.2 and you “ll have to support both 3.2 and 3.3.

Coming back to the human factor – do you have good relations with the ESB group? Personal relation will always get you farther that any SLAs combined. By the way, Joe Smith who runs the ESB group has his own career objectives and ambitions

The ESB group has to accommodate application group “s needs in a timely fashion. You need to make sure that Joe find time in his busy schedule and allocate his resources to your project “s needs.

If you keep your ugly point-to-point ETL way of connecting silo applications, you do not need to create this infrastructure and introduce yet another moving part into your rather complex enterprise architecture. Again, human relations between you and Joe Smith become crucial for the success of your SOA project.

Now you need to get trained and spend some time preparing your data for the input into the ESB in the proper format, specify the right output format for every new application and document it according your firm “s SDLC process. How quickly the infrastructure team will write and test the conversion script for your recipient application?

Yes, every new connection between the applications that you introduce adds a bit more spaghetti to the diagram, but you could have done all this with your own resources in a controlled timely manner without missing deadlines and jeopardizing your career. By the way, Joe Smith from infrastructure has his own career objectives. If your project fails, your yearly review suffers, now you need to find common grounds in achieving yours and Joe “s personal goals.

To SOA or not to SOA

This does not mean at all, that I do not recommend you to implement SOA in your enterprise, it just means that you need to be prepared and armed when it comes to dealing with all these issues. SOA is definitely a way to go in green field situations when you start automation of your enterprise from scratch.

I wonder if you are familiar with this diagram:

This is Minard ‘s Diagram of Napoleon ‘s March on Moscow of 1812. The width of the line shows the size of the army on the way to Moscow and back.

Napoleon was expecting greetings from Moscow authorities, but entered the abandoned and burnt city with no supplies and food for his huge army. His retreat was also a deadly enterprise because of an extremely cold winter ( minus;36 deg; F ), no grass for horses (most of them were eaten by the French soldiers anyway). You can read more about it in Wikipedia.

My message to you is this: “Do not repeat Napoleon “s mistakes in your SOA journey. Do not start it unless you have the right expectations and your infrastructure will definitely be ready.

Making Business Users Happy

Oh man, I almost forgot about your business users! Will they happily greet you at the gates of their cities? How did you convince them that they should shell out a substantial chunk of money for implementing your SOA initiative? Do they actually know about this initiative or you managed to get funding because you play gulf with the CEO of your firm?

If this is the case, I have bad news for you ndash; you can “t avoid contacts with business user during immersing your enterprise into SOA waters.

Do they give a damn about what architecture you use to give them the data? Not really. They will definitely ask you a simple question, “OK, I “ll give you X amount of dollars and allocate resources for a year for your SOA project. Will I run business differently a year from now? Will you provide me more analytical data in a more convenient form? Will my customer-facing sales force become more productive which will translate to more sales? rdquo;

SOA+RIA

To make end users more productive, we need to shift gears a little bit and recall that user experience really matter.

Think of iPod. How many people know the name of its competitor? What do you prefer ndash; Apple “s iPod or Zune from Microsoft?

The Zune has a bit more functionality, but iPod looks nicer and the user interface is cleaner. InformationWeek has published an article listing 8 alternatives to iPod . Have you even heard of them?

Tomorrow, huge number of people hopes to get a hold of the new Apple “s widget called iPhone. They want it now. $600? Not a problem. They want it now. Let me stress, it “s still a phone with the ability to browse the Web and a modest disk space for storing music. From the services perspective is not a revolution, it “s the User Experience that make it stand out and this is the main reason why people want it.

You may ask, what all this has to do with SOA? People like nice looking gadgets, and they like nice looking program interfaces too! It “s easier to sell SOA to your business users if the SOA client applications are convenient and slick. Especially this is true for the customer facing applications. If you sales representative comes to a prospective client with a rich-looking application clearly showing your products, their job becomes a lot easier. If you offer your firm “s financial analysts rich GUI interface with live chart and graphs to easily compare performance of two mutual funds, analysts will really appreciate it. You still need to program the services that will go and get the data, but having great presentation layer is extremely important.

When you create or modernize your application, do not just think about powerful multi-processor servers, multithreading, and ESB. Start redesigning the users experience ndash; it has to be available everywhere (at home, on the road and in the office), it has to be responsive, and it has to look better than client server application written it was ten years ago in Visual Basic and PowerBuilder.

Ten years ago we were thinking screens not servers. And this was not a bad idea. When Java was born, the client programming became complex, besides, Sun Microsystems and IBM wanted to sell server licenses, which has moved most of the Java development to the server side.RIANow we can talk about the rich Internet applications (RIA) that can and should be used as consumers to the services. The RIA term was coined by Macromedia back in 2002. I “m not sure if there is a formal definition of this term, but you can think of RIA as desktop-quality applications delivered over the Web with no (or close to none) installation required. Let “s turn on the time machine and go 20 years back. Mainframe with their dumb terminals dominates. The client portion of the application is a black screen displaying green and red text. Then, in the early ninetieth client-server application came about. The clients were not dumb anymore, rich looking GUI that utilized the processing power of the PC.

In mid 90th, Internet became popular. Plain looking pages had an ability to get all kind of information from a plethora of remote servers. From the GUI perspective, it was a pushback. Mainframe had black background with green letters, while Web pages had colored backgrounds, static pictures and the same text fields, buttons and rudimentary HTML tables.

Now the rich GUI is coming back again in the form of RIA. These are not page-by-page typical Web site, but full-fledged applications with rich controls, audio and video, with state stored on the client. Now the user get this nice looking application delivered to their PC without the need to go through a complex install process.

Today, RIA can be created with Adobe Flex or AJAX. Microsoft “s Silverlight is coming out later this year, and Sun Microsystems will offer their JavaFX RIA solution in 2008. OpenLaszlo can also be used for creation of RIA. All these technologies can be used for creation of consumers of the services in your next SOA project. Leading enterprises started using professional designers for wire-framing next generation Web applications.

If you are an architect of an enterprise SOA project, do not just think servers, clusters, and grid computing. Think of your business users. Give them something nice, and they “ll be helping you with your SOA-SHMOA efforts and will enjoy the new system as they already enjoy iPods and upcoming iPhones. SOA must improve user experience of your business clients ndash; do not underestimate the human factor.

Whats the right price of software?

I decided to write this post after reading a blog called “Black Label from Adobe rdquo;. This post has a photo of a black brochure that (according to the author of the blog) Adobe mails to marketing agencies in Russia. The brochure is titled “What would you do without Adobe in your life? rdquo;

This post is written in Russian, but I “ll translate the important part for you:

“Imagine, what do we feel when Adobe products are being used illegally. Install only licensed Adobe products. Do not take a risk, protect yourself from legal consequences of using illegal software.

Try to imagine that hellip;

hellip;someone has stolen your ideas you “ve been working on your entire life, and offers them as his own and receives an award for this hellip;someone just fired you without paying for your work hellip;someone has used your good reputation to sell his own products or services of a lower quality hellip;and after doing all this tries not to be accountable for this stating, “What “s the big deal? There is nothing wrong with it, everybody does it rdquo; hellip;

How would you feel?

In my opinion, sending these kinds of letters won “t help in the countries with very low salaries, especially if purchasing software is not a habit. Imagine a situation when you are giving a plate full of food to a hungry person saying, “Please do not touch the food until you “ll find utensils. rdquo;

This post has lots of comments made by Russian software engineers, and some of them make comments that they “d love to purchase licensed versions of the software, but they could not afford to shell out half of their monthly salary for a program. Another person writes that Microsoft sells their products in Russia for half price while Adobe sells CS3 in the USA for $998 and for $1500 in Russia (the author is not sure though who adds this markup ndash; Adobe or resellers).

But having the right salary is not enough for starting purchasing software. Here in America, programmers can afford purchasing software, but not all of them do so. Usually employers purchase the software and employees are just using it for free. Lots of American programmers make illegal copies of the software and use it at home. People are getting cracked versions of software or ust download serial numbers of the products from the Web.

Recently, one of the senior software engineers wrote that he does not want to use any software that is not open sourced. It “s a pretty weird statement. I “m sure this guy did not try to create and sell his own software.

Our company has created an open sourced code generator called DaoFlex. This was a command-line program with minimal documentation. It was well received and we decided to create a more user-friendly version of this program as a plugin for Eclipse. We knew how to do it, invested time and resources to coding and documenting of this plugin. Since we invested into development of this plugin with our personal savings, we decided that this will be a commercial plugin that we “d sell. To make the story short, in about 6 months the plugin was ready. We ‘ve spent more money on creating the Web site (www.myflex.org ) to support sales. We “ve written a license management module and ensured that the license will get expired after the trial period.

The pricing was the next question. How much should we sell it for? On one hand we wanted it to be affordable. On the other hand it should not be dirt chip either, because more sales means more support calls and the need to hire an engineer just for the tech support. And lastly, we “d like to at least break even by selling this product.

Anyway, we set the price of $399 for this particular plugin. People started purchasing this product, , and all in all we believe that the this product is not overpriced given the huge time savings that this code generator brings to any enterprise Flex/Java shop.

Summary

1. If our software will be cracked, I won “t get upset because it proves that we really created something useful.

2. Investing serious money into software protection is useless ndash; hackers will break it anyway (if they care).

3. Our main perspective customers are corporations from developed countries, and they usually pay for licenses – this is a huge market for us.

4. We may switch to a dual licensing model and will give our software away for free to individual users, but we ‘ll charge our corporate clients for this software.

5. There is a small number of people that will pay for the software even if they can get it for free, but this is a minority, and it “ll stay this way for a while.

6. I believe that in 10-15 years most of the software will become available for free.

7. Fighting with software piracy is as useless as fighting with marijuana. A well known comedian M. Zhvanetsky put it, “This is not a fight and this is not a result rdquo;.

8. Instead of wasting money on mass mailing brochures asking wolves to become vegetarians, just spend these funds on lowering prices of your products.

Disclaimer. Last month I paid $20 USD for a shareware program that I use for podcast recording. One of the announced features did not work. I sent an email to the vendor ‘s tech support, but they never got back to me. Oh well, you get what you paid for.

Answer my question right and get a free book

Every morning I see the same progress bar for a 30 sec or so. Sometimes I see it twice a day. If you ‘ll guess right what progress bar I ‘m talking about, I ‘ll send you a free signed copy of my book “The Java Tutorial for the Real World “.

Please send your answers at yfain at sys-con.com.

Update: We ‘ve got the winner – Ryan Powers. He did not answer exactly what the progress bar was shown, but at least he named the device properly – a coffeemaker. We have this coffee machine in the pantry room that shows a progress bar while it makes the coffee. I know, it ‘s crazy to have a progress bar there, but hey, it ‘s 21 Century!

We are teaching a one-day Flex bootcamp in ten days

We are teaching yet another one-day Flex bootcamp on Sunday, June 24 as a part of the SOA World conference. No prior knowledge of Flex is required, but you should understand object-oriented programming and XML. This is pretty intensive hand-on learning (attendees bring and use their laptops), but at the end of the day you ‘ll have a pretty good understanding of what Flex is about, what are the challenges of developing enterprise applications in Flex. You ‘ll also get familiar with some Eclipse plugins that can turn your Flex/Java project into rapid application development environment.

We ‘ve taught this bootcamp earlier this year, and we ‘ll teach it again in several other cities across the USA later this year. If you ‘d like to join us, Sys-Con Media gave me a little something – just enter yakovspecial as the coupon code to get $50 discount.

If you have to jump-start a new Flex-Java project, this seminar will definitely help you.

Carcast #2: Joels new book, MVP scandal and Flex 3

This podcast is my selection of the recent online news not to be missed

1. Joel Spolsky publishes a book “Smart and getting things done rdquo;

2. Microsoft threaten to sue an MVP Jamie Cansdale :

3. Adobe Apollo is called Adobe Integrated Runtime goes to beta

4. Flex 3 goes to beta . Most important additions: smaller size SWF, new advanced datagrid component, Flex Component Kit for Flash CS3.

5. David Heinemeier Hansson: “You are not in a f..ng plane rdquo;, Sergey Brin: it sucks when you are on the plane and…

6. Hackers are cowards

7. More on Paris Hilton

8. The Sopranos show is over

Update: after listening to this podcast one of my colleagues was surprised that Sergey Brin ‘s plane does not have an Internet connection