Archive for the 'Russian programmers' Category

Welcome new team in Bishkek

November 13, 2009

Please welcome our new team in Bishkek, Kyrgyzstan. They have just started but have already successfully completed a project for WordPress.

3

Right now it is just PHP developers – BUT we were literally amazed by their skills and knowledge. The new department in Bishkek is our second office that we have built using a model that was invented for our downtown office in Novosibirsk.

Review of Web Design in Russia

October 17, 2009

wdSmashingmagazine.com, which is an endless source of information and inspiration for Web people, has just published a sophisticated article about what Web design in Russia looks like. Smashing Magazine has chosen Russia to be the first in the series of “Global Web Design” and there really must be a reason for it!

The article is everything you ever wanted to learn about Russian Web design. It’s a bit of history and a lot about current state of things. It’s an interview with two Russian Web designers, describing life of Russian Web developer and telling you about differences between Russian and Western designs. It’s a showcase of creative agencies and freelancers (and I am sure they will get tons of work after this review!). And then, there is a huge list of Russian Web designs.

And… comments did impress me! Works of Russian Web designers got amazing feedback although some said they could not even think of Web design in Russia before!

Russian Programmers Are Champions

April 24, 2009

A team of Russian programmers from St. Petersburg State University of IT, Mechanics and Optics has won the The ACM International Collegiate Programming Contest.

It is the second year in a row when a Russian team of programmers wins this contest dedicated to finding the strongest programming team.

The programming tasks were aimed at solving problems in Java and C/C++. The Russian team has solved 9 of 11 problems at the shortest time.

Our congrats to winners!

Internet in Siberia: 404 Not Found

March 19, 2009

On Tuesday, we were lucky to visit Siberian Internet Week, probably the only conference that unites web-developers, clients and investors in Novosibirsk.

Having seen such large venues as TechCrunch50, I was expecting something like that somewhere at the back of my mind.

However… Well, below are some of our outputs that we carefully carried out of the conference.

  1. The local market of web development is focused on creating corporate websites.
  2. The local market of creating corporate websites is divided between 3 small young companies.
  3. Corporate websites are mostly simple 5-page sites on a CMS with catchy design and a couple of interactive elements.
  4. It is considered a great way of doing business to charge $30,000 for development of a corporate website. The development may take up to 9 months.
  5. There is a craze about making your website rank #1 in Russian search engines. People are willing to pay monthly fees per keyword.
  6. There is no clue about public relations management. Marketing efforts are concentrated on what’s hip.
  7. Professionals are not willing to share their practical knowledge with the audience.
  8. The audience, in its turn, has no idea about nice behaviour like standing up when asking questions.
  9. The presenters have no idea about ethics of public speech either: it is normal to present sitting in front of a laptop pointing at its screen.
  10. Schedule? Agenda? The popular people don’t need it. The unpopular people are reminded of time constraints.

In short, this all looked like either a vanity fair or a short catch up of old peers but… ugh… what d’ya expect for 15 bucks?

Software and Web Development from Design Point of View

February 27, 2009

When you decide to get your software or website done, you go outsourcing and hire professionals. What should an outsourcing company do to successfully complete a project? Well, the scheme of the process is pretty simple. Its realization is not too obvious in many cases but let’s dig a bit deeper into four components of it.

1. The core of development process

a. Business Vision Document

Every project must have its goals defined and you should be able to answer the following questions:

  • What is the business goal for you as the business owner?
  • What benefit will you get after launching your project?
  • What benefits will the project’s users get?
  • And the last but not the least, what users’ needs does it cover?

If you are satisfied with the answers, if you and the end users are happy, the project lives long. This is what the Business Vision Document describes: the business idea and the goals that the product is to reach.

It’s a very important document as it inspires the whole team: developers and designers get clear understanding of the project goals and work becomes more efficient.

So, you should start any programming or any new business with working out:

  • Business goals
  • Users’ benefits
  • Clear description of the product idea for team and customer

b. Functional Requirements Specification

Ok, general words about the product have been said, the idea is clear and it’s high time to step to the specification with detailed requirements, so that the development team and you have the same understanding of what they are going to create. A perfect variant is when you know what you want in every little detail and have documented it in the appropriate format that we understand. But it’s also ok if you have got only an idea. Our specialist will specify functional requirements in the process of communication with you asking certain questions that help to understand the details.

Functional Requirement Specification is the key document in understanding what the product is to do and what it is NOT to. If you don’t limit requirements, then development will last forever. But if they are specified, development process becomes clear and predictable.

c. UI design/Wireframes

We have described the functionality of how the product is going to work. But what should it look like? How to understand what the user experience will be like? What is the most efficient way to design the interface, so that users would be happy and enjoy their experience? All of it is under responsibility of the UI designer professional. On the base of the above documents – Business Vision and Functional Requirements Specification – they create wireframes, which is a schematic representation of the user interface, layout of all the pages and UI elements placement together with the description of their behavior.

Who needs it? In fact, everybody! You get the understanding of how UI works, graphical designer gets all needed details to create a unique style, look and feel of the interface, developers get much clearer understanding of the final look of the product.
Here’s what Wikipedia says about wireframing:

A website wireframe (also “web wire frame”, “web wireframe”, “web wireframing”) is a basic visual guide used in web design to suggest the layout of fundamental elements in the interface. Because of this they are often completed before any artwork is developed. When completed correctly they will provide a visual reference upon which to structure each page. Wireframes also allow for the development of variations of a layout to maintain design consistency throughout the site. This is an important part of the initial development stage because it creates user expectations and helps to develop an awareness of and familiarity with the site.
Creating a set of wireframes for any project also acts as a way to communicate with clients and stakeholders such as content creators, engineers, and developers. Over the course of a project the wireframing exercise functions as a stable base on which to consider changes, diverse user paths, and new requirements. The information architect and information designer typically use the wireframes as a meeting of the minds and as solid working documents on which to establish the language, content, and structure of interactions users will have with a given site or project.
The creation of wireframes also helps to define the positioning of global and secondary levels of navigation in a prominent and intuitive position, as well as providing an area for utilities such as helpful information and search facilities. When creating your wireframes it is beneficial to ensure that branding is central to the identity of a site so as to communicate the personality of the site.

d. Content/Copywriting

It’s not mandatory to have the content ready before the development, but with having all the common copywriting done and all typical content presented, design works go much more efficiently. In most cases the content is provided by the customer or a copywriter who works in close contact with the customer.

2. Pre-programming works

a. System Architecture

Well, having docs described above ready we’ve got about half work done: all business ideas are clear, functionality is clear, what it looks like – clear, content – got it! We are ready to implement out ideas into life.

Coding as any other development requires creating architecture of the project: DB schemes, the description of system modules and their relations inside the system. It is important to create such an architecture that allows future extension, upgrades, improvement. Thus, it’s a natural and important part of development.

b. GUI Design

Meanwhile, a graphical designer inspired by business vision, UI design wireframes and customer preferences of the look and feel of similar products creates the look and feel of the product we are developing, that is its style. Logo creation, website design, web 2.0 style, custom icons – any graphic work you need. A common mistake is when you require a GUI designer to design complex user interfaces requiring deeper analysis and UI design skills from the start. But when UI is ready, graphical designers feel free to do their best in turning wireframes into complete stylish pictures.

c. xHTML markup

Web projects require graphical pictures created by a GUI designer to be coded in xHTML (xHTML marked up) so that developers could later integrate functionality with design.

It’s much better if mark up is done before the functionality is implemented. It’s also applicable if done after, though the efficiency in most cases is doubtful.

3. Programming Implementation

Finally, all kinds of designing works are done and we can move forward to programming. As many of you might know, 1 week of coding works requires 1.5 week of design and documentation works. When more than a half way is behind, programming goes very smoothly since ALL details are clear.

4. Quality Assurance

If a project is big and sophisticated, you might need QA services. Our guys explore every little piece of the product and run different tests to make sure that it works as designed. (For more details about QA read about our services at www.sibers.com)
After we go through the process described above, we release the product and that’s pretty it. Any further questions?
The process summarized looks like a diamond:

scenarios-of-interaction

That’s Extreme Programming!

January 28, 2009

Last week my schedule contained this one among other tasks:

Tuesday, January 20Th at 1:30pm Eastern (00.30am on next day here, at Novosibirsk)
AdWords Beginner Online Training Seminar

This webinar was provided by ROI Revolution, a Google Analytics Authorized Consultant and Adwords Qualified Company. I’m a frequent participant of the seminars offered by this company, it’s really beneficial and unique opportunity for both beginners and advanced users. You can learn the basics or refresh your knowledge, you even can ask a question after the presentation or discuss it through the chat window during the session.

But on Tuesday I received a notification that warned me “that the webinar pushed back to Thursday, January 22nd at 1:30pm Eastern” and the reason was the weather forecast of the National Weather Service, which has issued a Winter Storm Warning for Raleigh, NC, where ROI Revolution offices are located. So, next day I have found images, checked the forecast for Raleigh, NC (ROI Revolution) and for Novosibirsk, where Sibers offices are located, also on the way to my office I took some photographs on the street. Let’s compare:

Raleigh, NC

Temperature: -1 °C

Snow: 8.89 cm

Wind: 11 km/h (North)

This is a quotation from MSNBC

“Ice turns North Carolina commute into chaos”

And here is the image:

Raleigh, NC Jan. 20

Novosibirsk, Silicon Taiga

Temperature: -32 °C

Snow: 20 cm

Wind: 3.6 km/h (North)

And here is the image. Morning, 10am Jan. 21, the central office of Sibers.

Sibers Inc. Office

Developers go to work. Remember, -32 °C

And I wonder, what kind of meteorologic conditions could prevent us from doing our favorite job. :)

For conclusion
“Sun is shining, the weather is sweet, yeah” © Bob Marley

Correct Software Development – What’s That and What’s It for?

January 27, 2009

By Alexander Nemtsov

What is meant by correct development of programming systems? What is right? Be it a primitive “piece of cake” or an exotic product using modern RUP, XP, UML, or something still more sophisticated, when can we praise the development as correct and what are the criteria?

The leading question in the title is somewhat similar to a widely discussed holy war of Delphi’s superiority over C++ or vice versa. Quite a number of folks will ignore it and try to prove that all this sophistication is nothing but a bubble in comparison to Visual Basic, the best programming language of everything ever written with a skillful pen of a man. You know, it is so simple without any classes or something odd used to work with a strange, almost swear word UML.

Let such advocates stick to their point. It is a highly thankless task to argue a person out of their opinion. It is not our mission as well to explain which tools help create programs. We will focus on how programs are created, that is, highlight the process in question.

Fancy that! John Doe, a creative programmer, appears at work by noon but presses his computer buttons with great enthusiasm till 3 a.m. When John is in a great mood, he can develop a very sophisticated algorithm, a real thing to boast about. Being out of spirits or humor, he just plays Quake or chats with his buddies. In his free time or even hiding from all-seeing eyes of the boss John sometimes tailors small applications, say in Java/C#/Delphi (you can choose any you like and tick it). The applications are supposed to automate routine work in the accounting department where his girlfriend/grandma/friend works (go on ticking the variant you like). Avoiding any novelties and any help of testers or analysts – the latter will want to be paid, won’t they? – John gets a decent fee, which can be spent on beer with friends, and is absolutely happy about his life in spite of the crisis and all that stuff. Do you think such an approach without a line of official documentation or a UML diagram in Rational Rose or Visio,etc. is a correct way of developing programs? I believe it is, and I am going to argue it. Just go on reading. We will be back soon.

Let’s start thinking in terms of the development goal. It might be a bit unclear, but it always exists. In the case of John he did his work meaning to create a necessary product and get a deserved fee. If the fee is paid, the goal has been achieved successfully. The fee can be not only the money but also some useful experience, one’s friends’ praise, self-satisfaction with one’s wide intelligence and what not. However, the end user does not have a slightest interest in the inside of the product or the development itself. Nor are they going to distinguish between Delphi and Java. The program should work fast enough, take up modest resources and be worth the money paid. And the last but not the least – to perform all the desired functions. In such a case John will get his money.

So, John aims at getting an adequate fee enough to, say, visit a pub/restaurant/bowling/Hawaii in return for his efforts. (If you still tick variants, it is high time you went for a cleaning tissue and wiped your screen.) The fee is the indicator of good and correct work. If John does not receive any complaints or face angry customers, they can be thought of to be satisfied. So, John is on the right way.

Let’s now take a small developing company with 10-15 employees who write programs for small businesses trading goods, or furniture, or something else granted that Excel cannot cope with the amount of data to be analyzed. Should our company use object oriented programming, UML, RUP, MSF or anything else equally complicated? There is a trap here. We cannot be sure if a company needs such tools unless we consider the fee for the efforts. Suppose the customers’ needs are met. Then why invest additional money into expensive courses or buying new licensed products?

It is here when we come to the crucial question asked at the beginning – what is meant by correct software development? I guess now you are ready to answer. Correct development is the process helping the customer to get profit. The choice between waterfall or an iterative process as well as the degree of formalism and sticking to traditional processes is important only in terms of your client’s business.

The series of articles to follow will describe making a product for our needs called Sibers Meetings. You will see how the product grew from «we have a problem» phase to a «ready to use solution».

Sibers Meetings dates back to the moment Sibers expanded its power to a new city office. The office showed up with a number of problems the main being everyday communication. Using a traditional telephone soon became ineffective as public address equipment did not serve the purposes of project meetings. We realized a need in some environment for collective discussions on our customers’ projects. It became the basis for the product in question.

(to be continued)

Hello, our name is HireRussians!

January 11, 2009

Recently reviewing reports in my Google Webmaster Tools, on the list “What Googlebot sees In external links to your site” I noticed a Japanese word and remembered an article about us written by Yukko Nitta in rosd.cocolog-nifty.com. That Japanese word was a transcription of our brand name HireRussians in Japanese characters. And then I thought, “What will our title look like in other languages?” Through the Google Transliteration service I have converted HireRussians into some languages of the Indic sub-group and into Arabic characters.

Here is the result, I think it’s interesting:

HireRussians in:

1. Japanese

ハイアルシアン

2. Arabic

هيريروسسيانس

Indic group

3. Hindi

हिरेरुस्सिंस

4. Tamil

ஹிறேருச்சியன்ஸ்

5. Telugu

హిరేరుస్సిఅంస్

6. Kannada

ಹಿರೆರುಸ್ಸಿಂಸ್

7. Malayalam

ഹിരെരുസ്ഷ്യന്‍സ്

How to measure your keyword performance

December 11, 2008

soykachko By the guru Alex Kachko

Google reveals a new helpful module for Google AdWords advertisers.

Today I have noticed a new tab on the Account Snapshot page: “Keyword Performance”.
This module is obviously intended for monitoring the keywords performance within exact date range.

Google's keyword performance tool

Also there are several kinds of report:

  • View All Keywords
  • Best Performing Keywords
  • Worst Performing Keywords
  • Keywords With no Clicks
  • Expensive Keywords
  • Competitive Keywords

You can choose which of them you need from the drop-down menu and read the description by pointing on the question mark in circle nearby the reports name.

Then you can put the appropriate date range, for which you want to run the report.

The statistics is shown in three rows of data:

  • Clicks
  • Imressions
  • CTR

    for first three kinds of report:

  • Clicks, Impressions and Avg. Position for Keywords With no Click report
  • Clicks, CTR and Cost for Expensive Keywords report
  • Clicks, CTR and CPC for Competitive Keywords report

    So, now I can check my keyword performance effectiveness within a few seconds. Sure enough, this option is very interesting, useful and, due to the providing clear instructions, intuitive.