воскресенье, 8 июля 2012 г.

CMake is awesome for building C++ projects and worth few hours to learn and start using it: http://www.techminded.net/blog/modular-c-projects-with-cmake.html

среда, 4 июля 2012 г.

IT as service

Many of software developers and people other IT-related specialists really like their jobs. Like not because of good salary or nice office, not only because of this. They primarily getting fun from software engineering process. Programming, analytic, graphic design all these thing give man ability to feel joy of creation, to take part in competition between just the same but not, of course, as good as You creators. So more creation tasks they have in project more joy they have. Almost nobody like monotonous, small and non-creative tasks like fixing defects (bugs), support and develop 3rd party software.
This situation counterparts for non-IT people. Let's imaging you bring your car to service to have regular examination or just to change oil in engine. But service man made serious face and said that they should reassemble engine entirely from scratch in order to make this car able to move again. Or may be reassemble and change everything under the hood. And sure he can not believe that this car was able to drive before. You're lucky that you brought this crap to him and engineers that assembled and served it before are unskilled morons and actually real idiots. And one more thing ... This will take 3 months and cost you several hundred thousands ...
If you drive(ed) a modern car you probably has no chance to check if all things that was proposed are really needed. And you probably will not agree as you were going to just replace the oil. And you will probably try to find another service that will propose you twice cheaper solution or maybe 10 times cheaper. IT industry is kind a magic allows to perform similar looking things for really different time and price. And you probably already had same situation a month ago or you will agree this time but no more further payments. Because you just want to drive your car and not really interested to understand and have under-the-hood problems.
 This situation often is not objectively visible and understandable by IT guys as they are getting fun from job. And IT-guy is in most cases honest with you when saying that "we should rewrite everything from scratch" even if he repeats this often. One more thing here is that IT is industry of youth people. Young specialists are cheaper, more motivated, they lobby new and beautiful technologies and patterns .. and they are getting skilled on tasks like "reassemble from scratch" or "invent new kind of wheel" but not with changing oil. Getting fun and skill with your investment;)
This entry is primarily for IT-people to see the other 'client' side of process.So if you are on the developer side:
Don't try to sell 'refactoring', 'bugfixing' tasks, especially when system is developed by you, nothing from requirements was changed and will not really changed after you get it finished. You can get approval but only with high risk to loose client and reputation damage.
If you are product/business owner:
Ask what real value you will gain for your investment if you offered to invest in 'refactoring' or 'modernization' of your project.