Java programming
| Posted: August 14th, 2011 | admin
Tags: java developers, Oracle, software development
On July 28 Oracle announced the release of the Java Platform Standard Edition 7 (Java SE 7). That’s the first release of the Java platform since the time when the control over the platform development moved from the Sun Corporation to Oracle.
Java SE 7 is the first big Java release for the last five years. The release is the teamwork of Oracle engineers and also the global community of Java developers who participated in the development of the platform within the OpenJDK community. In the process of development 9,494 bugs were fixed, 1,966 updates were introduced, 9,018 package corrections were released, 147 installations were performed and 4 requests for Java (JSR) specification were sent.
Java SE 7 includes the changes aimed at improving the platform efficiency and simplifying routine tasks of a programmer. Some efforts were also undertaken to make standard operations require less code and the language syntax be more transparent, which enables easy listings reading. Also the release presents the improved efficiency of the dynamic programming languages working on JVM, such as Ruby, Groovy, Python and JavaScript. The new interface for developing applications for multinuclear systems enables the breakdown of the tasks for concurrent processing between any numbers of processor’s nucleus.
Now Java developers, interested in the new language version, can start working with Java SE 7. The popular integrated development environments (IDE), such as NetBeans 7.0, IntelliJ IDEA 10.5 or Eclipse Indigo with the Java SE 7 plug-in, already supports new Java features. By the end of the year, the JDK 7 support will have been realized in the Oracle JDeveloper environment.
According to Oracle, there are about nine million java software developers in the world. The number of platform downloads is about one billion a year and the number of devices working with Java exceeds 2 billion.
Software development methodologies
| Posted: July 2nd, 2011 | admin
Tags: agile, IAOP, IT, software development
The International Association of Outsourcing Professionals (IAOP) published the results of the annual rating “The Global Outsourcing 100″. In 2011 four Belarusian IT software development companies appeared in the rating. How have they managed to do it? What is the result of such success?
One of the main reasons is using new effective technologies in the sphere of management, agile being one of them.
Recently agile software development is considered to be panacea for all woes turning any IT project into successful. Many western clients give preference to the companies working with agile.
The main peculiarities of agile are:
• risk sh
aring – at present there are two main types of interaction with a client – fixed-priced and time-and-material contracts. In the first case all the risks on the project fall on the contractor, while in the second type the client pays for the actual work, which works little on the final result;
• predictability – the refusal from long-term planning as well as the absence of figures on schedule and cost of the product in general;
• regular feedback – the customer can introduce comments and alterations practically from the beginning of the project;
• easy and quick reaction to changes in functional requirements as well as priorities;
• selforganization – which allows escaping from the excessive management structure.
Why don’t companies want to switch to Agile?
The first reason is conventionalism: many companies think it’s not a good idea to change the familiar scheme which works and bring profit. The second reason is lack of experience in using the new system and the fear of failure in getting non-achieving immediate results. The third reason is additional resources for creating the working team and supporting its highly productive state.
Thus, in order to minimize the risk one a software development company should ope the ground for implementing Аgile on various levels: management level and development level. This process can take from 3 to 6 months but the effect in the long term is worth doing it.
.Net programming
| Posted: September 9th, 2010 | admin
Tags: holiday, software development, software testing
Today – on September 9 – testers from all over the world are celebrating their professional holiday – Tester’s day! We’d like to congratulate all people who test applications, who fight with various bugs and errors and wish them all the best!
This holiday has its own legend. According to it, on September 9, 1945 when the scientists who were testing the computer Mark II Aiken Relay Calculator, they found a real small moth between the contacts of the electromechanical relay and one of them pronounced the word ‘bug’. The scientists had to make a report on the work done where the term ‘debugging’ appeared for the first time. Now debugging is the process of finding and eliminating bugs which lead to incorrect performance of the system and failures.
Software testing is not an easy job. The tester should be able to think as a user, on one side, and, on the other hand, analyze the system’s behavior, input parameters and obtained results as an engineer who takes part in software development.
Happy day, testers!
Project management in IT
| Posted: October 31st, 2009 | admin
Tags: Quality Assurance, software development, software testing, Web development
Application testing is a process involved in all life cycles of software development. It implies review and planning of the product requirements, preparation and performance of changes. As a result testers reveal inadequacies and errors. And trying to get a systematic view, every person in software development company actually plays the role of tester. If you look at IT-project as at a person, then roles of different specialists can be described in the following way:
• Project Manager is a backbone and the autonomic nervous system
• Programmers are a skeleton and motor nerves
• Analysts are organs of sense
• Testers is conscience
Software Quality Assurance is often considered as a synonym of testing, but this method actually was called upon to prevent errors beforehand, rather than finding and fixing them. Quality in this sense should be considered as a characteristic of finished product (software or web-application).


So, testers have to verify even requirements specifications, project plans and analysis, not just program code and interface. Software testing is particularly important in critical systems. For example, the Therac Radiotherapy apparatus (1985) irradiated 6 people with lethal dose of radiation due to the lack of code verification and validation. Or Mars exploration rover (1999) brought the loss of 125 million dollars because of crude common measurement system between developers. And even during the electronic elections in Estonia there were some problems because of poor high-load testing. These examples and practice of software and web development companies shows that all testers should follow basic principles from ISTQB test documentation and other sources.
Project management in IT, Software development methodologies
| Posted: March 26th, 2009 | admin
Tags: flexible, large software project, project management, software development
I’ve started this topic in the previous 2 posts (part 1 and part 2). Here are some more thought regarding the project management for large software projects.
Usually software development doesn’t imply the use of any version control system. All other approaches could be applied or not to individual projects. It dependents on the specifics of developed system, on many other factors, the most important of which, in our opinion, ability to control all the approaches, availability of necessary skills and resources and quality of the developed system.
There is a separate discipline of software engineering, which deals with this kind of organizational objectives without any reference to methodology — it is a configuration management. Configuration Management is a core discipline that helps to manage and control requirements specification, the process of software project development and information on the status of individual tasks and the entire project as a unit. The project success largely depends on how the process of configuration management was streamlined. On the one hand it can save the project, but on the other hand it can bury it.
Glossary of IEEE 610 describes configuration management as “a discipline applying technical and administrative direction and surveillance to: identify and document the functional and physical characteristics of a configuration item, control changes to those characteristics, record and report change processing and implementation status, and verify compliance with specified requirements”.
But it’s a rather formal definition. The following software and tools that programmers face on duty every day will allow you to understand how this definition works in practice:
* Subversion; CVS; Git; Mercurial; Bazaar; Microsoft Visual SourceSafe; ClearCase; Perforce.
* Ant; Nant; Maven; Phing; make; nmake; Cmake; MSBuild; Rake.
* JUnit; NUnit; CPPUnit; DUnit; PHPUnit; PyUnit; Test:: Unit; vbUnit; JsUnit.
* PMD; FxCop; PHP_CodeSniffer; PyChecker, lint.
* JavaDoc; phpDocumentor; CppDoc; RDoc; PyDoc; NDoc; Doxygen.
* CruiseControl; CruiseControl.NET; TeamCity; xinc; Atlassian Bamboo; Hudson.
* Jira, Trac, Mantis, Bugzilla, TrackStudio.
I hope this information was useful for at least some of you and will highly appreciate comments and any other kind of feedback.
Project management in IT, Software development methodologies
| Posted: March 19th, 2009 | admin
Tags: flexible, software development
Beginning of the article read here.
Programmers look at the same project from the different position (in comparison with managers) and they focus their attention on other issues: architectural design, database, UML-diagrams and all these stuff. In theory it means “to spend the whole day in order to fly in 5 minutes”. If you take these steps as number “0” in software development process, in practice the project will begin with the step number “1” – with the development. It is not quite correct approach, but it’s the only possible approach when developers can’t give the exact answers to the questions put at the very beginning of software development. (Tell us about the other possible way out, if you know it 
Agile methodologies are known as attempt to solve these problems (and we like this approach, we even used it in our corporate brand – Oxagile). But agile methodologies work mainly on organizational level. Programming level is connected with other issues.
Read more
.Net programming
| Posted: October 30th, 2008 | admin
Tags: .NET platform, ASP.NET, C#, software development, Web development
Visualstudio2008 and language C# on the .NET platform is often used for software development. The .NET absorbed all advantages that were available in the market of software development. The .Net platform uses the opportunities of XML and Web in full. It can be called one of the best platforms for development, especially when web-services are concerned.
The sight into web development is completely revised in .NET programming, powerful and suitable in use is given to our attention technology of ASP.NET, that noticeably avoids developments of rivals. To write code on ASP.NET is simpler , much quicker, and decision is got excellent on productivity.
C# is an object oriented language of programming for the .NET platform. It was developed by a group of developers under the aegis of Microsoft Research (SCIENTIFIC RESEARCH INSTITUTE at the Microsoft company).
Read more
Software development methodologies
| Posted: June 15th, 2008 | admin
Tags: agile, agile development, Extreme Programming, RUP, Scrum, software development
The Heads of all IT outsourcing enterprises understand that to be competitive in the computer programming market one has to deal with software development methodologies. Here comes the question:
- What is a software development methodology?
- What for do we need to use software development methodologies?
A software development methodology is a complex of processes, rules and procedures executed by a development team and the whole outsourcing enterprise employees to achieve the main goal of web development: high-quality software.
Here are the benefits of using software development methodologies:
- Number of defects is reduced;
- The project is ready in less time;
- Improves created software quality.
And now it’s time to tell what software development methodologies exist. I guess the best way not to waste time of the web developers (and all other readers of the following article) and list only up to date methodologies. They can be divided into two groups:
- Engineering methodologies (plan-driven methodologies is another name of the group)
- Agile methodologies
Engineering methodologies
The core of these methodologies is software production based on non changing specification. Rational Unified Process (RUP) is the most often used engineering methodology .
Agile methodologies
The main core of the agile software development is in adapting the process of product construction throughout its life cycle. During agile software development the project can be easily adjusted to custom changes throughout its development.
Extreme Programming (XP programming) and Scrum are the most often used methods of agile development.
As a conclusion I have to admit that that it’s up to you to decide whether invent a new software development methodology or use an existing one. But there is no doubt that a software development methodology should be used.
Software development methodologies
| Posted: October 2nd, 2007 | admin
Tags: agile, software development, Software development methodologies, Web development
Agile web development is a model for developing web applications. Its concept is similar to Agile software development, but is limited to web applications. It is more efficient and powerful within a short timeline than other models; it incorporates face-to-face communication and includes technical personnel as well as customers as part of the team. Agile web development is used by project managers, business analysts, it is based on clear goals, planning, and iterative delivery. Agile web development ensures the successful completion of the product at the end of each iteration.

The agile web development model follows the stages of planning, requirement analysis, designing, coding, testing, and documentation developing parallel. Successful interaction reaches toward to successful completion of application because of customer involvement hence we never met with the condition where we have to change the product due to changes in requirements, correct decision has to be taken by keeping customers confidence and informed choice, minimizing delays of the product. All the tasks are performed within the given period, with just enough documentation to be effective.
• Small time line.
• Refined Team.
• Clear planning.
• Short Documentation.
Due to the regular involvement and feedback from the customer, the software tends to be more error free, more requirement oriented, and more user friendly. Also, such tasks as planning, development, design, coding, testing, etc. are performed simultaneously, driven by the customer’s demands. It also reduces the development cycle time. The application documentation is less formal, to reduce the time taken and to be more human friendly.
Agile methodology is similar to the iterative, RAD Prototype model, but it has its own principles of developing a web application and it has introduced the concepts that overcome the problems associated with the existing models.
For instance, the waterfall model frequently changes the requirements during the development life cycle, which means it fails whenever the requirements are changed at the end or not properly understood or implemented according to the customer’s current feedback. In the iterative incremental model, the development process moves according to the iterations. Requirements and business process analysis, designing, and functional modification must be added to each version or iteration of the system to satisfy the customer’s feedback, and at last it is integrated into the system. Agile development adopted the key points from an iterative model but differs from the iterative one in relation to the timeboxes. An agile development life cycle pays attention to a shorter time duration for completing the IT project. With the help of timeboxes, developers can easily estimate the problem and correct it within the given time, so that at the end of each iteration, it is modified.
Companies are moving towards Agile as it results in more Customer Satisfaction and hence there business.