Archive - 2015

Microservices: dreams and reality

The Microservices Architecture becomes more and more popular. The successful experience of our large-scale and well-known projects inspires us to try this approach in our enterprise applications. Deciding to implement the project in this style, we forget that systems like Ebay, Facebook, Amazon, etc have a long history, these projects are not initially implemented in the architecture, but gradually came to it.
When you don’t have the whole scope of the requirements or use cases for your system it is hardly possible to avoid errors in the design.Read More

Managing the software development budget

Truthful statistics of cost overruns

There is no secret that the cost overruns go closely with each software development project in the world. The average overrun amounts 40 – 50%. And 70 – 80 % of projects in the industry finish with overrun against the initial estimation.

The IT market is not only that is full of overruns. Big complex projects such as military and construction ones often get their budget over.

F-22 Raptor with the project cost overrun

F-22 Raptor with the project over budget

F-22 Raptor aircraft got over budget (initial $115M against effective $411M per a unit)Read More

The Web Continues to Live On

We all use the Web, and many have done so for the better part of a quarter century. At the same time, technology continues to evolve which it an exciting time to work within this ever changing industry. As Top Mobile Web Design Companies, we can say for sure that the web still plays a great role in various web applications. Despite the fact that today’s users primarily interface with mobile devices, all of the logical information is written on the server side. A web interface basis is necessary for the following, which are trending now in the wide world of information technology:
Read More

Social networks as a promotional tool: our experience of blog promotion

Needless to say, nowadays social media provides a great opportunity for every business to build relationship with the audience. By building presence on social platforms, you can get a chance to communicate with your potential customers directly, and if you manage to grab their attention, word of mouth won’t be long in coming. The great thing is that electronic word of mouth spreads more rapidly and massively than traditional word of mouth.

Of course, social media is not the only promotional channel. In one of our previous posts we’ve made a review of tools and techniques to promote your product. By the way, if you want to have such a guide ready at hand – be sure to download our software product promotion guide.Read More

CrISStal Eye time tracking software: how to monitor employee performance and report to customers effectively

We’ve talked about time tracking issues in software development outsourcing in one of our previous articles. As a Project Manager, you need to monitor time spent by your team on the project tasks. As a Customer, you need to know what you actually pay for. This is where time tracking tools can help.Read More

How to select a good server-side Web framework

In the previous article I mentioned that we’ve decided to use Jetty+Guice+Servlet combination in our Java Web application. What was it motivated for? Why have we refused to use Jersey? Why have we decided to implement a separate Resource class for every Web action and even for every HTTP method?

When everyone of us selects a tool to work with, we all set some requirements to it, and it should meet all requirements to get a green light. Everyone knows them – these are such obvious things as code readability, ease of debugging/testing, following traditional coding practices (OOD, patterns) etc. But today I’ll tell you what requirements I set specifically for a good server-side Web framework. I’ll be happy to work with any technology stack meeting these key requirements, and Jetty+Guice+Servlet is just one of the options.

Briefly, the requirements are:

  1. Extensibility
  2. Common response format
  3. Automatic exception handling
  4. Transactionality of a request

And let me explain you what do I mean by this.

Read More

Request-scoped resources with Guice and Servlet

Our team was looking for a very simple Java Web framework for one of our projects, and we found the next combination of tools very fascinating:

  • Eclipse Jetty Web server for HTTP request interception
  • Google Guice for dependency injection
  • Java Servlet for request handling

They work together pretty well, and there is a plenty of articles on the Internet covering this topic, so it is easy to get things started. But none of these articles explains how to scope your code in a single HTTP request. By design, servlet is always a singleton. Guice refuses to register servlets as request-scoped objects, so, the whole point of request-scoped object instantiation is being lost. Due to this issue, we’ve almost decided to abandon an idea of using low-level servlets and switch to Jersey framework, which wasn’t very attractive for us as well, for different reasons. But a deeper look to Guice API has saved my day.

Read More

Tips for successful third-party systems integration

At the moment, there is a great number of various applications already developed. Most of them are connected with providing processed information, taken from different third-party sources.

First of all, let’s review common services that newly developed applications are often integrated with:

  • Social networks, such as: Facebook,Twitter,Google+,LinkedIn;
  • Delivery services: UPS,USPS,FedEx,DHL,Canadian Post,EMS;
  • Online payment systems: Authorize.net, PayPal, Moneybookers, Alertpay, WebMoney, QIWI, video streaming services – YouTube, Vimeo.

We have significant experience with third-party systems integration. And, as long as, this process is rather difficult, sometimes we face various issues. Our successful experience of resolving such issues allows us to develop some recommendations for dealing with third-party systems.Read More

Tips for customers looking for non-typical software solutions

What is a non-typical solution?

When we call a solution non-typical, we mean it has non-standard functionality or a unique concept. A non-typical solution, as a rule, is based on business processes within a Customer’s organization, or on an innovative idea.

If we talk about a unique business idea, first and foremost, you need to explore the market and make sure that such a solution hasn’t been created already. Believe, this is very frustrating to develop and launch a project, and encounter an existing analogue in the market. Besides, by checking the market beforehand you won’t waste your time (and your Provider’s time) on “reinventing the wheel”.

If we talk about an existing product or a business process you are recommended to conduct an audit and analysis. You can do it yourself or contact IT consultants.
Read More