Archive for February, 2011

Grey Line

Five years ago three seasoned software developers created a new company and called it Farata Systems. Fa was taken from Fain, Ra is from Rasputnis, and Ta from Tartakovsky. Five years is a good milestone for any firm, and in this article I’ll tell you our story.

When people create a startup, they often have a big idea, sometimes a business plan and an exit strategy (typically, to be acquired by a larger company for an X amount of money). But was Farata a startup in the first place? Here’s the quote from Wikipedia:

The phrase “startup company” is often associated with high growth, technology oriented companies. Investors are generally most attracted to those new companies distinguished by their risk/reward profile and scalability. That is, they have lower bootstrapping costs, higher risk, and higher potential return on investment. Successful startups are typically more scalable than an established business, in the sense that they can potentially grow rapidly with limited investment of capital, labor or land. Startups encounter several unique options for funding. Venture capital firms and angel investors may help startup companies begin operations, exchanging cash for an equity stake.

We didn’t have any investors. We were profitable from day one by working as billable consultants for corporate clients.
We didn’t have any business plan. We had our own software, but it brought us peanuts in terms of monetary rewards. We didn’t have money to invest into finding a professional salesman to offer our skills to potential new clients. We didn’t have any exit strategy. We didn’t even have an elevator pitch to quickly explain what are we doing. What did we have and why did we create this company?

We had good noses. It was the time when Adobe acquired Macromedia and released a software product for development of Rich Internet Applications (RIA). The name of the product was Flex, and even though its first version has been created earlier, Adobe made some smart marketing changes to make it affordable. We decided to bet on this product. We started with writing technical articles and blogs about Flex – in early 2006 there were no or little information available on the subject. Then we wrote an advanced book on bringing together Flex and Java in the enterprise world.

Each of us had billable hours (and the rates were pretty high), but we also started bringing other people on board and offering their service to our clients. How can you sell a consultant to any company without having a salesforce? We did it by PR. Consistent writing of quality technical materials and speaking at various gatherings (from 5 people in a local user’s group to large audiences at major conferences) got the word out – we started getting requests for help in development of enterprise RIA. Using the terminology from software engineering, we’ve implemented the Inversion of Control design pattern, which is also known as a Hollywood Principle: “Don’t call us, we’ll call you”. We were patiently waiting till someone would call us.

But publishing advanced technical materials was a double-edged sword. While perspective clients knew that Farata’s experts can be engaged for solving heavy-duty tasks, other consulting companies were simply placing their inexpensive consultants on never-ending enterprise projects.

First, we started getting requests for help only with non trivial situations, for example,
- we are going live with our online game in a month, but when more than two people are playing they experience serious slowdowns
- our enterprise application works fine, but once in a while some users are losing messages
- you don’t need to sell us Flex, we know it’s good for UI, but can you improve the reliability and customize communication protocols to fit our needs
- we’ve chosen Flex to avoid page refreshes, but our pilot application requires 40 seconds just to load the first page

We were helping everyone, but didn’t grow much. Placing a couple of consultants on a project at a large company was fine, but it wasn’t a major change from the growth perspective.
At some point, we started getting requests for bidding on projects. If a large corporation was about to start a large project, they’d ask several small vendors to bid on it. We’d sign a non-disclosure agreement to receive a Request For Proposal. Being experienced architects from our past lives, we could properly estimate the efforts required for successful completion of the project in question. We could foresee the issues and warn the perspective client about them. But we were not experience bidders – we were telling the truth.

For example, once we gave a $250K estimate for a project, while our competitors offered to do the same job for $50K. Now we know – they applied such strategy just to get their foot in the door and to win the bid. Six months down the road we’d get a call from the project manager of that corporation complaining that the promised $50K turned into $500K and the project arrived to the dead end. Interestingly enough, we didn’t learn anything from that lesson. If we believe that the project would cost $250K, we’ll say so. But now we also offer to reduce the scope if there is a shortage of funds.

Coming back to promoting ourselves, I’d like to tell you about the role of technical viagra in our growth. Two of us are Adobe Certified Instructors and all these years we were teaching classes to corporate clients. Adobe develops excellent courseware and we use it a lot. But we also found a niche that was not taken by anyone. We became the only company that started offering advanced custom curriculum in developing rich Internet application with Flex and Java. As an example, during the last two years we were teaching public zero-marketing technical seminars in New York, Boston, Toronto, London, Moscow, Brussels. These seminars didn’t make us rich even though we remain in the positive cash territory, but they gave us a chance to spend two-three days in front of fellow developers proving that we are technically sound. You can’t BS for two days in a room filled with programmers. Have you ever had to go through a technical job interview that lasted two full days? No? We do it on a regular basis. These public training events are like technical interviews for us and usually we receive a call or two from our former students, “Guys, we need help with our project”. This can be a year after we met, but hey, it’s better late than never.

At some point we won a large project (no, we didn’t lie in the proposal). How thin can you spread three experienced consultants? We couldn’t be at the same time in three different places. We had to bring more people on board to make a profit and do the job. An hourly rate we’re getting from our clients minus some profit margin would be the rate that we could offer our consultants.

Between 2006 and 2008, consulting rates offered for RIA development have substantially decreased. It became difficult to charge premium even for the expert-grade services, and we switched to a blended rate model. If someone needs a senior developer with Flex/Java skills, we offer a resource (hate this word but this is what the industry understands) that consists, say, from 10% of myself (or one of my partners) located here in the USA and 90% of a developer working from Eastern Europe.
This model works well for us. This gives peace of mind to our clients who know that their project is in good technical hands while staying within the budget. Such outsourcing model works because we (as opposed to large corporations) cherry pick each and every developer we hire from overseas. Today, 25-30 people work on Farata’s projects.

We’ve also learned that for a small company, selling programming tools for software developers is literally impossible. People want free stuff and they get it from us. We’ve open sourced a number of productivity tools that go under the name Clear Toolkit, which became yet another PR-tool for our company.
On the other hand, we’ve created a spin-off startup Surance Bay that’s specializing in development of the software for insurance industry. Today, Farata serves as an investor (!) of that startup, which started bringing cash in a record time, but this can be a subject for another article.

Two years ago, a top manager of a large company decided to create his own company. I knew the guy and he came to me asking for some details of starting a small business. While he didn’t have any experience of running a small company he knew rather well how to run a large department. He started with a business plan and a lot of financial calculations. He asked me, “Where are you guys planning to be in five years? How big are you planning to get? What kinds of revenues do you have in mind? What’s your exit strategy?” He was a very experienced manager and quickly realized that I was not ready to answer all these questions. Finally, he said, “Are you guys just created a company to build a nice life styles for yourself?”

He was right. Without knowing it, we wanted to have nice life styles while doing what we enjoy. Five years after I can tell you that we’ve achieved this goal. We still don’t have any exit strategy because we are not planning to exit. We are enjoying our lifestyles, developing cool software, helping our large and small clients in achieving their goals, we are writing books, teaching and learning, attending conferences, raising kids, traveling. What else to wish for? God bless America!

Yakov Fain

Comments (7)

 

Grey Line

We are wearing multiple hats at Farata Systems all the time. For our corporate clients, we are the Rich Internet Applications shop that does project management and software development within constrains of the client vision and the product timeline.

But we also work on the projects for startups in which we are major stakeholders. There we apply our sense of what world becomes and what RIA are meant to be.

I will be talking about one of those experiences during Flex360 in Denver this April. In particular, I will be talking about application for the financial/insurance industry we have been working on for the last 18 months.

It started as a typical AIR desktop application with PDF integration and some Java back-end workflow. As application grew, the clients (200K-1M of prospective paid clients) demanded availability of the functionality on the desktop, web and mobile devices. In this series of the articles I will talk about solutions we had to build in order to provide them with consistent easy to use platform that essentially brings us to the next frontier of the application development.

Enter “virtual solution provider”. A typical insurance agent is 50+ years old (technology challenged) high school graduate with GPA of 3.0 (as your financial adviser) and a single handed to manage both client expectations (CRM) and insurance companies/state bureaucracy (workflow and compliance). We consider it a huge opportunity for an integrated solution (most of the insurance agencies still howl trunks full of paper insurance forms with them) that has to be simple enough so any agent can do it. The insurance agents are not the same users as the corporate ones – they work for a distributed MLM with extremely high turnover rate.

The client base is almost consumer grade. They can have a laptop now with the Internet connection that works 70% of the time. Tomorrow they would rather have a tablet and touch-screen devices – they need simple devices. The phone integration is essential as they spend 50%+ developing leads. Phishing and real-time advertisement by current media/internet companies are the ways they get most of the new clients.

That’s why we build this insurance application as an example of what the platform for the future consumer applications should be. The Internet moved publishing/media closer to consumers and made it more personal. The most successful companies (Google, Facebook, etc) turned hundreds of millions users into their implicit workforce. The next generation of applications needs to do the same. Rather then come with a fixed workflow it has to capitalize on the everyday experiences of the human race and become an expert system in any application domain. That experience should guide your workflow in transparent way, when and where you need it.

The articles in this series will talk about changes we need to make to the features we are embedding in the applications so they become a ubiquitous part of our life.

Anatole Tartakovsky

Comments off

 

Grey Line

Just finished going through the slide deck from the teleconference dated January 24, 2011. It was titled “Is Java A Dead End For Enterprise Application Development?” This document has been authored by Mike Gualtiery, Senior Analyst from Forrester. If the slide deck’s title has a question mark at the end, the author’s blog simply states that Java’s a dead end.

Bashing Java is popular these days, but is it justified? I don’t believe so. Unfortunately, people who state that Java’s dead are not the people who use the latest Java technologies day in and day out. Sure enough, people are overwhelmed by the amount of news generated by iOS and Adnroid, while Java (the most popular programming language) gives a perception of a stagnating platform.

But in this presentation the author made a number of statements that show that his perception of Java platform is based on the status of the platform several years ago. The main issue is that he’s not aware of how things are done in Java EE 6, which has been released more than a year ago. All accusations that Java developers have to use a “frameworks galore” slowly but surely becomes a history. I had a chance to learn it first hand while working on my Java book published earlier this month.

While the author states that “Java innovation failed to reduce complexity” referring to JSP, JSR, and Struts (?!), in my opinion Java EE 6 is a light-weight and elegant platform. No more heavily configured EJBs. Here’s all you need to create a session EJB. Check this POJO – it’s a stateless session EJB:

@Stateless
public class HelloWorldBean {
 
    public String sayHello(){
        return "Hello World!";
    }
}

No need to write any XML. Just call the method sayHello() from any other Java class. Below is a Java servlet that can be used as a client for our session bean (don’t look for missing JNDI lookup – the @EJB injects the bean into a servlet):

@WebServlet("/HelloWorldServlet")
public class HelloWorldServlet extends HttpServlet {
    
  @EJB HelloWorldBean myBean;
 
  protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
 
       PrintWriter out = response.getWriter();
       out.println(myBean.sayHello());      
  }
}

JPA 2.0 replaced entity beans. Why do you need Hibernate if in Java EE 6 here’s all it takes to define the Employee entity mapped to a database table:

@Entity
public class Employee{

  @Id
  @GeneratedValue(strategy=GenerationType.IDENTITY)

  @NotNull  
  @Size(max=10)  
  public String firstName;
 
  @NotNull
  @Size(min=2, max=20)  
  public String lastName;

  @Column(name=”boss_name”)
  public String managerName;

  @OneToMany (mappedBy = “employee”)
  public List<Address> adresses = new ArrayList<Address>();  
 
}

I’m not going to bore you with Java code, but it’s really easy now. The statement of the Forrester’s analyst that “Java was not designed to increase productivity of business application” doesn’t bear much weight after you look at the code samples above. Java EE 6 doesn’t stand on the way of application developers. Just put your business logic in the sayHello() method with no or minimum boilerplate code to add.

The author correctly blames Java Swing for being overly complex and JavaFX for failing to present a competitive product. Today this is true. But this is just a small part of a solid platform that enterprises rely upon during the last decade.

Mr. Gualtiery suggests using “better alternatives” as he put it. Namely, Business Process Management (BPM) tools, BI, Business rules management systems. He forgot to mention though, that you’d need to rob a bank first to acquire them. And after this part is done, you’ll still need to do some scripting plus a lot of voodoo dancing around these generic packages to make sure that they perform well with YOUR business application.

He claims that “Newer programming languages are designed to make certain apps easier”. Guess what’s the name of this new language? Ruby on Rails. First, this is not a language, but a 7-year old Web-application framework. Second, during all these years it was not able to become a noticeable tool in the enterprise development field.

The author also mentions some other programming languages forgetting to mention that they run on Java Virtual Machine (JVM), which has been greatly improved over the past years.

The last couple of slides contain recommendations. The author claims, “If you are using Java successfully, there is no reason to abandon the ship right away”. Thank you very much! And then, “If you are using Java unsuccessfully, then look first at your software development life cycle… The platform you use is only as good as people and process…” I can’t agree more. If your organization is full of mediocre software developers, switching Java to any other tool or programming language won’t make a difference. Here’s yet another vague recommendation “Don’t think how you can develop Java applications faster. Instead, think how you can develop applications faster. This opens your mind to look outside Java to these alternatives.” I wonder, how much Forrester charges for this report?

Disclaimer. The next verse has been written neither by me nor by the Senior Analyst from Forrester.

Dm F G My mind is clearer now at last all to well
F G Dm I can see where we all soon will be
Dm F G If you strip away the myth from the man
F G Dm You will see where we all soon will be

Dm Em Jesus!

Yakov Fain

Comments (1)

 

 

doxycycline dosage for lyme disease
viagra australia no prescription
manufacturer of lipitor
low dose doxycycline
viagra brand buy
order levitra online
how can i get viagra
doxycycline staph infection
what alternatives are there to viagra without a prescription?
amoxil pediatric dosing
5 mg propecia buy
alcohol flagyl
cipro overdose
lasix and alcohol
viagra orders
canadian propecia
how long does viagra last
dosage doxycycline
online pharmacy viagra canada
viagra cheap generic
female viagra pills
pfizer zithromax
generic levitra vardenafil
what is lipitor
how does lipitor work
synthroid diarrhea
doxycycline succinate
ingredients in synthroid
quality cialis soft tabs
herbal viagra offers
best price viagra
buy propecia 5mg
buy name brand viagra
c diff flagyl
cheap viagra fast
levitra sales from canada
cialis 5mg
fish doxycycline
is cipro an antibiotic
where can i get cialis
cipro hc
canadian pharmacy viagra legal
c diff flagyl
clomid 100mg twins
american made viagra
free viagra samples uk
doxycycline for bronchitis
buying clomid
natural lasix
viagra female
flagyl gel
doxycycline package insert
doxycycline brand name
cialis online for canadian
doxycycline photosensitivity
lasix edema
viagra deals
clomid weight loss
zithromax 250mg
buy lipitor online
cheapest viagra uk
lasix indications
free cialis
cheapest propecia
5mg cialis
lasix use
effectiveness of clomid
doxycycline and sun
cipro chlamydia
viagra prescription uk
alcohol and cipro
viagra sales uk
strep throat doxycycline
lipitor side affects
internet viagra
lasix cost
online cialis
clomid calculator
buy propecia online without prescription
viagra no prescription overnight
viagra buy uk
clomid dosing
lasix renal failure
100mg clomid twins
lipitor ingredients
american made viagra
50mg viagra retail price
alcohol and zithromax
viagra tablet no prescription needed
amoxil for dogs
propecia orders
propecia 5mg
cialis daily price
female viagra pills
canadian pharmacy discount code viagra
cipro uti dosage
tuna viagra
viagra us pharmacy
cialis buy
buy vardenafil get free viagra
chinese viagra herbal
synthroid interactions
cipro uti
buy viagra without prescription
doxycycline staph
propecia online pharmacy no prescription
propecia without a prescription
cheap cipro
accutane side effects for men
cialis online pharmacy
doxycycline for cats
flagyl for sale
epididymitis doxycycline
buy viagra online without a prescription
canadian pharmacy cialis generic
cialis soft pills
viagra female
propecia generic
flagyl coverage
synthroid headache
cialis brand name
propecia pills
cialis 20 mg 10 pills
doxycycline food
cipro dosing
doxycycline hyc 100mg
cialis dosage
ordering viagra overnight delivery
low price propecia
effects viagra
lasix sulfa allergy
cheap herbal viagra
where to buy propecia
viagra next day delivery uk
zithromax z-pak cost
viagra uk cheap purchase buy
viagra sildenafil citrate
lipitor patent expires
lipitor patent expiration date
uti antibiotics cipro
synthroid and breastfeeding
natural alternatives to viagra
doxycycline blepharitis
lipitor discount card program
how to buy cialis
budget cialis
buy cialis in canada
viagra side effects men
clomid pct
synthroid dosing
best prices on generic cialis
cheap amoxil
lipitor patent expires
flagyl nausea
cipro flagyl
clomid effects
doxycycline bacterial coverage
cost of doxycycline
order clomid online
cipro ophthalmic
viagra delivered one day
recommended sites for cialis in canada
viagra non prescription
discount canadian cialis
how to get viagra online
order levitra
buy cialis profes
doxycycline side affects
mexico viagra without prescription
doxycycline contraindications
where buy viagra
clomid serophene
clomid weight gain
viagra.com
cheap levitra online
buy viagra in australia
us viagra
cialis alternative
effects of lasix
side effects of viagra on men
buy viagra online without prescription
flagyl and cipro
get cialis fast
viagra pills uk
lipitor dangers
propecia sales canadian
uses for doxycycline
buy viagra cialis levitra
viagra fast delivery
synthroid t4
can i buy viagra over the counter in the uk
cipro lawsuit settlements
doxycycline in dogs
best prices for 20 mg levitra
cipro side effect
synthroid hypothyroidism
doxycycline doses
clomid pregnancy symptoms
viagra original
10 mg vardenafil online
clomid 50 mg
purchase viagra online
substitute for lipitor
mrsa doxycycline
zithromax in pregnancy
purchase synthroid
aus viagra
chlamydia zithromax
united states viagra
get viagra online without prescription
cipro otic drops
cheap cialis
lipitor blood pressure
lipitor prices
cialis for less 20 mg
lipitor discount card program
synthroid medication
lasix manufacturer
viagra generic
viagra buy uk 50mg
synthroid calcium
cialis 30 mg
cialis india
brand viagra medicine
accutane canada
viagra on line sale canada pharmacy
cipro back pain
shop online viagra
5 mg cialis
doxycycline 100mg acne
canine doxycycline
hyclate doxycycline
order online viagra
buy viagra and receive it in canada fast
viagra cialis levitra canada
clomid sale
doxycycline heartburn
does propecia work?
buy brand name viagra cost
side effects of flagyl antibiotic
synthroid hypothyroidism
canadian cialis uk
original cialis
generic cialis next day delivery
synthroid 50 mcg
doxycycline for prostatitis
viagra sale online
cipro rash
cheapest viagra prices
cipro travelers diarrhea
online generic viagra
cipro for travelers diarrhea
doxycycline use
nexium and pregnancy
cheap fast generic viagra
online lipitor
viagra online reviews
propecia best price no prescription
canadian pharmacy cialis 5 mg
propecia 5mg. online
lasix nursing considerations
kamagra generic viagra
tuna viagra
genuine cialis online
where can i get viagra
zithromax breastfeeding
buy cialis from canada
levitra sell
but viagra online with mastercard
doxycycline photosensitivity
what does doxycycline hyclate treat
viagra substitute
how to find reputable canadian cialis
viagra prescription uk
canadian pharmacy viagra cheap
lipitor cholesterol
viagra natural
doxycycline alcohol consumption
ordering real levitra