How to "sell" wxWidgets to your company
Posted: Sun Oct 10, 2004 10:58 pm
Hi.
I'm a full time C++ developer working for a big company. However, I belong to a somehow small (less than 20) and to some degree "independent" group, and we're responsible of developing several products, some of them in C++.
It's common practice in my company not to use 3rd party libraries with the sole exception of Microsoft-based ones (ATL, WTL, and MFC). I've started to work in yet another "small" project that has been "frozen" for 2 years that (surprise) implements the same set of "core" classes all over again. You get the idea.
We (another developer and myself) have to maintain and extend this product, and we've discovered that some of the wxWidgets classes would be of great help.
The problem we have at the moment is that our managers, none of which know C++ and that have an inclination to use Microsoft products most of the time (you know, "nobody gets sacked for choosing Microsoft products") are objecting the use of this library, because:
* they feel that it could be "yet another unsupported library" (I think I can handle that one sending them links to several projects that use this)
* the license would not be compatible with the "special" situtation of having to show some of our customers the source code. I'm planning to object saying that considering we are not allowed to show Microsoft's standard library code cos that's a "requirement", we can say the same thing about wxWidgets.
* now the tough one: they think that MFC is so similiar to wxWidgets that there is no compelling reason to be the "odd one out" within the company.
Some of my project characteristics:
* It's a stand-alone executable that connects with two specific servers (each of a different type) and n clients, has multiple threads, and needs improving the architecture (such as elliminating unnecessary threads, using resource locking for some resource access, etc.).
* It currently uses MFC for some well defined tasks: GUI mainly.
* It was originally (until the MFC was starting to get used) written to be deployed to some Unix flavours and Win32. Of course it's a Win32-only app now.
I'm tempted to go the "potentially easy to port" route to justify the use of wxWidgets over MFC, but I fear the rudest "We don't care about portability... It's a Windows-only world after all".
The other idea I've had is to say that a mature and well-designed (better than MFC in several aspects, for example event handling) library will make the life of developers easier and more enjoyable, but as we all know managers don't really care about those things, so that's another "no-no".
So I guess I need some help here from you, the more experienced wxWidgets users and developers, to stress business-related benefits to use wxWidgets over MFC, even for a project where portability was once regarded as a bonus, but that now the portability aspect of it might be (I don't know for sure yet, as I didn't play my next "card" in this game) seen as a problem or obstacle instead of valuable for the project and ultimately for the company and their customers.
I'm a full time C++ developer working for a big company. However, I belong to a somehow small (less than 20) and to some degree "independent" group, and we're responsible of developing several products, some of them in C++.
It's common practice in my company not to use 3rd party libraries with the sole exception of Microsoft-based ones (ATL, WTL, and MFC). I've started to work in yet another "small" project that has been "frozen" for 2 years that (surprise) implements the same set of "core" classes all over again. You get the idea.
We (another developer and myself) have to maintain and extend this product, and we've discovered that some of the wxWidgets classes would be of great help.
The problem we have at the moment is that our managers, none of which know C++ and that have an inclination to use Microsoft products most of the time (you know, "nobody gets sacked for choosing Microsoft products") are objecting the use of this library, because:
* they feel that it could be "yet another unsupported library" (I think I can handle that one sending them links to several projects that use this)
* the license would not be compatible with the "special" situtation of having to show some of our customers the source code. I'm planning to object saying that considering we are not allowed to show Microsoft's standard library code cos that's a "requirement", we can say the same thing about wxWidgets.
* now the tough one: they think that MFC is so similiar to wxWidgets that there is no compelling reason to be the "odd one out" within the company.
Some of my project characteristics:
* It's a stand-alone executable that connects with two specific servers (each of a different type) and n clients, has multiple threads, and needs improving the architecture (such as elliminating unnecessary threads, using resource locking for some resource access, etc.).
* It currently uses MFC for some well defined tasks: GUI mainly.
* It was originally (until the MFC was starting to get used) written to be deployed to some Unix flavours and Win32. Of course it's a Win32-only app now.
I'm tempted to go the "potentially easy to port" route to justify the use of wxWidgets over MFC, but I fear the rudest "We don't care about portability... It's a Windows-only world after all".
The other idea I've had is to say that a mature and well-designed (better than MFC in several aspects, for example event handling) library will make the life of developers easier and more enjoyable, but as we all know managers don't really care about those things, so that's another "no-no".
So I guess I need some help here from you, the more experienced wxWidgets users and developers, to stress business-related benefits to use wxWidgets over MFC, even for a project where portability was once regarded as a bonus, but that now the portability aspect of it might be (I don't know for sure yet, as I didn't play my next "card" in this game) seen as a problem or obstacle instead of valuable for the project and ultimately for the company and their customers.