> On this page...
> Archive
> Categories
> Search
> Archives
| | Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|
| 29 | 30 | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 10 | 11 | 12 | | 13 | 14 | 15 | 16 | 17 | 18 | 19 | | 20 | 21 | 22 | 23 | 24 | 25 | 26 | | 27 | 28 | 29 | 30 | 31 | 1 | 2 | | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
> Links
|
Outsourcing of complex
programming jobs requires utmost care while selecting an outsourcing partner. A
partner should be able to help you assemble a team of skilled and
result-oriented developers. Skills, technology expertise, and approaches
generally vary from one outsourcing destination to another. So, before
selecting an outsourcing company, you first need to decide on the country. If
your project implies resolving serious problems, complex coding and building sophisticated algorithms, you have come to the right place. Russian
programmers are widely recognized as leading specialists in these fields. While
other countries are good at writing code and they get the job done, “when it
comes to writing complex computer programs, the Russians are absolutely
tops," says Steve Chase, president of Intel Russia.
The simple reason for this
is the free higher education available in Russia. It seriously increases the
number of qualified graduates. The Russian education system is remarkable for
its strong focus on developing mathematical and engineering skills. That is why
Russian computer programmers are well known for their sophisticated
mathematical skills, as well as for their strong computer science and
engineering backgrounds. According to World Bank statistics, Russia ranks third in the world for per capita number
of scientists and engineers, but ranks #1 in the world in the number of scientists and engineers
involved with complex Research and Development projects.
Russian students have won
the top four places in 2008 International Inter-Collegiate Programming
Contests. In total wins, two Russian Universities rank right after Stanford
University and California Institute of Technology. Overall, Russia ranks second
only to the U.S. in the number of contests won.
This technology expertise
of Russian developers makes them very attractive to companies planning to
outsource. Large technology firms, such as Dell Computer, Intel, Siemens and
Motorola have already established development centers in Russia. Boeing,
General Electric, IBM and Citigroup are among the companies that outsource
complex software projects to Russia.
Obviously, companies often
start out by outsourcing simple projects, such as Web-based application
development, finance and accounting, supply chain management, e-commerce,
e-mail and messaging systems. Once a successful relationship is established,
then these same companies will outsource more complex projects such as database
systems, wide-area networks, or large-scale Web sites.
Large scale and complex
projects are characterized by evolving project specifications as the
implementation progresses. This requires developers to be more than just
coders; they must also be problem-solvers. They need the ability to give a
clear estimation of the amount and complexity of work that needs to be done.
“Indians always report the best possible scenario and the Russian firms always
the worst possible scenario. The customer felt the Russian approach was more
appropriate for high-risk projects,” says AMR Research analyst Lance Travis.
Russian and Indian software
development companies are often compared in terms of their ability to develop
innovative and complex software projects. The objective of any software project
is to find a solution to a business problem. Therefore, the service provider
needs to have creativity, business acumen, flexibility, and the ability to work
when not all project details are specified. Some analysts say that Indians are
more skilled in the field, while others have experienced quite the opposite.
According to Daniel Marovitz, the Deutsche Bank's COO of technology for global
banking, "Most Indian firms are very process-focused and, if something can
be 'template-ised', then that's very good. Things like Six Sigma and ISO are
part of their DNA, but that doesn't lend itself to innovation. For innovation,
testing new ground with new software, Russia is a pretty good place."
This great talent pool of Russian developers, with their
strong mathematical background and technology expertise, makes Russia the
number one choice for outsourcing your complex projects. Find out for yourself.
Give us a small project, and soon you will be asking us to help develop innovative
and non-standard software solutions.
1) In Visual Studio, click on “Tools.” Then click on “Connect to device.”
In the “Connect to device” window, select the emulator
desired, such as Pocket PC 2003 SE Emulator. Click on the “Connect” button.

You
will see the “Connecting …” window. If everything is OK, you will see the message
“Connection succeeded.” Click on the “Close” button.
2) In Visual Studio, click on the “Tools” button. Then click
on “Device Emulator Manager.” In the “Device Emulator Manager” window, you will
see the Datastore tree with the emulator selected. The selection is marked with
the green arrow:

3) Right click on the selected emulator and choose
“Cradle.” This imitates putting the device on a cradle:

4) After this, the ActiveSync will run and allow you
to set up a partnership. If you do not have the program, you can download ActiveSync.
Select “Guest partnership” to avoid synchronizing with Outlook. Click on “Next.”

After this, ActiveSync gets connected to the emulator:
5) Go to Windows Explorer, copy the your_application_title.cab
file and paste it in My Windows Mobile-Based Device.

You will see the ActiveSync message:

Click on OK to copy the cab file onto the emulator.
6) On the emulator, go to “Start,” then “File Explorer.”
In the “My Device” folder, you will see the your_application_title.cab file. Click
on it to install the application in the “Program
Files/Your_application_title” folder. 
7) On the emulator, go to the “Program
Files/Your_application_title” folder and click on the application icon.
The application is running.
If you do not have Device Emulator
Manager in the Visual Studio Tools menu,
you can run it the following way:
- In Visual Studio, click on Tools
> External Tools. Click on the “Add” button.
- In the Command box, use “…” to locate and select “dvcemumanager.exe.” By
default, it is installed in the “C:\Program Files\Microsoft Device
Emulator\1.0\” folder.
- If you do not have Device Emulator, you can download Device Emulator
version 1 and Device Emulator version 2.
There is a well-known problem with exceptions in C++ constructors. Only
objects that are constructed completely are deleted in C++. Usually, the
developer is supposed to take special measures against the possible memory
leaks. So let us look into what Symbian offers and what else can be done to
solve the issue.
Suppose, there is a class:
class Container
{
public:
Container
()
{
thePart1 = new Part1();
thePart2 = new Part2();
};
~Container()
{
delete thePart1;
delete thePart2;
};
private:
Part1
*thePart1;
Part2
*thePart2;
}
If object c of the Container class is being created as a local object:
void test ()
{
Container c();
…
}
and the exception arises on c
construction, then c’s destructor is not
called.
The results are that Part 1
and/or Part 2 are not deleted, and a memory leak takes place.
Symbian proposes
to push the pointer to the newly created object onto the special stack – the
so-called clean-up stack. In case of an exception, the clean-up stack is
unwinded, and every pointer on it is deleted. So we could redesign our
constructor the following way (for Symbian):
Container::Container ()
{
thePart1
= new Part1();
CleanupStack::PushL(thePart1);
thePart2
= new Part2();
CleanupStack::Pop(thePart1);
};
Of course, it works and looks better than:
Container::Container ()
{
try{
thePart1 = new Part1();
thePart2
= new Part2();
}
catch
(…)
{
delete
thePart1;
delete
thePart2;
}
};
But it could be made easier and more elegant by changing the pointers
to smart pointers:
class Container
{
public:
Container
()
{
thePart1 = new Part1();
thePart2 = new Part2();
};
~Container()
{
//
nothing to do!!
};
private:
auto_ptr<Part1>
thePart1;
auto_ptr<Part2>
thePart2;
}
Thus, we decrease the risk of memory leaks on exceptions. At the same
time, we don’t have to release our resources in the constructor. It seems like
we don’t need to use CleanupStack in Symbian at all – just develop an auto_ptr
class instead:
template<class T>
class auto_ptr
{
public:
auto_ptr
(T *p = 0): ptr(p) {}
~auto_ptr()
{delete ptr;}
private:
T
*ptr;
}
Murano Software teams are comprised of dozens of skilled and
experienced engineers. Every day, they face new challenges while developing our
clients’ software products. The ability to find the right solution to a problem
is one of the crucial elements that influence performance, readability,
scalability, completeness and other qualities of a software product.
Since there are a lot of technology companies among Murano
Software’s clients, the ways that our engineers solve diverse issues can be of
high interest to our readers. We will cover the challenges with .NET, Java, Ajax, Ruby on Rails,
SharePoint and other
technologies.
You are welcome to comment on the posts. Our
developers will be happy to share their experiences and discuss the issues.
Today, we start with Exceptions in Symbian C++
Constructors.
In the IT sphere, high quality of a product heavily
depends on the abilities of its creators. According to many analysts, the
number of companies that decide to outsource their search for high quality
developers is increasing. That is why we will start our blog post series by
looking into the quality of the technology resources that can be found in
Russia.
As the Business Line columnist Vipin V. Nair
notices, “Russia draws its software strength from its enormously talented pool
of people.” In Russia,
the abilities of IT developers are significantly enhanced by an extremely
strong educational system, which is recognized all over the world. While, for example,
“In India, students learn generic software skills, Russian students are taught
advanced mathematical and computing techniques, which allows them to perform
hard-core technical work,” says Vipin V. Nair. More than 40% of university
degrees in Russia
are in technology and science.
Russian software companies do not miss the opportunity
to leverage that great manpower. According to a research paper by Market-Vision
/ EDC,
77.4% of Russian software companies employ PhDs, and in 45.8% of those
companies, PhDs make up 10% or more of their staff. So by dealing with Russian
outsourcing vendors, you get the opportunity to benefit from employing these
highly educated engineers.
Russian developers’ strengths are recognized by local
market tech circles and global ones as well. A 2006 study by the FCREUE, the Haas School
of Business and the UniversityCalifornia concluded,
“In terms of education and experience with complex software development tasks,
Russian programmers are likely to outrank all others.”
of
Most analysts stress that very capability of Russian
developers to manage tasks of high complexity and to find fresh and
groundbreaking solutions to knotty problems. “Exceptionally well-educated
developers who can perform extremely complex jobs, and a great understanding of
engineering and financial services domains, are core strengths of Russia's
outsourcing industry,” remarks William Martorelli, principal analyst at Forrester.
According to another study run by by Ernst &
Young, Russia beats several other outsourcing locations in terms of skills and
training of its IT workforce. You can see Russia’s top position from this
table. 
One of the ways for specialists to prove their
knowledge and skills is to partake in high-profile contests. Russian technology
students regularly win international programming contests. Russia has won
the world's most prestigious competition, the Association
of Computing Machinery (ACM) International Collegiate Programming Contest,
5 times over the last 10 years. For comparison, the USA
has taken the first place only once over the same period, while India has not
appeared on the top of this contest at all.
When reading this article, you may think, “Well, the
Russian resources are talented, but their number is probably more limited to
choose from, than, for example, in India.” Then here is some data for you. As
it is written in the paper on BRIC layers by Economic Research from the GS
Institutional Portal, Russia,
being almost 80% smaller by population than India,
its main competitor, produces even more tertiary graduates (16,765 graduates in
Russia to 16,095 in India). In per
capita terms, Russia has by
far more graduates when compared to India
(115 graduates per capita in Russia
to 16 graduates per capita in India).
As for technical PhDs, Russia has almost as many of them as Germany does and
even in absolute terms leaves India far behind (about 12,000 technical PhDs in Russia to about 5,000 of
them in India). Russia also
outranks India
in the number of workers with tertiary qualifications in science and
engineering. Thus, you are sure to find in Russia enough
specialists for all your projects to be realized.
Nowadays, Russia is increasingly considered one of the most attractive outsourcing destinations. SAP, Microsoft, IBM, Google, Boeing, Motorola, Reuters and IBM are only a few of the many global companies that employ local engineers and set up development centers in Russia. eWEEK named the Russian outsourcing industry as one gaining maturity and showing promise. The Indian outsourcing industry has to watch out, Business Line warns. Russia attracts technology outsourcing buyers, global companies and start-ups for a number of reasons.
The most substantial reason is a wide pool of talent with a high level of proficiency in diverse realms. “High-level thinking, strong English skills among key staff and executives, and a desire to break new ground on leading-edge projects are intrinsic to the Russian developers," says the eWEEK columnist Stan Gibson. This benefit is successfully combined with the lower cost and attrition rate that Russia offers.
There are also secondary factors that influence tech directors’ decision to outsource software development projects to Russia. Among them is cultural affinity of Russians with Americans and Europeans, the individual approach of Russian companies toward clients, the creativity and collaborative thinking of Russian developers, the Russian government’s new positive attitude toward offshore software development.
These factors can greatly influence your choice of where to assemble your offshore software development team. To make your choice easier, here, in our blog, we will publish a series of posts casting light on the reasons for outsourcing to Russia.
We are constantly improving our Web site to show you
the essence of Murano Software. But how can you understand what the
company is like if you don’t see its brains and soul: the specialists?
When
working with clients, technology capabilities and services play a
great role, but the most important thing in software outsourcing is the people
who conduct the development process. Сhoosing the software development partner
across the ocean and time difference, you probably would like to know who stands
behind the company and drives its success.
Please visit the new section on our
Web site – Our
Team-Photos – to see some of the developers who turn the program code
into the software solution for our partners’ businesses. There you can find
photos of our working activities, corporate events and major holidays. We tried
to show you the most memorable moments of company’s life and some personalities
that stand behind our success.
“McKinsey Quarterly” asserts that despite that the Chinese and Indian economies develop rapidly, their economy systems have strong barriers to growth. At first sight India and China are very different: China’s main traits are a powerful banking sector and larger population while India’s strength is its equity market. Their financial systems also have different histories and evolutions. India’s financial and economic systems formed when they were still a part of the British Empire. Their strong banking system is mostly due to Britain. China’s financial system formed in the second part of the twentieth century when its government proclaimed a liberal course of economic development.
These two different countries with their differing economic systems have one common trait: a strong government sector that allows authorities to intervene in market evolution and influence the allocation of capital. As a result economy growth slows down. Chinese state-owned enterprises receive the lion’s share of investments in order to fulfill the plan of employment. The Indian government expends large sums for development of agriculture and the defrayal of the fiscal deficit. In return private companies of both countries receive less investment and hold in the development. McKinsey suggests that China and India should create innovative financial systems that will increase efficiency and widen investment opportunities.
Different sources prove that Russia has a strong private sector and rich opportunities for investment; so many analysts suppose that this country is safe from crisis. Further development of the Russian economy may be reached by professional management, the growth of productivity and nonintervention of government. Russia has major potential of growth, especially in the IT sector that grew by nearly 20% in 2006. In absolute indexes Russian IT market yields to China and India in this industry. On the other hand, the IT sector, especially offshore outsourcing, grows rapidly. So in the nearest future Russia intends to occupy the deserved place in this sphere.
|