The peculiarities of .NET and C# programming language

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).

The importance of QA team building

QA team work

QA team work

I think there is no need saying how important the team work for the QA department is. The thing is that the team members that are assigned to a certain project do not always posses all the required skills to work efficiently together. What I’m trying to say is that i.e. two senior QA engineers, one medium and one junior can be way more efficient than four senior QA Engineers. How can it be so?

The answer lies in the team members’ personality qualities and characteristics. If a manager knows those characteristics of his\her employees then he\she knows who should be assigned to which project to reach the maximum efficiency possible. Let me show you an example of how it may be realized:
QA team:

1. Team Leader – Senior QA Engineer who has strong management skills (project life cycle monitoring, critical management, client interaction, etc), tutoring skills (able to explain the ‘wh’ questions – who, what, where, what for, etc.). An approximate 50/50 combination of extra- and introvert, so that he/she is able to cover large info volumes without losing any small details on the way.

2. Team member 1 – Medium QA Engineer with good technical skills to perform all kinds of non-functional testing (if needed), explain the system behavior peculiarities in a understandable manner (i.e. by switching complicated programming terminology to the simple ‘human’ language), assisting the team leader in NFR testing planning. Here it’s better to look for a 75-80% introvert person as we need extra attention to details and a lot of patience.

3. Team member 2 and 3 – Junior and Medium QA Engineers with good knowledge of manual testing for performing FR testing, writing all kinds of testing documentation (TC, TCS, checklists, etc.). Mostly extravert people will suit here better for covering large parts of the project scope in a shorter period of time. If the project is a complicated one then one extravert is replaced with a major introvert for a comprehensive detailed testing (so that ‘none’ gets missed).

To sum it all up I’d like to say that if the work needs to be done fast and with good quality then there is a great need in team planning before assigning team and giving roles to its members.

Agile Software development Ecosystems

February 11 – 13, 2001, can be called the day of The Manifesto for Agile Software Development forthcoming. It declares that from then on people who deal with any software should strive for finding better ways of developing software by doing it and helping others do it.

Through this work we should come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiations
  • Responding to changes over following the plan.

This Manifesto hasn’t been recognized as the answer to all problems, but it has given a push to real software development process improvement and elaboration.

DOLPHIN SMART COMMUNITY BUILDER

A social network service focuses on building online communities of people who share interests and activities, or who are interested in exploring the interests and activities of others. Most social network software services are web based and provide a variety of ways for users to interact, such as e-mail and instant messaging services.

YouTube, MySpace, Odeo, Flickr, Match and Facebook – all in one solution named ‘Dolphin smart community builder’. Developed for creating dating sites, social networks, content sharing portals.
Dolphin is absolutely free.

Dolphin is based on: PHP, MySQL, Ajax, JavaScript, Flash, Java.
Official site: http://www.boonex.com/products/dolphin/. Demo site: http://www.boonex.com/products/dolphin/doldemo/
Dolphin software contains most popular features peculiar to a common social network. Among them:

  • Blog
  • User profile
  • Forum
  • Audio/Video sharing
  • Friends invitation
  • Private messaging
  • User groups
  • Voting
  • And much more

This solution is optimal for rapid start of your own social network (of course, if your goal is to get free solution).
There are many analogous solutions:

  • Pligg
  • PHPIzabi
  • Elgg
  • PHPFox
  • Other

Also there are services for creating social networks.
Among them:

  • Ning
  • Kickapps

This software does not provide the source code (are not open source), they provide API. All interaction is held using XML and JSON. Solutions are not free.

Agile Requirements Management

Software projects start with requirements. But between 40% and 60% of software failures and defects are the result of poor software management and requirements definition. Managing requirements can be a challenge because we have been taught to capture all requirements up front, and achieve customer sign off. One of the most visible differences between agile software development and traditional software development is the way that we approach requirements. Although Agile Development is much more flexible than more traditional development methodologies,

Internet Explorer 8 for developers

Today Internet Explorer 8 Beta 2 is available for downloading. Microsoft will release the final version of Internet Explorer 8 at the end of this year. All of you know that it will be more standards-compliant in the content rendering behavior. But also a new version of this popular browser will have a lot of features which can be useful for users and web developers.

There are some of them:
• Accelerators
• WebSliences
• Search providers
• Search suggestions
• Developer tools
• InPrivate browsing
• Deleting data for not favorite sites
• Browser security settings
• Ajax navigations
• DOM storage
• 6 connections to the host (instead of 2)
• CSS 2.1 support
• W3C ARIA support
• JSON Support
• Javascript improvements
• XMLHTTPRequest improvements
• And others

And I’m going to tell you about the features for developers in detail.

Why do testers become the best project managers?

There is an opinion that only web developers can become project managers (certainly if they choose such a career). This is not so.

This post will change the opinion to another one: testers are the best project managers. Funny? Let’s think about it a little.

Who is a tester? A tester is a special person, who stands at the last point of the web development lifecycle. He is the last person between the web developer and the customer.

So at first, to be a tester means to be responsible for not only quality software, but almost for the success of the whole project.

Let’s think more. A tester is a person, who doesn’t develop anything himself. He just checks. So he knows better than the whole project team, how the things should be and almost the only one who sometimes is not afraid to say what is incorrect.

At last, a tester is the only person who knows how is will be better for the end-user to work with the product. This is not the web usability question only. As a tester himself uses the product thousands of times while testing it, he is the only person who can say, what is done conveniently or not. So a tester tells how it should be.

Do you see here much alike with the project manager’s work? Same as a tester, a IT project manager doesn’t develop anything himself, always knows, how the things should be, checks the result and is responsible for the project success.

I know a project manager, who started as a tester. For now, everybody is happy to work with him and his projects are always a succes!

Lightbox customization (PHP programming tips)

Current version of Lightbox (widely used in web development) has an intricate navigation in the image gallery. At first a user trys to guess where to show “previous” or “next” buttons. This navigation isn’t user friendly. Here are some small modifications for creating a simple navigation:

The best way for creating it in your image gallery is overriding the code without direct changes in the lightbox source code. It’s profitable when it is necessary to update the source code.

Using jQuery with ASP.NET MVC

ASP.NET MVC is an upcoming framework that enables you to build Model View Controller (MVC) applications by using the ASP.NET Framework. ASP.NET MVC is not a replacement for ASP.NET Web Forms. It is an alternative that offers the following benefits:
• Testability – support for Test-Driven Development (TDD)
• Clear separation of concerns
• Fine-grained control over HTML and JavaScript
• Intuitive REST URLs

The flexibility and power of ASP.NET MVC allows for developers to use libraries other than those include in the box. And the popular JavaScript framework, jQuery, is no exception.

The popularity of jQuery as an easy-to-use JavaScript library used from any web development platform makes the ability to be used with the ASP.NET MVC Framework especially attractive. One of the reasons on which developers can use libraries like jQuery is designed-in extensibility of ASP.NET MVC.
And in the end great news for web developers: Microsoft announces about distributing jQuery with Visual Studio. It will help to build easier rich internet applications (RIAs) for Microsoft’s .NET Framework with Visual Studio.

Agile: Anarchy Outsource

Many times you and I have heard about advantages of Agile development techniques and drawbacks of traditional “hard” techniques like RUP, MSF and so on. I think, sometimes we are mixing them up.

A lot of software engineers, project architects and even PMs prefer the Agile approach because of the anarchy it allows in the outsourcing development. I mean the absence of specifications (even when they are really needed), merge of project roles and responsibilities (when no one can say who is responsible for low quality level and specification), and the sacred belief in users’ stories without any additional analysis of business goals. The situation can become worse if a customer hasn’t got a clear vision what he wants to get at the end of the project, if the requirements weren’t completely described and verified by him and finally they were implemented according to the developers’ point of view. Most probably the client’s expectations will not be satisfied, and it will lead to hours of overtime, release date shifting and other symptoms of an unsuccessful project.

In addition, unskilled key project persons frequently use this fashionable term to clear themselves when they fail, the project deadline is out-of-date and the customer is not satisfied. They say “We create software using modern flexible approaches, we don’t need all these hundreds of specifications and process descriptions! This is Agile, baby, so relax!”, but usually they forget one important thing.

Agile practice is not the universal magic wand that allows you to make any project no matter if it’s low-sized or estimated in 10 thousand man*days, with minimum of documentation, absence of project roadmap, detailed architecture and so on. Of course, it could be so in small/medium projects and on the assumption of all project-members already have agile experience and the Project Manager keeps all working activities and plans in his head. But you have to keep in mind that it’s rather risky to rely on this.

I strongly believe that Agile development process should be used only by highly-experienced web developers – because they already know the weak points of this methodology and they will not addle with the seeming simplicity and easiness of this approach.