Sure Step Adoption – A Marathon for Achieving Core Competence

September 1st, 2010

Sure Step is a widely applied and proven methodology for Microsoft Dynamics implementations. Its flexibility offers possibilities to adopt parts of the methodology that partners find useful and applicable. Yet, in order to achieve full benefits of Sure Step, it is essential to apply a subset of options that must be used in a given implementation.

Many of the partners that use Sure Step still face issues in their implementation projects and the principal reason for that is failure to fully adopt the procedures and make Sure Step their Core Competence. What is Core Competence? A Core Competence is:

  • Something that you do very well
  • Something that delivers unique customer benefits
  • It is hard for competitors to imitate
  • IT IS CONSISTENTLY USED IN YOUR COMPANY

Achieving Core Competence requires continuous effort throughout the Company with substantial Change Management.

Microsoft has offered priceless assistance to companies that want to achieve the core competence in Sure Step. The methodology of adoption is a systematic approach that leads the team to a successful end of the adoption. The adoption process may be facilitated by specially trained facilitators who are trained to make sure the process is well led (never by the facilitator her/himself).

The adoption process begins with the Diagnostic phase that has to confirm the business need first. Then it is necessary to assign a “Champion” who will lead the adoption of Sure Step. The Champion should be selected amongst senior managers and must possess the credibility to lead the initiative. The next step is to form the “V-Team” that will be responsible for assessing, configuring and deploying Sure Step.

The Champion and the V-Team must attend a Sure Step training after which they must be assessed for their proficiency. Finally, the CEO announces the importance of the adoption process and officially assigns the Champion and the V-Team.

The process continues with the Analysis phase during which the V-Team takes the Adoption Self-Assessment provided by Microsoft. The Assessment will indicate the current level of adoption of Sure Step and what needs to be done during the adoption process. It will also indicate what skills must be developed by V-Team members to fulfill their responsibilities.

During the Analysis phase it is also essential to identify the risks during the adoption, to review required investments, to define the expected rewards and return from the adoption along with the ROI plan that will help the CEO to decide whether to continue with the process or not.

The Design phase begins with the redesign of current processes for sales, project implementation and performance management. The Champion and the V-Team explore the Proof of Concept for mapped processes. They also prepare a handbook “What is Sure Step and How to Use It”. The HR manager has to define the learning plans and job descriptions for all the roles defined in the new processes.

The IT department defines the requirements and then has to configure systems and migrate sales data and documents.

Sales readiness is achieved through activities of the Sales and Marketing teams. The Marketing team updates the customer messaging to reflect Sure Step as their new engagement process. The Sales team, after the Sure Step training, runs a pilot of the new Sure Step processes using real customer situations.

Marking the end of the Design phase, the CEO should communicate internally to summarize new processes and stress the importance of Sure Step.

During the Development phase, the custom development work should be completed – configuring existing systems. All the database development for customer data storage must comply with the privacy plans (that also must be created if they don’t exist). All the remaining data and documents must be migrated finishing the work begun with the sales data and documents.

The V-Team now can perform a pilot using real projects uploaded into the system. The Sales team should recommend which projects should be used for the pilot.

The Deployment phase should be started with the CEO’s communication signaling readiness to go live with Sure Step. Now the training is deployed across the company and everybody is ready to apply Sure Step. All the roles who have taken the training should prove their knowledge by using the Sure Step Proficiency Assessment. The HR manager should continuously monitor the ongoing effectiveness of training.

At the very end of the process, the adoption maturity can be measured by re-taking the adoption assessment taken at the beginning of the process and comparing the results. The Company can also measure the customer satisfaction after the adoption.

And don’t forget to communicate through the Company about the progress made to date, the results of everyone’s efforts and the future goals for Sure Step Partner Adoption.

New Microsoft Dynamics Development Landing Pages

August 26th, 2010

In an effort to keep our web content relevant, up-to-date, and informative, we have recently gone through and updated our Microsoft Dynamics Development Services landing pages.

Below is a brief snapshot of the new content, along with the links to individual pages:

Microsoft Dynamics AX Custom Application Development: With a team of highly-qualified Microsoft Dynamics AX developers, Merit Solutions provides custom application development to both ISVs and Microsoft Dynamics AX clients, extending your team in regards to requirements analysis, technical design and development, and quality assurance testing of all software products. In the end, we measure success by our ability to deliver custom applications that will help organizations optimize performance and reduce costs.

Read more about our Microsoft Dynamics AX Development services.

Microsoft Dynamics GP Migrations: Users migrating to Microsoft Dynamics GP often want to improve the structure of existing processes and line-of-business applications. Typically these businesses have grown and become more complex in their business process needs. Using the migration tools available from Microsoft, Merit Solutions can help organizations plan and implement an efficient migration from systems like QuickBooks, Peachtree, and legacy systems. Our methodology preserves data, enhances security, improves reporting, and minimizes business disruption by designing and following an efficient migration plan.

Read more about our Microsoft Dynamics GP Development services.

Microsoft Dynamics CRM Integrations: For companies interested in integrating front- and back-end business operations, Merit Solutions provides seamless Microsoft Dynamics CRM integration that brings together sales, marketing, accounting, supply chain, and more. We have extensive experience with Microsoft Dynamics CRM integrations to Microsoft Dynamics, SAP, Oracle, and other 3rd party ERP Systems. Merit Solutions also provides cost-effective integrations with external sites, hosted either in-house or at the hosting partner.

Read more about our Microsoft Dynamics CRM Development services.

Microsoft SharePoint Development: Merit Solutions provides Microsoft SharePoint development and deployment services to companies in need of extended portal functionality. Our integration, training, and consulting services help companies through new intranets, workflows, collaboration, document management, and custom portal solutions. We also have extensive experience developing SharePoint-based features and solutions, including 21 CFR Part 11 SharePoint Document Management.

Read more about our Microsoft SharePoint Development services.

We hope you enjoy the new content. Feel free to make suggestions by commenting on this blog article!

Debugging Non-Reproducible Issue with IntelliTrace

August 26th, 2010

“Not being able to reproduce it, not a bug” is a developer’s main philosophy. And generally it can be accepted as a fact. This is one challenge which continues to appear in different forms and testers need to spend a considerable amount of time analyzing environments, build versions, preconditions, and code without any guarantee that any verification process will provide precise information to what caused an issue.

So, are non reproducible bugs one of the most frustrating and toughest challenges for a QA?

One of the most interesting improvements in the Microsoft Visual Studio 2010 which should help both developers and testers is the option to collect IntelliTrace files during the test process. New Visual Studio 2010 allows testers to save rich test logs when running test cases and attach them with the bug. Developers can debug the code reproducing the steps recorded in those files, they can go back and forward in the call stack and analyze parameters and result values. The main advantage is that the developer’s environment can be completely different from the one where the file has been recorded. This is accomplished by deploying the IntelliTrace diagnostic data adapter (DDA) to the target system as part of the Visual Studio Test Agent or by deploying the IntelliTrace.exe command-line utility.

IntelliTrace has two main modes it can run under. In the default mode, IntelliTrace will just be collecting debugging data at the predefined IntelliTrace event points. While in the “methods and calls” mode, IntelliTrace will be collecting debugging data (including method parameters and return values) for all function inputs and outputs for all included modules. The “methods and calls” mode provides a lot of additional information about your application’s recorded execution path, but at a substantially higher cost in terms of time overhead and log file size.

However, there are several drawbacks related to this feature:

  • The IntelliTrace DDA and/or IntelliTrace.exe cannot be used on a machine or a server in the production environment
  • IntelliTrace files created using either methods can be opened and debugged only by using Visual Studio Ultimate.

Scrum Methodology and Merit Solutions

July 16th, 2010

Scrum Methodology is a very powerful asset to the Agile project management paradigm. Merit Solutions has recognized it as a very valuable skill that can bring even more professionalism and competitiveness among our team. Our developers, consultants, as well as the members of the management team have intensively invested in its embracement and effective enforcement.

To be able to thoroughly understand and grasp the full potential behind it, both basic concept courses as well as the advanced ones were required. We have attended a number of trainings that dealt with the Scrum Methodology. They helped us better understand and utilize the purpose of the methodology and how to put its theoretical layout to practice.

And indeed, it did. We at Merit Solutions are now proud to say that the depth of involvement and the commitment of our team are on are ever growing – and much of it we owe to the power of Scrum Methodology.

View some photos from the most recent Merit Solutions Scrum Training.

Recommending Tests to Run That Are Affected by Code Changes

July 7th, 2010

Microsoft continues to provide new features which should help in defect prevention during the software development process. With the new Visual Studio 2010, you can check which builds have bug fixes, new features, new requirements or user stories added. Built-in test reports now cover test case progress, test plans and test results.

But the really cool new feature in the VSTS 2010 is that you can also view recommendations about which tests might have to be rerun, based on the effect of code changes that have been made to your application if you are using Test Impact Analysis when you run your tests. This is an additional feature for the code review implemented for the first time in Visual Studio 2008.

The whole process requires collecting test impact data per test. Test Impact Data is actual information about the methods called during the test execution. What is really important is that Visual Studio will collect Test Impact Data for both automated and manual tests, during the test execution using Test Runner. Therefore, the user doesn’t have to spend time exploring the application code. The links between methods in the application and the test cases are stored to determine which test cases should be recommended to run again based on the changes to the methods.  This actually means that this feature will help in development from unit tests to manual tests and in both cases, the code analysis tool in the Visual Studio 2010 will shift user’s focus to the testing of the updated code.

If you have implemented Continuous Integration rather than running a build with a huge portion of tests you probably have a problem as it takes way too long to run frequently. If that’s the case, many administrators choose to exclude all – or a large number of tests – from the Continuous Integration, breaking a concept of the end-to-end builds process. The only remaining impact is Build Verification. By applying this mechanism in the TFS, the team should get a repeatable and reliable method to create a regularly available public build.

On the other hand, the developer is free to choose between a subset of tests (those that need to be run based on the code changes made) or running the entire suite of tests. This feature will point to both testers and developers what needs to be tested and which tests need to be run, especially since the test team often struggles with the details of what has been changed. Test Impact Analysis has a powerful mechanism to identify all changed points in order to help testers identify which tests need to be run in order to validate the new build.

Although, an investment in this feature increases maintenance time and requires a decent level of discipline within the development team, cost of the Test Impact Analysis implemented like this is significantly lower than benefits that team will gain.

Visual Studio 2010 CodedUITest Log

June 30th, 2010

One of the main problems for any test engineer working with a test automation tool is how to resolve the situation when the tool doesn’t work properly. A distinction between an average and good test tool is the way of handling these situations. The minimum that one “good tool” must provide is a log with information of what happened in that test run in order to reduce engineering time necessary to fix that problem or find a workaround. However, this information is in the same time very sensitive, because it might contain an answer to a question if the tool has support for certain platforms.

CodedUITest in Visual Studio 2010 is well equipped with the Debug Trace, containing detailed information about time spent, action performed, control found and even expected time to complete a specific action. This log also contains technology used by Visual Studio to find control, so an average user can try to find out what the cause of the issue is. In a lot of situations, a set of such information will give a user an adequate reason for test failure.

W, 10220, 13, 2010/06/30, 08:28:33.358, 281524579375, QTAgent32.exe, PERF WARNING: FindAllDescendents: took 838 ms. Expected it to take maximum 500 ms.

W, 10220, 13, 2010/06/30, 08:28:35.085, 281529640405, QTAgent32.exe, Playback – {1} [SUCCESS] MouseButtonClick – “[UIA]ControlType=’Button’ && AutomationId=’btnCreateProject’”

W, 10220, 13, 2010/06/30, 08:28:35.663, 281531333898, QTAgent32.exe, Playback – {2} [SUCCESS] MouseButtonClick – “[UIA]ControlType=’Button’ && AutomationId=’NextButton’”

However, the user can enable more detail tracing in two ways

- The first one is by enabling trace for all Testing Tools in VS is to modify the following registry file:

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\EnterpriseTools\QualityTools\Diagnostics]
“EnableTracing”=dword:00000001
“TraceLevel”=dword:00000003

EnableTracing key defines whether tracing is ON or OFF.

o 1 – ON
o 0 – OFF

- The other way is to set EqtTraceLevel or UITestTraceLevel switch in the appropriate exe.config file. The EqtTraceLevel will enable tracing for all Testing Tools modules of the executable. UITestTraceLevel will enable the tracing for only the UI Test modules of the executables.
For UI Test, the trace file is generated in %temp%\UITestLogs\*\LastRun\UITestLog.html where * could be empty for VS or could be exe name like CodedUITestBuilder for other cases. The LastRun here indicates that this is THE file for last run – the earlier ones would be stored as PreviousRunXX. The tool automatically cleans up the old trace file if it exceeds ‘n’ (today it is 25) previous runs.

This log is very useful for an experienced user as it contains full Microsoft Visual Studio log with API calls, the result of API calls and other algorithms used.

Obviously, it doesn’t mean that the user will be able to resolve all situations, but this log will increase productivity of automated software testers by giving them deep information about how the tool works, it will give them an idea how to resolve an issue or how to find workarounds. And if the log shows that the selected UI Technology is not supported, users can extend platform as this framework has been created with idea to overcome situations where this engine will not meet the needs and these means to test applications built on a different or new UI technology.

Innovation in Visual Studio 2010 for Automated Testing

June 21st, 2010

A big innovation in Visual Studio 10 is the opportunity to wait for a UITestControl object to be opened or enabled before the rest of the test continues with executing. It can be very important if we test a project on a few different environments. In the previous versions, we used loops for checking the availability of the object, or we just made the process sleep for a while. Now, we can do the same with the following methods:

UITestControl::WaitForControlExist Method

public: bool WaitForControlExist()

 

Return Value is Type: System::Boolean. It is true if this control exists before the time-out, otherwise, it is false.

 

UITestControl::WaitForControlExist Method (Int32)

public: bool WaitForControlExist(int millisecondsTimeout)

Parameter is millisecondsTimeout, Type: System::Int32 and represents the number of milliseconds before time-out.

Return Value is Type: System::Boolean. It is true if this control exists before the time-out, otherwise, it is false.

 

UITestControl::WaitForControlEnabled Method

public bool WaitForControlEnabled()

Return value is Type: System.Boolean. It is true if this control is enabled before the time-out, otherwise, it is false.

 

public bool WaitForControlEnabled(int millisecondsTimeout)

 

Parameter is millisecondsTimeout, Type: System::Int32 and represents the number of milliseconds before time-out.

 

Return value is Type: System.Int32. It is true if this control is enabled before the time-out, otherwise, it is false.

 

Mid-Continent Instruments Goes Live with Microsoft Dynamics CRM

May 28th, 2010

Merit Solutions, Inc., a 2009 Microsoft Dynamics President’s Club member and provider of Microsoft Dynamics business applications, is proud to announce the successful go-live of Mid-Continent Instruments’ new Microsoft Dynamics CRM implementation. Based in Wichita, Kansas, Mid-Continent Instruments is an industry leader in the overhaul/exchange, repair and manufacturing of aircraft instruments for the general aviation industry; the company operates on of the world’s largest FAA-authorized instrument overhaul and exchange programs. In an effort to automate business processes and improve customer contact management, the company began to look for an easily deployable customer relationship management (CRM) solution.

Mid-Continent has used the Microsoft stack for its core IT infrastructure for a number of years, and its IT team is very familiar with the Microsoft development and integration products and tools. Their employees are also familiar with the Microsoft Dynamics and Office systems, having used Microsoft Dynamics GP and many Office programs daily. “The capability of Microsoft Dynamics CRM to easily integrate with other Microsoft products, such as Microsoft Dynamics GP, Microsoft SharePoint, and Microsoft Office, was the determining factor in our decision,” says Cindy Highbarger, Chief Financial Officer at Mid-Continent.

Merit Solutions helped Mid-Continent review internal sales, service, and marketing processes to determine a way to automate business processes and improve the company’s responsiveness to changing market trends. Additionally, Mid-Continent wanted real-time access to information about all interactions with customers. Using the Microsoft Dynamics Sure Step implementation methodology, Merit Solutions was able to successfully implement Microsoft Dynamics CRM with real-time, two-way integrations with Microsoft Dynamics GP and Mid-Continent’s phone system. The Microsoft Dynamics CRM solution will provide Mid-Continent employees a more unified way to track customer information and sales data across the entire company.

When asked what she liked about working with Merit Solutions, Cindy appreciates Merit’s ability to implement new solutions in order to improve internal operating procedures. “Merit Solutions has always been able to fit new software systems to our optimized business processes, without making Mid-Continent accept less-than-optimal processes in order to fit any systems.”

Learn more about Mid-Continent Instruments.

Suppressing Messages in FxCop

May 20th, 2010

FxCop is a free static code analysis tool from Microsoft that checks .NET managed code assemblies for conformance to Microsoft’s .NET Framework Design Guidelines. It will ensure that the specified rules are used in the source code.

FxCop analyzes the compiled object code, not the original source code, and searches for more than 200 different possible coding standards violations.

Sometimes it is needed to automatically remove FxCop related “SuppressMessage” attributes when they are no longer needed.

If you’re using Visual Studio Team System, then FxCop is completely integrated and when you exclude messages it automatically applies the new SuppressMessage attributes to the appropriate location in code.

If you’re using Visual Studio Professional edition, then you have to use the external FxCop.

It turns out you have to enable your project to recognize the SuppressMessage attribute by FIRST adding a condition compilation symbol.

To include this symbol do the following:

For C# projects:
- In Solution Explorer, right-click your project and choose Properties
- In the Properties window, choose the Build tab
- In the Conditional compilation symbols text box enter CODE_ANALYSIS

The next step you have to do is to right-click the error message in FxCop UI and select “Copy As” – “SuppressMessage” (or “Module-level SupressMessage”). Then you can simply paste the attribute into your code at the appropriate location.

“Purchase Order Processing Setup Information is Missing or Damaged”

May 12th, 2010

While working with Microsoft Dynamics GP, I came into a situation where I was not able to open the Purchase Order Entry window regularly, following the path:

Transactions -> Purchasing -> Purchase Order Entry

Instead, I got the warning:

Microsoft Dynamics GP POP Error

After researching on the internet, I found some instructions to repair it. I tried the instructions, but still nothing happened.

Then, I tried the following steps and it worked. So, if you get this message, try these easy steps. They do not require a lot of time or any new settings, and they might be helpful.

  1. Open the Purchase Order Processing window, using the following path:
    Microsoft Dynamics GP -> Tools -> Setup -> Purchasing -> Purchase Order Processing
  2. Open the Purchase Order Processing Setup Options window clicking the Options button on the Purchase Order Processing window.
  3. Click the OK button on the Purchase Order Processing Setup Options window and the window will be closed.
  4. Open the PA Purchase Order Processing Setup Options window clicking the Project button on the Purchase Order Processing window.
  5. Click the OK button on the PA Purchase Order Processing Setup Options window and the window will be closed.
  6. Click the OK button on the Purchase Order Processing window and the window will be closed.

Now, the Purchase Order Entry window should be accessible.