Archive

Archive for July, 2006

Points of interest: ACM CareerNews: Tuesday, July 25, 2006

July 28th, 2006

 “Biz Tops Tech in Job Hunt” Information Week, July 17

In addition to technical skills, managerial experience and project management skills, recruiters are now looking for IT workers with … top-flight communication skills that enable them to interact with customers, managers and other co-workers.
http://www.informationweek.com/news/showArticle.jhtml?articleID=191000023 

Original source: http://www.acm.org/careernews/issues/v2_i12.html

Author: Adam Kahtava Categories: Career News Tags:

Quality Assurance: Unit Testing: Test Driven Development (“TDD”): “Write the test first”

July 19th, 2006

The quality assurance (QA) activities in software development generally include: defect tracking, Unit Testing, source-code tracing, technical reviews, integration testing, and system testing. Out of these activities: Unit Testing, source-code tracing, and integration testing are informally left to the developer. Out of these three developer specific activities, Unit Testing seems to be the most overlooked and misunderstood activity with the greatest potential for improving the development process (improving quality, efficiency, etc…).

The procedure [for Unit Testing] is to write test cases for all functions and methods so that whenever a change causes a regression, it can be quickly identified and fixed. – Wikipedia: Unit_testing

By writing good unit tests and employing a good Unit Testing framework you can significantly improve your software development cycle. By writing unit tests you decrease your dependency on a debugger, decrease source-code tracing (debugger walkthroughs), and so on. And by employing a good Unit Testing framework you can begin to lay the scaffolding for other forms of developer specific testing (integration, system testing, and even GUI testing). Unit Testing also contributes to better documentation – if a developer doesn’t understand the purpose of a component they can now read an additional piece of documentation, the unit tests. Unit Testing and Unit Testing frameworks can bring a team of developers to the same level – the capabilities within a team vary by developer. By using the same underlying framework, by identifying general areas that always need Unit Testing we develop a heuristic approach to testing and with that, test patterns, and a new vocabulary to assist with inter developer communication – design patterns accomplish a similar goal. Marc Clifton has a tutorial on Unit Test Patterns.

Unit Testing has its flaws just like any other technique or methodology – there are no silver bullets. Unit Testing is contingent on GOOD unit tests – it’s just as easy to write bad code that works, as it is to write bad unit tests that pass (work). Unit Testing won’t catch every error, but that’s the reality of writing programs, it’s also why we have a large number of software testing (QA) activities – writing software that is 100% bug free is impossible. These are just a couple issues with Unit Testing.

[Test-Driven Development is] a computer programming technique that involves repeatedly first writing a test case and then implementing only the code necessary to pass the test. The goal of test-driven development is to achieve rapid feedback. – Wikipedia: Test-Driven Development

The Test-Driven Development (TDD) programming technique is fundamental to many of the Agile methodologies – particularly the Extreme Programming (XP) methodology. The TDD approach uses Unit Testing as a process for designing and testing software. The core idea behind TDD is to have the developer “write the test first” then write the code to pass the test. The technique forces the developer to “thinking before acting” which is really a “best practice” advisable for everyone – I would hope that “thinking before acting” is practiced informally by most experienced developers, but that’s often not the reality. Other programming techniques that revolve around the “thinking before acting” idea include: the Pseudocode Programming Process (PPP), and the Program Design Language (PDL) Both the PPP and the PDL have gained exposure through Steve McConnell’s book Code Complete.

The mature unit testing frameworks that have gained popularity through the TDD / XP community are important; unit testing through these frameworks will compliment any quality assurance plan and improve any development process.

For more information on Unit Testing and TDD see the following:

Author: Adam Kahtava Categories: Quality Assurance, Software, Testing Tags:

A great source for AJAX Frameworks and Tutorials: www.ajaxprojects.com

July 18th, 2006

I came across a great AJAX portal site this morning. This site covers a variety (PHP, JAVA, .NET, Ruby, etc…) of AJAX Frameworks and Tutorials. Visit Ajax Projects: http://www.ajaxprojects.com/

Ajax, shorthand for Asynchronous JavaScript and XML, is a web development technique for creating interactive web applications. The intent is to make web pages feel more responsive by exchanging small amounts of data with the server behind the scenes, so that the entire web page does not have to be reloaded each time the user makes a change. This is meant to increase the web page’s interactivity, speed, and usability.Wikipedia: AJAX

Author: Adam Kahtava Categories: .NET, AJAX Tags:

Quality Assurance: Advanced Unit Testing: NUnit

July 17th, 2006

Marc Clifton has a great five part series on Advance Unit Testing. Throughout these articles Marc builds a Unit Testing framework based on the NUnit framework – NUnit is a Unit Testing framework for Microsoft .NET, it’s very similar to the JUnit framework for Java. Marc explores Unit Testing, the interworkings of Unit Testing frameworks, and the XP methodology.
Don’t be intimidated by the number or size of these articles – most of the content is source code.

  • Part I: Introduction to unit testing and a case study taking the XP process up to the point of writing some unit tests
  • Part II: Implementation of an NUnit look-alike and developing the case study further with real tests and real code
  • Part III: Implementation of NUnit extensions, revising and progressing with the case study
  • Part IV: Using reflection to create unit tests that are script based instead of code based, and the impact of that on the case study
  • Part V: Unit Test Patterns

Points of interest: ACM CareerNews: Tuesday, July 11, 2006

July 11th, 2006

“The China Gambit” CIO.com, June 15

Currently, China is facing a shortage of IT executive and management talent, leading many firms in China to accelerate their recruitment of Westerners with hands-on knowledge of how to manage in a multinational environment. … IT in China can be a real challenge for Westerners … managers must confront old and established hierarchies within Chinese companies. … Chinese companies came aboard when their enterprises were run by the state and Communist party. … As is typical within any bureaucracy, they are unaccustomed to rapid change. They often resist new ideas, especially when they come from outsiders. http://www.cio.com/archive/061506/china.html?source=ciocareers 

Some notes on this article:

It’s important to point out that the “established hierarchies” the author makes reference to are in fact “ancient hierarchies” and have existed within Chinese, Japanese, and other Asian societies for thousands of years. These hierarchies are engrained in their sophisticated cultures, and aren’t something you can expect to change. I agree, managers and IT workers must confront these structures, but in a similar way you approach “culture shock” – you soak up your new environment, adapt, and practice cultural sensitivity. Most successful companies in Japan work within the bounds of the system (the bureaucracy), with a façade (a presentation layer) of Asian business men as their connection between the companies (the local community) and the IT workers. As an IT worker or a company you’ll have to work against the idea of sustainability, buying local, and various forms of anti-globalization, etc…

“The Broken MBA” The Chronicle of Higher Education, June 23

the MBA degree is broken and no longer relevant for many sectors of the U.S. economy … graduates need to be better prepared for work at small-scale organizations such as those found in areas like Silicon Valley. http://chronicle.com/free/v52/i42/42b01601.htm

Original source: http://www.acm.org/careernews/issues/v2_i11.html

Author: Adam Kahtava Categories: Career News Tags:

Computers “merely wires and lights in a box.”

July 10th, 2006

[The computer] can teach, it can illuminate; yes, and it can even inspire. But it can do so only to the extent that humans are determined to use it to those ends. Otherwise it is merely wires and lights in a box. - Edward R. Murrow

The dwindling interest in computer related professions and the growing demand for these professionals are continually in the news. Governments, teacher associations, and corporations are all taking initiatives, but the problem – as many have pointed out – is much larger lying in a deeper social and cultural context.

In the 50s Edward R. Murrow gave a speech where he criticized television and radio for becoming a form of entertainment akin to show business. Like other intellectuals of the time, Murrow was concerned that the informative, and educational qualities of TV and Radio were being lost. He suggested that the shift from information to entertainment would deeply affect our future, our society, “our culture, and our heritage” (Edward R. Murrow). Now, today TV and Radio is show business (Hollywood), and computers are an entertainment medium rivaling the TV. Today the computer is facing a paradigm shift similar to the shift TV and Radio underwent in the 50s.

Computers are a form of entertainment for most of the younger generation. This younger generation (coined Generation Y, the Google Generation, etc…), have been weaned on robust operating systems, complex (mostly mature) software, the internet, and a popular consciousness (pop culture) that discourages intellectual careers. Not to mention; they’ve grown up in an era of overly complex entertainment and Hollywood. Many of today’s adolescents spend hours listening to music, loading mp3 players, playing games, surfing through web logs, chatting on Instant Messengers, and so on. The underlying technologies facilitating their entertainment are often perceived as magic, like “wires and lights in a box” (Edward R. Murrow). Michael Bishop put it well: “With the same passion that young people enjoy the music players and computer games which the industry develops, they need to realize that their own future lies in creating the software and the applications that enable those experiences.” As Michael points out, we need passion for computers and technology, but in order to inspire passion we need to spark an interest, work against the popular consciousness, and so on.

Sparking an interest; what we’ve been striving for in the software industry is now coming back to haunt us, we’ve successfully insulated the user from many of the complexities surrounding software. We’ve been so successful in abstracted and layered our systems that no one really sees what goes on beneath and as a result most people don’t care. Perhaps the passion for computing and technology could be rekindled if every adolescent were required to use applications like mIRC rather than programs like MSN. mIRC (as many know) is a simple chat application that gently exposes the complexities of the internet, and the world of programming  / scripting.

It’s encouraging to see initiative being taken by corporations, teachers, and governments. I think the most successful initiatives will be at the grassroots level; professionals talking with adolescents, parents (computer professionals) inspiring their children and extended family.

Anyhow; these thoughts are somewhat incomplete and were initially inspired by the movie “Good Night, And Good Luck” – a film depicting Edward R. Murrow.
It’s an excellent movie.

Author: Adam Kahtava Categories: Musings, Software Tags:

The Amazon E-Commerce Service (ECS) Web Services Description Language (WSDL) and ASP.NET

July 3rd, 2006

While developing a component for Amazon’s E-Commerce Service (ECS) Web Services Description Language (WSDL) (Version 4.0), I encountered a couple minor issues and found the following links of use:

Issues:

Version 4.0 of the ECS WSDL is not compatible with Microsoft’s Visual Studio (VS) 2003. However, the ECS WSDL works fine in VS 2005, a workaround for VS 2003 and other known issues can be found on the Amazon.com Associates: XML Developers Discussion Board.

Useful links:

This website pulls my reviews, and my recommended reading list off of Amazon.
The originating Amazon data can be viewed here: my Amazon reviews, my Amazon wish list.

Author: Adam Kahtava Categories: .NET, ASP.NET, Amazon, XML Tags:

Patriotism: Canada Day: “What defines a Canadian?”

July 1st, 2006

“What defines a Canadian?” Canadians around the globe are asked this question time and time again, today in the spirit of Canada Day I’ll highlight my perceptions of Canada.

Canada is an accepting, tolerant country with an eclectic variety of culture, food, nationalities, and ideas. We’re polite, pleasant, and modest. For the most part we’re international stewards, with global and environment concerns. We’re a young country without much historical culture, but as a young country we’ve had the opportunity to learn from our mistakes and the mistakes of other cultures and countries.

It’s hard to pin a single event or distinguishable feature on being Canadian (we’re so similar to the rest of North America), instead it’s more of a feeling.

Some Canadian facts:

  • There are more than 100 national parks and historic sites in Canada.
  • Canada has six time zones.
  • Canada’s capital, Ottawa, has the coldest average temperature of any capital city in the world.
  • Canada has approximately the same population as the state of California (USA).

Some Canadian quirks:

  • Beer is often associated with being Canadian, but we often overlook the wide varieties of delicious international beer.
  • We rate the environment as being one of our biggest concerns, but the tar sands continually increases our countries green house gas emissions.

Learn more about Canada on Wikipedia.

Author: Adam Kahtava Categories: Musings Tags: