Here's a quick macro to assist with blocks of successive calls that should proceed as long as none of them satisfy
FAILED( operation ).
// HRESULT hr = S_OK;
// WHILE_SUCCEEDED( hr, function_returning_HRESULT() )
#define WHILE_SUCCEEDED( hr, operation ) ( SUCCEEDED( (hr) ) && ( hr = (operation) ) );
HRESULT hr = S_OK;
CPPUNIT_ASSERT( SUCCEEDED( hr ) );
CPPUNIT_ASSERT_EQUAL( S_OK, hr );
CPPUNIT_ASSERT( SUCCEEDED( hr ) );
CPPUNIT_ASSERT_EQUAL( S_FALSE, hr );
CPPUNIT_ASSERT( FAILED( hr ) );
CPPUNIT_ASSERT_EQUAL( E_OUTOFMEMORY, hr );
HRESULT hrPrevious = hr;
bool executed = false;
// Test that executed = true should not be executed
WHILE_SUCCEEDED(hr, ( executed = true, S_FALSE ) )
CPPUNIT_ASSERT( FAILED( hr ) ); // hr should not have been assigned S_FALSE
CPPUNIT_ASSERT( ! executed ); // executed = true should not have been executed
CPPUNIT_ASSERT_EQUAL( hrPrevious, hr ); // hr should not have a different value than previously assigned
Excerpts From: Java Creator James Gosling: Why I Quit Oracle - In an exclusive interview with eWEEK, Java creator James Gosling discusses a series of issues he earlier declined to take public, including why he left Oracle.
- Also, asked whether in hindsight he would have preferred Sun having been acquired by IBM (which pursued a deal to acquire Sun and then backed out late in the game) rather than Oracle, Gosling said he and at least Sun Chairman Scott McNealy debated the prospect. And the consensus, led by McNealy, was that although they said they believed “Oracle would be more savage, IBM would make more layoffs.”
- However, in Gosling’s case personally, he may have fared better at IBM, where technical savvy is generously rewarded. For instance, when IBM acquired Rational Software they saw value in Rational’s chief scientist Grady Booch, co-creator of the UML (Unified Modeling Language), and made him an IBM fellow and more.
- “All of the senior people at Sun got screwed compensation-wise. Their job titles may have been the same, but their ability to decide anything was just gone.”
- Also, there are number of interesting comments on Google's use of Java in Android and the relative merits of software patent litigation.
This is an interesting read on employee motivation, reconfirming that the intangibles - including intellectual / creative freedom really do matter.
I have always felt that Software Development is as much a creative / artistic endeavour, if not more so, than it is a science. The scientific aspects reinforce the need for considered methodology, measured responses to create healthy feedback loops on both progress and results, and the imposition of order upon chaos (e.g. design, usability and information architecture). This is true as well of all fields of human activity traditionally considered by many to be purely creative / artistic: music, art, architecture etc...
I believe many technical managers would do very well to contemplate this in hiring by gauging creativity and in production by allowing time boxed exercises to evolve functional and non-functional capabilities. At worst, some time is lost in 15-30 minute manageable increments, but even then, the team benefits from the exercise in many ways. Trust the team, give them the support and tools they need, then prepare to be amazed at how they will add unexpcted value - often willingly contributing their own time.
Some jumping off points I've encountered today and agree with on the management of software development processes and professionals:
It's all about the people and the way they communicate and interact.
A recent LinkedIn question on Software Estimation and Agile Methology included a concern that Agile could lead to Procrastination. I believe otherwise as detailed below. What has your experience been?
Software Estimation and Agile Methodology
I am new to Agile Methodology. I am working on a project which is following Agile. I have the following questions:
- What are the estimation techniques for Agile?
- Typically which type of Projects use Agile?
- In the name of Agile, can people procrastinate every single decision during requirements gathering? For example, we know what is expected but we don't know the most atomic level of the requirement. Say, I know I must build a webpage, but I don't know the validation of the webpage.
I think Agile principles can be an antidote against procrastination. I would agree with the thoughts expressed in this post. If you continually drive to keep the design and implementation as simple as possible and don't get overly concerned with anticipating potential future needs, there is nothing left to do but build what you know is needed now. Continue reading...
The following question on LinkedIn caught my eye as something that is often assumed
in project management and estimation efforts.
Testing hours as function of development hours.
Does it make sense to say that number of testing hours in a project should be a function of the number of development hours, such as
TestingHours = X% * DevHours? If so, what should X% be. What considerations
would make it be lower or higher. Are there industry standards around this?
In a word - no.
There are just too many variables at play of which some will include: Continue reading...