VanQ – Vancouver’s Local Software Quality Assurance Community Reaches 700+ Members and Counting

VanQ Software Quality Assurance group was formed over 10 years ago with a small community of local software developers and testers. This month we are celebrating a milestone as VanQ has now hit over 700 members.

Ed Dahl co-founded VanQ with the mission to build a strong local Software Quality Assurance community. Over the years the organizers have changed, but the mission has remained intact. Optimus Information took on carrying through this mission over two years ago and it has been a great way to connect with local and new software developers and testers. Our monthly Meetups bring out anywhere between 50 – 80 members with equal parts new and familiar faces. VanQ has proven to be a great way for new QA professionals to connect with seasoned professionals and become involved in this thriving community.

Over the years we have seen a number of great leaders, from a range of backgrounds and industries, share their ideas and experiences. We have also had a variety of sponsors join us in bringing the community together such as Hootsuite, Boeing – Aeroinfo Canada, Vision Critical, SOASTA and Mobify to name a few.

We have been able to capture a number of the Meetup presentations on video. Here are a few of our most recent Meetups. You can find the full archive at www.vanq.org.

Overview of the International Software Testing Qualifications Board (ISTQB)

For this Meetup, Gary Mogyorodi from the Canadian Software Testing Board in Toronto came out to speak with our members about the ISTQB, benefits of the ISTQB, Syllabi and Extension, the ISTQB footprint, the Canadian Software Testing Board, and the ISTQB Partner Program. Watch the complete presentation here:

Essential Skills for Test Automation & Load Testing

This past May, Alex Siminiuc, Freelance Tester with uTest.com, shared with us his thoughts on the skills needed for test automation and load testing. Alex has been a Software Tester since 2006 and actively blog’s here: test-able.blogspot.ca. Watch his complete presentation here:

Vision Critical’s QA Strategy: Prevention Rather Than Cure

Stuart Ashman, Vision Critical’s QA Director gave VanQ a presentation on how they attempt to ensure they ‘build it right’ as well as ‘build the right thing’. He goes through their process of using white box approaches, automation, risk analysis and strong critical and test thinking. Watch the full presentation here:

After taking the month of July off to enjoy some of the summer weather, we are gearing up for the next Meetup on Thursday, August 13, 2015. For this one we are excited to partner with Electronic Arts Games, TestDroid and the Vancouver Unity Games Meetup group for an exciting talk on ‘Driving Quality Through Test Automation of Mobile Apps and Games’. We will be hosting this Meetup at The Pint Public house. Join VanQ today and we hope to see you at the next Meetup: http://www.meetup.com/VanQ-Vancouver-Testing-and-Quality-Assurance-Group/

We are always looking for topic suggestions, speakers, sponsors and venue hosts. If you would like to get involved with VanQ get in touch with us.

Building Apps with Windows 10 Universal App Platform

With the release of Windows 10 this coming autumn, users and developers will enjoy a consolidation of device user interfaces and development platforms, respectively.

The promise for developers is that they can develop app business logic once for any Windows-based device such as a PC, phone, tablet, the Xbox One and a number of new devices such as the Hololens and Surface Hub. Eventually, the Universal App Platform will also encompass IoT devices.

Customers will be able to install a single app on all their devices and enjoy a more productive, unified mobile experience. Every device will have access to these single, all-platform apps from one online app repository.

Microsoft is creating this unified cross-device experience in response to customers’ desires for adaptive, seamless interaction on whatever device type is most convenient for accomplish a given task. With Windows 10 the ability to utilize whatever human interface is predominant on any device such as a touchscreen, keyboard and mouse, pen or game controller is taken care of automatically and intelligently.

What the Windows 10 Universal App Platform Means for Developers

Windows developers today must bridge the gaps between device types by writing separate apps for mobile devices, desktops or websites. With Windows 10, they write their app’s core logic once and the UAP, which contains a collection of “versioned contracts” for each device type, adapts the app to any Windows-based device.

Developers utilize extension SDKs to provide their apps with access to platform-specific functionality where necessary. These are turned on automatically at runtime to match the device upon which the app is running. Thus, recompilation is unnecessary to achieve cross-platform portability. Microsoft refers to these extensions as adaptive code.

The Adaptive User Experience

Adaptive UX works by sensing a platform’s human interface capabilities and the user’s interaction with the device to create a contextually appropriate experience. For instance, improvements to Microsoft’s ViewStateManager remove the need for separate UI definitions pertaining to screen size, though these can be included optionally if a developer prefers. User controls are adjusted at runtime based on how a customer is interacting with HIDs available on the machine. If a laptop has a touchscreen, for example, and it is being utilized, then controls targets are increased in size to accommodate taps instead of mouse clicks.

Natural Inputs

Windows 10 also adds the ability for developers to take advantage of other, less used, inputs such as gestures, inking, speech and user gaze. These are all handled automatically by Windows 10, which relieves developers from the need to parse such inputs themselves.

Cloud Services

In addition to Windows services already provided to developers, such as Windows Credential Locker, roaming data and Windows Notification Services, Windows 10 opens up additional cloud-related services including Cortana AI, OneDrive and Application Insights.

Backward Compatibility

Existing Windows apps will continue to be supported on the device types for which they were originally developed. Microsoft will offer tools and support for developers to easily migrate their existing apps that are based on previous versions of Windows to Windows 10.

Language and IDE Support

Windows 10 continues to support developers’ language preferences within Visual Studio plus the cloud services available through Azure. Everything you can do in Visual Studio now and more will exist after the new release. Furthermore, support will be increased for C# for delivering apps to iOS and Android devices including a full Android emulator. Developers will be able to take advantage of Xamarin and Unity within VS for cross-platform development also.

Jumpstarting Windows 10 Development

Developers who want to start working with Windows 10 can do so via Microsoft’s Windows Insider Program where they can access the latest pre-release builds.

Windows 10 holds much promise for both consumers and developers by sparking increased productivity and availability of Windows apps across the widest possible range of devices. App users will enjoy a reduction in user experience fragmentation and developers will spend far less time writing, testing, deploying and promoting their apps across all Windows-based platforms.

10 Tips for a Seamless Migration to the Cloud

There are two primary motivations for transferring enterprise applications, IT infrastructure and maintenance tasks to cloud services. These are the avoidance of fixed costs and the acquisition of technical advantages such as faster processing, increased connectivity, lower latency and, hopefully, increased end-user satisfaction.

Newer, smaller companies forgo the significant startup expenses of servers, data centers and the personnel to manage these. To larger, established enterprises wanting a more elastic and flexible IT footprint, the appeal of SaaS and scalable, on-demand infrastructure is undeniable.

Having answered the “whys” that leaves the questions of what, how and when to move to the cloud waiting for answers. Those responses require further analysis to ensure your organization’s move to cloud services is done efficiently, safely and garners the results you expect. Here are 10 tips to help you analyze the effort and reap the benefits of cloud migration.

10 Tips for Migration to the Cloud

1. Making a Short List of Cloud Providers

Due diligence in selecting cloud providers helps you sort out the good from the ugly and simultaneously contributes to a matrix of comparison attributes including pricing, functional capabilities, scale times up and down, geographical coverage, security and privacy standards and SLA requirements. Involve as many business units as possible in initial evaluations to assist in uncovering unforeseen issues.

2. Go over SLAs with a Fine-Tooth Comb

How strict and detailed your SLA requirements are depends on your particular business and its location. Be 100 percent sure that your cloud provider understands any compliance issues that pertain to your enterprise. Your regulatory landscape may include Sarbanes-Oxley, HIPAA, the Gramm-Leach-Bliley Act, the EU Data Protection Directive and PIC-DSS among others.

3. Sorting Out Security and Privacy Issues

Address any and all concerns regarding privacy, security and control directly to your cloud provider. Business-critical apps and data should receive the most scrutiny, especially where customer information is involved. Ask providers if they offer at least the same level of security that exists now and insist on SLAs that match your expectations for availability and functionality.

4. Selecting Prime Migration Candidates

Not all mission-critical enterprise applications are equal in terms of use and uniqueness. Less frequently used apps or those easily replaced by existing cloud services should move to the top of the migration candidate list. Examples are email or HR applications such as benefits administration, recruitment or relocation. Other established cloud services, such as CRM, make replacement of in-house versions obvious migration candidates.

5. Testing Replacement Cloud Services

Replacing in-house applications with cloud services requires extra care. Except in trivial cases, there are likely to be misalignments between functionality, data formats, APIs and response latency. Run detailed porting trials to assess the degree of mismatch from which you can make a cost vs. effort estimate for migrating to a replacement cloud service.

6. Test Before You Leap

If there are pending configuration, testing or maintenance tasks for components slated for migration, ensure these get done before the move. The changeover is unlikely to be completely bump-free, so eliminating as many hiccups before the migration on your own servers reduces the amount of post-migration work you will encounter.

7. Take a Baseline Snapshot

Create a baseline in terms of performance, maintenance costs and functionality for each migration candidate. Once the cloud-based replacement is well-established, evaluate it against the baseline to see if it is achieving the expected results.

8. Start Training as Early as Possible

Seek out employees with cloud experience to form a training team. The team creates a training plan for other employees who will use, maintain and monitor the new cloud services or infrastructure. If team members have bought-in to the migration, they can assuage uncertainty among existing staff.

9. Create a Contingency Plan

Especially if this migration is your first, it is prudent to develop a back-out plan in the unlikely event that the migration fails. Keep your in-house component viable for a few weeks until the organization’s confidence level in the migration is high.

10. Perform Post-Migration Analysis

You are unlikely to migrate the entire enterprise set of data, apps and services wholesale unless yours is a small company. In any case, treat cloud migration as an ongoing process. Post-migration analysis reveals innumerable ways to improve future migrations and maintain buy-in to what is a long-term process.

Cloud migration of enterprise resources is not a decision taken lightly nor is it always simple to accomplish. If thorough analyses are performed, and care is taken in the selection of cloud providers and which resources to migrate then the process should be relatively smooth. Proper base-lining and performance monitoring is essential in order to objectively evaluate the rewards of your efforts.

Key Aspects of Software Development Outsourcing Life Cycle

The Life Cycle

Outsourcing software development has been proven to be an extremely beneficial decision for companies, in the past few years. Here, we talk about the key steps involved in the outsourcing life-cycle of your software development process.

Outsourcing software development allows you to take a result driven approach in terms of the planning, strategizing and testing involved in the development process. Independent Software Vendors are challenged to innovate faster and better products than their competition, while continuously re-evaluating their development strategies to stay on top of the game. Outsourcing also brings the software development costs down and delegates the more complex development problems on sensitive time frames to industry experts. To reap the aforementioned benefits and more, companies opt for outsourcing their software development needs. The outsourcing life cycle is the process involved in identifying, evaluating and managing a software development vendor to obtain optimal results.

We can subdivide the software development outsourcing life cycle into five major parts. Adhering to them gives you a good set of markers in terms of what to expect while going through the process. Let us look at the major steps involved in the outsourcing life cycle

Identification of Outsourcing Requirements

Software outsourcing requirements can be based on cost, quality and timeline pressure. They can be identified by evaluating the changes in customer purchasing behaviour, increased demand for open source products, increased cost of R&D and niche product requirements, etc. It is advisable to outsource development bottlenecks – aspects of development that are really hampering the profitability margin. By performing an evaluative comparison between in-house development costs taking into account the projected cost differential and the outsourcing costs and availability of quality vendors, one can choose the areas that can be outsourced for development.

Assessment and Selection

Vendor assessment involves quality evaluation of the vendor in terms of available technology, expertise, experience, communicability, security and management. It is beneficial to look for a long term partnership with a vendor and analyze accordingly. It is important that a vendor provides you with a detailed work plan according to the time frame, an ROI analysis and a sequencing and engagement roadmap. Perform a risk analysis involving data and intellectual property security to check the trustworthiness of the vendor.

Performance Administration and Transition

Once you have chosen the vendor, the actual outsourcing begins. This is the phase where the vendor is expected to provide you with the expected deliverables. The data and expertise transfer must begin through well established lines of communication and the initial transitional checkpoints must be attained. It is very important that all terms and expectations of both the parties are clearly stated in the contract and the service level agreements for a fruitful relationship.

Development Management

Once the initial knowledge transfer is completed and the plan defined, the software development begins. Every software has a unique development life cycle that has to be carefully defined by the developers and includes timeline management, coding and testing. For effectively managing the software development, one should demand the provision of time specific results from the vendor, along with a detailed process evaluation on every phase. Everything including usability and GUI has to undergo a careful discussion so that you are provided with the product you truly envisioned. Timeline assessment is the key in this phase, since any delay will reflect itself in the product cost and company profitability.

Renewal/End of Development

The final phase of outsourcing development life cycle includes the handover of the finished product along with the final testing evaluation and certification. Here you have an option to either renew your contract for further development needs or begin with the first step of the cycle again, depending upon your experience with the vendor.

Outsourcing software development is a complex and time consuming process. It is advisable that you choose your vendor with great care for a successful project and a rewarding relationship.

Get in touch with OptimusInfo in case you have questions about software development needs. With years of industry experience and expertise, our professionals will be happy to guide you through the process.

Data Sovereignty in Canada

Summary

Most companies operating in Canada can store data wherever they want as long as they take measures to secure personal data.

Service providers working with public bodies in BC and Nova Scotia have stricter data sovereignty requirements including storing data in Canada.

Concerns about accessing data through the PATRIOT Act are misplaced because there are broader mechanisms in place for requesting and sharing data between governments and law enforcement agencies that predate the PATRIOT Act.

The PATRIOT Act

The PATRIOT Act was enacted in 2001 and it broadly extended US law enforcement’s powers to access data.

Companies with a presence in the US are subject to the PATRIOT Act regardless of where the data is physically located or where they are headquartered.

Canada offers no protections against the PATRIOT Act and only British Columbia and Nova Scotia have enacted any form of protection against the PATRIOT Act.

Furthermore, Canada, like most countries, has enacted legislation that grants similar powers to Canadian law enforcement agencies and, like most western countries, has agreements in place to share that information with foreign allies.

So, even if your company only operates in Canada and your data resides entirely in Canada, US law enforcement agencies can ask their Canadian counterparts for the data and the Canadian authorities will likely comply.

The main lesson is that if there is reasonable suspicion of criminal wrongdoing, then it doesn’t matter where the data is stored. For typical, non-criminal businesses, locating data in Canada with a Canadian hosting company offers very little additional protection.

Canada’s Patriot Act: PIPEDA

The Personal Information Protection and Electronic Documents Act (PIPEDA) governs how data on Canadians is collected, used and disclosed.

The main obligation for Canadian companies set out by PIPEDA is the requirement that “personal information shall be protected by security safeguards appropriate to the sensitivity of the information.”

You can store data wherever you want, just make sure anything sensitive is encrypted and password protected.

One of the main exceptions to PIPEDA’s protections is law enforcement and national security. That exception extends to sharing data with foreign bodies.

The Office of the Privacy Commissioner of Canada made this clear in a submission to the Office of the Information and Privacy Commissioner for British Columbia titled Transferring Personal Information about Canadians Across Borders–Implications of the USA PATRIOT Act.

“Canadian law often permits government agencies to share personal information that is held in Canada (by government or the private sector) with foreign governments and organizations, even without the consent of the individual to whom the information relates.”

Canada has signed a number of Mutual Legal Assistance Treaties with countries like the US and the UK that provide mechanisms for requesting evidence.

The Department of Justice then needs to apply for a search warrant before obtaining the information and then sharing it with the body that made the request.

British Columbia and Nova Scotia have enacted laws that govern records held by public bodies that apply to service providers working with public bodies. Both laws require that data be stored in Canada.

Freedom of Information and Protection of Privacy Act (BC)

The Freedom of Information and Protection of Privacy Act (FOIPPA) regulates access to records held by public bodies and privacy standards for such records in the province of British Columbia (BC).

Many of the privacy-related sections of the act apply to “officers of the Legislature, their employees and, in relation to their service providers, the employees and associates of those service providers, as if the officers and their offices were public bodies.”

That means that if you provide services for a public body in BC, then FOIPPA may apply to you.

Sections that apply include the data sovereignty provisions of FOIPPA which require that data collected by public bodies in BC be stored in Canada.

In addition to storing the data in Canada, organizations subject to FOIPPA are required to report foreign demand for disclosure to the minister responsible for FOIPPA.

This means that companies subject to the Patriot Act would be compelled to give requested data to US authorities and report the transaction to BC authorities. In practice, US authorities would likely ask Canadian authorities (who are exempted from notification) to share data thus circumventing any FOIPPA protections and responsibilities.

Most of the other applicable sections are related to storing data securely and unauthorized disclosure/access.

The following is the complete list of sections that apply to service providers as listed in the act:

  • Section 30: Protection of personal information.
  • Section 30.1: Storage and access must be in Canada.
  • Section 30.2: Obligation to report foreign demand for disclosure.
  • Section 30.3: Whistle-blower protection.
  • Section 30.4: Unauthorized disclosure prohibited.
  • Section 30.5: Notification of unauthorized disclosure.
  • Section 33: Disclosure of personal information.
  • Section 33.1: Disclosure inside or outside Canada.
  • Section 33.2 Disclosure inside Canada only.
  • Section 74.1: Privacy protection offences.

Personal Information International Disclosure Protection Act (NS)

The Personal Information International Protection Act (PIIDPA) applies to personal information collected by public bodies in Nova Scotia.

The act also applies to service providers defined as “an individual or a company that is retained under a contract to perform services for a public body, and in performing those services, uses, discloses, manages, stores or accesses personal information in the custody or under the control of that public body.”

Similar to the BC law, PIIDPA requires data covered under the act be stored in Canada. It also requires that foreign requests for disclosure be reported to the Minister responsible for the act, but specifically exempts foreign law enforcement agencies that request information through federal or provincial agreements.

In addition, it specifically prohibits storing PIIDPA data in portable devices while travelling unless given specific permission.

Conclusion

At the moment, there are very few data sovereignty requirements that apply to Canadian companies. The most common ones are satisfied by basic security practices that you should already be doing.

Keeping your data in Canada over PATRIOT Act concerns is also unnecessary. Most Western countries already had mechanisms in place where Canadian authorities would provide data that resides in Canada. The PATRIOT Act mostly only asserted the US’s right to unilaterally request data from companies with a presence in the US where they already had the bilateral right to do so from companies in Canada.

The only way that you can guarantee that you are made aware of those requests is by running your own data center, when you receive the subpoena for the data, or if you are working with data belonging to public bodies in BC and Nova Scotia, where provincial data sovereignty laws apply.

As with any post on legal topics here, this is an overview of the laws and does not replace proper legal advice in any way.

 

Creating Generic Classes in C++ Using Templates

We can create generic classes using templates in C++. Generic classes can be used for different data types.

In the example below we have one template class that can queue based on the data type. Here the example demonstrates that same generic class can be used to queue char data type as well integer data type.

[code lang=”cpp”]#include
using namespace std;

template
class list {
data_t data;
list *next;
public:

list (data_t d);
void add(list *node) { node->next = this; next = 0; }
list *getnext() { return next; }
data_t getdata() { return data; }
};
template
list <data_t> :: list(data_t d) {
data = d;
next = 0;
}

void TestChars() {
list start (‘a’);
list *p, *last;
int i;

last = &start;
for (i = 0; i < 26; i++) { p = new list<char> (‘a’ + i); p->add(last);
last = p;
}
// Display the list
p = &start;
while (p)
{
cout < < p->getdata();
p = p->getnext();
}
}

void TestIntegers() {

// Lest use integers
list<int> start (1);
list<int> *p, *last;
int i;
last = &start;
for (i = 0; i < 10; i++) { p = new list<int> (1 + i); p->add(last);
last = p;
}
// Display the list
p = &start;
while (p)
{
cout < < p->getdata();
p = p->getnext();
}
}
int main() {

TestChars();
cout < < "\nOutput for Integers" << endl; TestIntegers(); return 0; }

[\code]

Output

[code lang="txt"]

C:\P4\Sw\C++\Template\GenericQueueClass>GenericQueue.exe
aabcdefghijklmnopqrstuvwxyz

[/code]

Output for Integers

[code]112345678910
C:\P4\Sw\C++\Template\GenericQueueClass>[/code]

Ribbon Customization for MS Office Word 2010

In MS Office 2010 you can customize the ribbon on your own, this feature was not present in the earlier version of MS Office.

Ribbon customization is an easy task in Office 2010, here we are going to see how you can add new features to your Office 2010 ribbon tags and use it in your Office-supported files. If you need more details on the new features provided by MS Office 2010 you can check out the official documentation.

Prerequisites

In order to customize the ribbon in Office 2010, we need the following.

1. MS Office 2010

Installed on your system, of course.

2. Custom UI Editor

This is an editor for creating and editing XML documents. You can download the Custom UI Editor at this page.

3. Template File (.dotm)

This file contains the common features which need to be used by each and every document of that type, the extension for this file is .dotm where m stands for macro enabled document template. By default Normal.dotm is the template file which is used in MS Office 2010 and can be found on at C:\Program Files (x86)\Microsoft Office\Office14\STARTUP.

4. Knowledge about Macros

You also need to have some knowledge about macros (VBA codes) in MS Office. In order to locate macros in your document, use the Alt + F8 Keyboard shortcut.

Once you have all the above mentioned items you are now ready to go.

Steps for Customizing the Ribbon in MS Office 2010

Here I will walkthrough with the steps to customize the ribbon in MS Office 2010 using a Word document.

Step 1: Open MS Office Word 2010

Step 2: Go to the File tab and click on Options as shown below.

file-options Ribbon Customization for MS Office Word 2010

Step 3: The Word Options window will be opened, click on Add-Ins as shown below.

add-ins Ribbon Customization for MS Office Word 2010

Step 4: Now select Template from the drop down placed next to Manager in the same window as shown below.

template-manager Ribbon Customization for MS Office Word 2010

Step 5: After selecting Template click on Go, the Template and Add-ins window will appear. Your Normal template file will appear here in section named as “Checked Items are Currently loaded” as shown below.

currently-loaded Ribbon Customization for MS Office Word 2010

If the you have some other template which you want to use in the current opened document then you can either Attach the template file or Keep the template file inside C:\Program Files (x86)\Microsoft Office\Office14\STARTUP.

By keeping the template file directly into the STARTUP folder it will automatically be picked by MS Office 2010 for use.

Step 6: Till now we have seen that where the template files are located and how it is used in our document. Now we are going to customize our ribbon. In order to do that, open the Custom UI Editor that you installed.

The interface will look like as shown below.

custom-ui-editor Ribbon Customization for MS Office Word 2010

Step 7: Click on File and Open the Normal.dotm file inside Custom UI Editor as shown below.

open-template Ribbon Customization for MS Office Word 2010

Step 8: Your file will be listed in the Custom UI Editor as shown below.

custom-ui-editor-2 Ribbon Customization for MS Office Word 2010

Step 9: Now go to the Insert tab and add XML code the new Tab as shown below.

insert-tab Ribbon Customization for MS Office Word 2010

After completing Step 9 the custom UI Editor screen will look like as shown below:

custom-ui-editor-3 Ribbon Customization for MS Office Word 2010

It will create a customUI14.xml file in which you have to configure your write your code.

Step 10: As you can see that the code contains a Tab > Group > Button, you can change the name of in the code, these are default names provided by MS Office when customizing the UI.

Now add an icon to for your button, so right click on cuctomUI14 and select Insert Icons… as shown below.

tab-group-button Ribbon Customization for MS Office Word 2010

Step 11: Choose an icon from your system, please remember that the icon size should be 32 x 32 (16 x 16 is okay too) and the file extension should be PNG since PNGs work best.

We have inserted an image as shown below.

insert-image Ribbon Customization for MS Office Word 2010

Step 12: Now customize your code as per your need, the xml code after customization is as follows.

customize-xml Ribbon Customization for MS Office Word 2010

Here “Test” is the macro which will be called when this button is clicked, and the code for the macro is shown below.

test-macro Ribbon Customization for MS Office Word 2010

Step 13: After completing the code changes in the XML file, validate it by clicking on the Validate as shown below.

validate Ribbon Customization for MS Office Word 2010

If the XML file is correct, you will receive an correct message as shown below.

xml-well-formed Ribbon Customization for MS Office Word 2010

Step 14: Now Save your XML code.

save-xml Ribbon Customization for MS Office Word 2010

Step 15: Open you Template and include the newly created custom button to your document. Right Click on the Home tab area and go to Customize Ribbon Tab as follows.

customize-ribbon Ribbon Customization for MS Office Word 2010

Step 16: Select All Commands as shown below.

all-commands Ribbon Customization for MS Office Word 2010

Step 17: Search for your button which you have created in the XML code, the button created in the XML code in Step 11 is shown below.

new-button Ribbon Customization for MS Office Word 2010

Click on Add, to a specific tab where you want to shown thisa button, I have created a new tab name as Testing and add this button to the new tab as shown below.

add-new-button Ribbon Customization for MS Office Word 2010

The button is visible in my new tab called Testing.

testing-new-button Ribbon Customization for MS Office Word 2010

Step 18: Now when you click on this button the macro code will be called and the ouput is shown below.

button-demo Ribbon Customization for MS Office Word 2010

And that  is how you  customize Ribbons in MS Word 2010 and add new controls in your MS Office supported files.

Focus Brings Results!

software_development_optimus-300x300 Focus Brings Results!As an IT services company, we get to work on a lot of different projects. It’s very exciting because we have the opportunity to work with industry leading clients on cutting edge solutions. Sometimes we’re working on technologies that we’re very familiar with and sometimes we’re working with brand new tools and platforms – regardless of the tool set we’re using, we truly believe that “Focus Brings Results!”

With that spirit in mind, we have decided to roll out a few specialized practices within our organization: OptimusInfo, OptimusQA, OptimusBI, and OptimusMobility. Each of these four practices (as detailed below), are focused on their specific niche. This specialization enables our teams, processes, and clients gain better experience and value by being passionately dedicated to a specific skill set.

optimus-logo Focus Brings Results!

OptimusInfo: This is the root of the organization. It’s focused on our Software Development projects and System Integration services.

 

OptimusQA-Logo-300x84 Focus Brings Results!

OptimusQA: This practice is dedicated to the art and science of Quality Assurance. Including both Manual and Automated Software Testing, OptimusQA strives to be the best QA organization in town.

 

OptimusBI Focus Brings Results!OptimusBI: This practice focuses on business intelligence solutions. From Report Development services to Data Warehousing, OptimusBI is your full service BI partner.

 

optimusmobility-logo-website Focus Brings Results!

OptimusMobility: This practice handles all of ourMobile Application Development and Testing projects. Our focus on embedded, native, and web-based solutions ensures our clients receive the most suitable solutions.

 

What does this mean for you?

 

If you’re interested in QA – check out our Software QA blog. If BI is your passion – check out our BI blog at OptimusBI where we share the latest news and tips. If you think mobile is the most exciting, on our mobile application development blog we focus on apps, frameworks, libraries, and devices. And of course, for those software developers and generalists, keep your eyes on our OptimusInfo blog for all the latest news from each of our practices.

Creating Balsamiq Mockups

Tool-for-creating-mockups-150x150 Creating Balsamiq Mockups

Sketches are casual so stakeholders aren

Lately I’ve been using an excellent web/desktop application, Balsamiq, for creating interactive mockups. It can be used to create a screen-by-screen overview of a proposed mobile, desktop, or web application. Recently I mocked up a 30+ screen mobile/web client then exported it to PDF to share with a client.

In addition to exporting your designs to PDF, you can launch an interactive prototype via a web browser. This can be shared with anyone on the web or you can invite users to add comments or even collaborate.

Steps for Mocking up a Software Solution:

  1. Establish Requirements: list the system’s business requirements.
  2. Create high-level use cases: list the main actions a user will take. It’s best to write use-cases or tasks from start to finish. For example: Log into system, go to settings, update email, save, log out.
  3. Create template: creating a basic template for your application will save on re-work. Every application generally has a framework of common elements. By creating a template you can ensure you have one standard look/feel/functionality throughout the application.
  4. Create your mockups! The exciting part is putting all the pieces together. I advise going through the list of use-cases and creating them one at a time. By the end you should have all required screens setup in a very user friendly fashion. By focusing on use-cases instead of requirements, you’re forced to focus on user experience. Good software is intuitive and quick. Common tasks should be no more than a few clicks/taps away.
  5. Run your prototype: once you have created a few screens and links between them, you can run your prototype in your browser. Although it won’t feel the same as an actual application, you start to get a really good idea of the system.
  6. Share your mockups! Sharing is easy. You can either copy the prototype URL (which are public by nature but nearly impossible to guess) or export the PDFs. I recommend both.

If you’re looking to get some software developed, I strongly recommend playing around in Balsamiq and getting your ideas “on paper.” By putting your ideas into an interactive medium, it’ll be easier to imagine the final product.

Can a lean startup mentality work for all stages of business?

lean_startup_vancouver-150x150 Can a lean startup mentality work for all stages of business?

Lean Startup Vancouver

This was the question at the latest Lean Startup Vancouver event and some top-notch speakers from industry leading companies shared their opinions. Spoiler alert: Yes, we can all benefit from the lean startup mentality.

Jesse Heaslip started the night off with an introduction to the lean movement and gave an overview of Eric Ries’ Lean Startup phenomenon. He explained how he took an idea and with little programming experience created a proof-of-concept that could be demo’d to potential users. This simple example illustrates the lean startup mentality: fail fast. Get your idea to end users as fast as possible to see if it has traction.

Allen Pike from Steam Clock Software later took the stage to explain how his JavaScript user group (VanJS) quickly gained popularity. As a full-time entrepreneur, he had to be efficient with his time and applied lean concepts to get the most results from the least input.

One of the heavyweights of the night came from SAP. Lawell King, Senior Director of Engineering at SAP in Vancouver, explained how SAP is shifting to the agile methodology. He told the audience of 160 people how even a huge incumbent like SAP can transform into a more iterative, fast paced work environment. He explained how it’s much more rewarding and exciting to be involved in a rapidly improving organization.

The second key speaker was Stuart Ashman, currently the QA Director at Joyent but previously handling QA at Sophos. In his 6-years at Sophos he helped the company shift to an agile software testing methodology. He explained how automated testing and flipping the testing triangle (so more testing is done by automation and less bugs are left for users to discover) they were able to reduce the frequency of deployments from once-per-quarter to several times per day.

Lastly, Melissa Ness, Senior Interaction Designer and Usability Specialist at Vision Critical, described how even UX can be lean by getting mock-ups in the hands of end-users early on and feedback sessions can be done remotely. This focus on failing fast and getting feedback from key stakeholders early results in much less wasted time on misguided efforts.

Watch the video below to see some pre-presentation interviews with the speakers.

Lean Startup Vancouver: Speakers – March 8th, 2012 from Jin Lee on Vimeo.

Thanks to Jin and Jesse for putting on a great event.

At Optimus we’ve learned and adopted the lean methodology in all that we do. From software development, to testing, to business intelligence we believe that getting an early mock-up or proof of concept into our clients hands is invaluable. Our projects are always broken down into 1-2 week sprints with deliverables and customer feedback.