RoxxSoft Development Blog
Posts tagged Developers
A wrong approach to outsourcing and how corruption can earn a good place in business. Part #1
Sep 3rd
The last company i worked on, had a very wrong approach to outsourcing, apparently someone thought a good idea to send the project leaders on site, sometimes at the other side of the globe, in different time zones, while the developers and testers remained on our offices, this caused so many communication and trust issues that projects started to die all over the place.
A case i remember very vividly happened like this, we had to build a new installer our project, since we had just recently added a few components that required a windows restart and several modifications to the system, so i assigned a task to one of our guys, he started working on the installer, and while he was testing, he had to restart his own system each time he made big changes to the installer code, just because, you know, we didn’t have a testing machine, we only had our workstations for testing (yes, management was that cheap), so as it happens, our project leader goes online and sees our guy is offline, he immediately contacts me through IM and asks what’s going on, why isn’t he online? i explain the situation, he says, well OK, let me know when he will be back online as i need to know the status of that task.
After ending our chat, he goes and starts asking several team members about our guy, he goes even as far as saying that this guy hasn’t been on the office for two days or more, and that we are hiding his absence and helping in cheating our project leader, this was so comical, that we asked our guy to come online and end this situation, but of course that wasn’t enough, project leader simply said “you just got to the office didn’t you? you are going to get fired, you are lazy and have been missing because i have tried to contact you today and you didn’t show up”.
In a team where what the project leaders stated had to be taken as final, what chance we had to explain this was a mistake? the project leader was so disconnected from our team, that he didn’t even knew most of the new guys, and only through phone calls and chats we could get organized and have status meetings, which by the way, were awful, long and prone to mistakes and misunderstandings.
After a while, it became obvious this approach was terrible, so a few developers were tasked with local management issues and as bridges between the ‘real management’ on site and the developers, this caused even more trouble, since we talked directly to our local ‘leaders’, which most of the time, could not actually understand the issues and in turn they delivered wrong status reports to the on site leaders, this caused trouble and people started to fight each other for any reason at all, projects started to fall behind, the client didn’t knew what was going on, as management had a policy of silence and what happens on our offices stays on our offices, at the end, management had another idea, instead of sending the project leader to the client site, they created a new position on our side, a project leader that was going to handle all development and testing activities, as well as talking to the developers for any personal issues, meanwhile, the ‘fake’ project leader on site was supposed to continue working with the client as if he actually was the project leader, this caused still more disconnection and lack of trust from the developers, as we felt we didn’t have a voice since there were many layers between the client and ourselves, and we “knew too much” so we weren’t allowed to talk directly to the client, less we would bring the truth out by mistake..
It has been almost a full year since i left, and from what i have heard from friends and coworkers, things are still the same, and the company is still being listed among the best places to work, and receiving awards and creating a very good name for itself, while on the dungeons someone does the dirty work, someone up there receives an award for an excellent leadership..
That goes to show that on this industry, eye candy will always be valued more than actual content or features, and so it goes the same for software than for PR and the clients.
COM without MFC/ATL/Whatever
Nov 6th
I’ve seen a lot of programmers lately that write COM as one of the things they are experts at, but, once you actually put them to the test, they turn out to know the bare minimum of what COM is and how to use it, and why is this? most of them turn out to be Visual Studio programmers, not actually C/C++/C#, etc programmers.
By Visual Studio programmers i mean, those who can only code with VS, take them out of the environment and they are completely lost, ask them to create a windows application without the application wizards and it’s a no go.
Of course most of the people would say, it doesn’t matter, what are the chances that you end up having to work without VS?, yeah i know, if you know where to look for work, you will never find yourself under those circumstances, but how sad that is for anyone who sells himself as a true professional?
Anyway, i had a rather funny situation in which i wrote a c# com object and loaded it from c++, one of the programmers was very impressed, because as far as he knew, you could use c++ from inside a c# application, but not the other way around, so i explained that the c# object was a COM object so there was no problem loading it from c++, but he could not really get it, and why? because funnily enough, he thinks COM is a c-only technology, well now he knows better, but wait, why was this guy hired in the first place? as a windows programmer, to lead the development of a windows application that uses COM as one of the principal technologies with an Office add-on and IE plug-ins and a lot of COM related programming, but he doesn’t really understand anything that is happening, VS does all the heavy work.
So i though about it and decided to write a very simple IE plug-in using the Visual C++ Express edition as with all the code on this site, by reading the code of this plug-in you will be able to see how a COM object actually works without wizard generated code or anything else but what you will find on the source files of our project.
When i say, COM without MFC/ATL, what i mean is, most of the people i know that use COM think it is somehow heavily related to using MFC or ATL, when in fact it is not, there are even those who for some reason believe COM == OLE, how can this happen, for one i think Microsoft’s documentation about COM is very hard to understand for beginners, and second, by using tools like VS most of the knowledge developers could get is taken away from them by the wizards that write all the code and just leave the developer to fill in the methods, which leads to developers who depend on the generated code since they just know that by filling those methods things will work out ok, without having to understand how or why.
So, for those who really want to learn the how and why, I’ll be posting a simple tutorial on the very basics of COM, and i mean really very basics, starting from how a class is made and virtual tables and pointers to methods, interfaces, etc.
Now i would like to ask all windows programmers out there, how much do you really think a software developer needs to understand about windows technologies to describe that person as an “expert” ?
Win32 and Visual C++ Express Edition
Sep 15th
I’ve been working with the Win32 api for a very long time, even for my client’s apps i tend to use Win32, i don’t like MFC, i have made several applications with MFC and Windows Forms, but i still keep working with Win32 whenever i have a chance. In fact i usually work with STL instead of any other c++ library, why? well for a start, it is easier to port the code to another operating system, and second, i don’t like to bloat the app just because i don’t want to leave the comfort of the new “modern” APIs.
Yeah, i know that’s not the best API, or the coolest one, or anything fancy at all, but i like the speed and the small size i get with applications made using just Win32.
A few days ago i decided to try Visual C++ 2008 Express Edition, and i realized that it only supports Win32 applications, and to my surprise, no resource editor, so how new programmers who are interested in learning to program C++ applications will do without the resource editor? is this version of Visual Studio for students and beginners? or for hard core programmers who can really understand the Win32 API inner workings as they have spent several years learning every function, message, parameter and structure supported by this api?
I’ve tried Visual C# 2008 Express, and of course this one does have the resource editor, you can add controls, forms, format and set properties all using visual controls, i guess Microsoft doesn’t want people to actually keep using C++ and instead they want them to go to C#.
Otherwise, i don’t see a reason to remove the resource editor from Visual C++.
Anyway, i have decided to keep the Express edition installed and implement some free apps using this compiler just because well, it is free, it seems fast enough, and i don’t care about the resource editor or any other stuff like that, i like to program like in the old days, if anything just to complicate my life and spend two hours building a user interface that i could get done in 10 minutes using the professional edition, or Visual C# Express.
Life goes on..

Recent Comments