The Benefits of Offshore Development and Local Project Management: 24/7 Operations

March 11th, 2010

We are back for our next installment of “The Benefits of Offshore Development and Local Project Management.”

In our previous posts, we have discussed the benefits of our “nearshore location” in Eastern Europe, and the ability to take advantage of our scalable resources. In this article, we will discuss the benefits of our 24/7 virtual operations.

There is a natural time differential of 7 hours between our onshore (Chicago) and offshore (Belgrade) locations. This development model translates into a virtual 24/7 kind of operation for our projects. Leveraging our distributed resources in both locations, we are able to provide clients with maximum visibility into our software development lifecycle. We also ensure that team members, regardless of location, have overlapped work timings for day-to-day communication. We utilize video conferencing, instant messaging, web portals, and other online collaboration tools to maximize internal productivity. This enables fast and efficient client communication.

VN:F [1.0.8_357]
Rating: 0.0/10 (0 votes cast)

Share/Save/Bookmark

The Benefits of Offshore Development and Local Project Management: Scalable Resources

March 5th, 2010

Last week, we started this series to emphasize the benefits of offshore development combined with local project management. (View the first article for benefits related to our office locations.) We call it a Hybrid Development Model, which allows us to deliver the highest quality development services to our clients at a fraction of the cost by providing the cost benefits of off-shore development services, while affording them the convenience and peace of mind of working directly with a US-based firm.

This week, we have a new benefit: scalable resources.

The Merit Solutions Development Team is composed of English-speaking and University-educated software engineers, so there is no loss in translation that is typical of other offshore development services. Our engineers have multiple skills, which allows us to utilize certain resources only when they are needed. This not only enables us to consistently deliver high quality services for large customizations, but also to effectively perform the smaller projects that often come up in Microsoft Dynamics customers’ environments.  We can scale down because there is very low overhead associated with project management and communication burdens compared to typical outsourced development.

VN:F [1.0.8_357]
Rating: 8.0/10 (1 vote cast)

Share/Save/Bookmark

The Benefits of Offshore Development and Local Project Management

February 26th, 2010

Over the coming months, we will be writing a series of articles detailing the benefits of our Offshore Development combined with Local Project Management.

To start this series, here are 2 benefits specific to our office locations:

  1. Since our development lab is located in Eastern Europe, we actually consider it ‘near shore’. The 7-hour time difference gives us enough daily overlap to collaborate efficiently across teams. There are three hours naturally overlapping in the business day, and it is easy to stretch it to five or six hours. This gives us no ‘drop off’ in collaboration between team members at different locations. And with both teams utilizing the same processes and systems, we have been able to develop a proven methodology that works.
  2. With a software development lab in Eastern Europe, we are able to take advantage of a less penetrated market. It is a non-traditional region for outsourcing as compared to India or China, which enables us to consistently hire and retain the top 5% of talent. Our relationships with the US Commercial Service and local Embassies enable us to obtain visas when we need to get our developers to the US as projects sometimes demand. As contrasted to other offshore development organizations in India and China, this provides a productivity advantage, and can substantially reduce project risk.

Be sure to check back in the future for more benefits of Offshore Development and Local Project Management.

VN:F [1.0.8_357]
Rating: 0.0/10 (0 votes cast)

Share/Save/Bookmark

Microsoft Dynamics AX Migrations

February 24th, 2010

Microsoft Dynamics AX is a compelling and attractively priced solution to companies now facing a technological crossroad and need to update legacy systems.

To lower the cost and make migrations easier when upgrading to Microsoft Dynamics AX, we utilize the straightforward migration methodology supported by Microsoft tools. Using the Sure Step migration process together with the new Migration Tool for Microsoft Dynamics AX,  we can help companies speed up the implementation process.

Our proven processes lessen the risks inherent in many implementations, providing increased transparency, delivering improved accuracy, and easing the pain that can take place when migrating to a new system.

VN:F [1.0.8_357]
Rating: 8.0/10 (1 vote cast)

Share/Save/Bookmark

Microsoft Office 2007 Problem

February 17th, 2010

I have Microsoft Office 2007 on Windows Vista Enterprise and a few days ago, the mouse just stopped working in Word, so I could not select, copy, paste, edit. The reason was an automatic update for Word 2007 on Windows Vista-based computer.

Microsoft has confirmed that this is a problem in the Microsoft products and published resolution for this problem on their support site:

 http://support.microsoft.com/default.aspx?scid=kb;en-us;940791

VN:F [1.0.8_357]
Rating: 0.0/10 (0 votes cast)

Share/Save/Bookmark

Visual Studio 2010 and .NET Framework 4 Release Candidate Available

February 10th, 2010

Visual Studio 2010 and .NET Framework 4 RC (Release Candidate) were made available to all MSDN subscribers on February 8.

The rest of the world will have a chance do get it on Wednesday, February 10th. This version also includes a go-live license.

For more information on the RC, visit Jason Zander’s Weblog.

Happy coding!

VN:F [1.0.8_357]
Rating: 0.0/10 (0 votes cast)

Share/Save/Bookmark

New Release Date of Visual Studio 2010

January 26th, 2010

Microsoft has rescheduled the launch date for Visual Studio 2010 and .Net Framework. The original launch date was scheduled for March 22nd.

The new release date is April 12th.

Until then, learn more about Visual Studio 2010 Beta 1.

VN:F [1.0.8_357]
Rating: 0.0/10 (0 votes cast)

Share/Save/Bookmark

Dynamics AX 2009 Workflow Setup

January 20th, 2010

Microsoft Dynamics AX 2009 WorkFlow can cause an error when setting up a workflow on Win2008R2.

If you receive this error when you run Workflow infrastructure configuration wizard:

The request failed with HTTP status 405: Method Not Allowed.

Then you should change the Application pool for your workflow (which is by default MicrosoftDynamicsAXWorkflow50) to enable 32 bit applications:

VN:F [1.0.8_357]
Rating: 10.0/10 (1 vote cast)

Share/Save/Bookmark

ContextSwitchDeadlock Exception in the Coded UI Tests

January 14th, 2010

Coded UI test, a new type of test in Visual Studio 2010, can be created to navigate through an application’s User Interface (UI), which can be useful to verify that the functionalities users might perform through an application are working properly. As such, coded UI tests can bring the improvement of regression testing capabilities to the UI layer, especially for time consuming scenarios.

I have tried to create a coded UI test on such an application scenario, which performs an upload of a significant number of documents and because of that it takes a couple of minutes to be finished. In order to find a moment when the upload is completed, I created a loop in the code which verifies Enabled property of one of the UI objects every 2 seconds. The problem was that Visual Studio occasionally fired MDA ContextSwitchDeadlock exception:

ContextSwitchDeadlock was detected

Message: The CLR has been unable to transition from COM context 0×2e33a0 to COM context 0×2e35c8 for 60 seconds. The thread that owns the destination context/apartment is most likely either doing a non pumping wait or processing a very long running operation without pumping Windows messages. This situation generally has a negative performance impact and may even lead to the application becoming non responsive or memory usage accumulating continually over time. To avoid this problem, all single threaded apartment (STA) threads should use pumping wait primitives (such as CoWaitForMultipleHandles) and routinely pump messages during long running operations.

A Managed Debugging Assistant (MDA), ContextSwitchDeadlock, was created to monitor for deadlocks induced by cross-Apartment transitions. If a transition takes longer than 60 seconds to complete, the CLR assumes the receiving STA is deadlocked and fires this MDA. Processing messages during long operations can be paused or even failed due to many different factors such as CPU, available RAM, context switching, as well as other factors…

What is really positive with MDA is that the message isn’t a test stopper; there is no real loss in ignoring it. The MDA is fired because my loop runs for longer than 60 seconds. Essentially, it is a warning that a code is completely blocking the application.

The resolution can be:

  1. If you want to ignore the MDA, simply uncheck the ContextSwitchDeadlock exception (Debug> Exceptuions> Managed Debugging Assistants > ContextSwitchDeadlock, uncheck column Thrown). This can be considered as “I know that test/application is going to be busy for a significant amount of time and it will appear as not responding“. Unfortunately, this will open the possibility that a test or application is really hung.
  2. If a ContextSwitchDeadlock message is important for you for any reason, the problem can be resolved by pumping messages at the end of each pass through the loop:

while (PeekMessage(…))
{
    TranslateMessage(…);
    DispatchMessage(…);

}

This will clear the box of any unprocessed messages that arrive while a loop is running.

VN:F [1.0.8_357]
Rating: 0.0/10 (0 votes cast)

Share/Save/Bookmark

Dynamically Created Controls Identification in VS 2010

January 11th, 2010

While creating UI Coded test Visual Studio 2010 Beta 2, I have experienced an interesting situation on identifying dynamically created controls.

An application contains a form with three WPF combo boxes created dynamically with a blank Name property. In this case, UI Spy (and I assume Visual Studio 2010 Coded UI Test Recorder) should identify control with empty Name and AutomationID property, but recorder should generate NextTo or Instance properties.

  Identification

 

    ClassName:

ComboBox

    ControlType:

ControlType.ComboBox

    Culture:

(null)

    AutomationId:

 

    LocalizedControlType:

combo box

    Name:

 

Unfortunately, recorder didn’t record the instance property, so the result was only one combo box control in the UIMap.Designer.cs file.

public WpfComboBox ItemComboBox

        {

            get

            {

                if ((this.mItemComboBox == null))

                {

                    this.mItemComboBox = new WpfComboBox(this);

                    #region Search Criteria

                    this.mItemComboBox.SearchConfigurations.Add(SearchConfiguration.NextSibling);

                    #endregion

                }

                return this.mItemComboBox;

            }

        }

 

The resolution is to create two new instances of the controls with different search criteria:

public WpfComboBox ItemComboBox2

        {

            get

            {

                if ((this.mItemComboBox2 == null))

                {

                    this.mItemComboBox2 = new WpfComboBox(this);

 

                    #region Search Criteria

                    this.mItemComboBox2.SearchProperties["Instance"] = “2″;

                    this.mItemComboBox2.SearchConfigurations.Add(SearchConfiguration.NextSibling);

                    #endregion

                }

                return this.mItemComboBox2;

            }

        }

However, a suggestion is to assign a name to these controls because in that case, they have a much better search condition and will be resilient to position changes.

VN:F [1.0.8_357]
Rating: 0.0/10 (0 votes cast)

Share/Save/Bookmark