Thursday, July 9, 2009

Cross platform development question.?

Recently I was given an assignment to develop code in C++ to automate some administrative tasks. The job was advertised as a Unix development position and an Oracle back end. Come to find out that they expected me to develop a develop the application for cross platform execution for Windows XP with a SQL server back end.





As if that wasn't bad enough, they expected me to do this using only ISO Standard C++ with a Gnu compiler and an old Vis. C++ compiler with no documentation. No DB libraries (AFAIK), no cross-platform libs, nothing. Not only that, but they had no requirements docs %26amp; no plan.





I had suggested doing the project in Python, but it was dismissed as he had no Python programmers to maintain it.





They wanted me to design and implement the system, but they did not want give me written requirements or the leeway to use tools of my choosing. And they wanted it in 3 to 5 months.





So the question is, was this as impossible a task as I thought it was?

Cross platform development question.?
I would run away. You generally use cross platform tools when your target environment doesn't support it's own dev tools (commonly embedded systems - e.g. DVD player, automobile controls).





there is no point in doing cross platform work if your target is Unix or Windows. Both platforms support their own dev tools.





Never mind the fact that they are being so secretive and cheap on tooling. That in itself is a huge red flag. They clearly are penny wise and pound foolish. It will be the worst 12 months of your life (Yes, I'm estimating it will actually take that long - the lack of known requirements guarantee that.)
Reply:This does seem like an awfully daunting task. You'd have to essentially write an application layer that was compatible between Unix and Windows (at least that's the first step I'd take). That alone could be a 6 month project depending on how extensive of a library you develop.





If you did it in Python, on the Windows side you could plug it into .Net using IronPython or Python.Net. That way you could develop cross-platform business logic in Python and use it at will on any platform.
Reply:Can you talk them into Java and ODBC? A C++ programmer has a pretty good shot at being able to read and maintain Java.





Right off the bat they have a conflict with insisting on ISO C++ on Unix and Visual C++ on Windows. Microsoft NEVER follows standards on anything, so there's a good chance the same source won't compile on both platforms. And if you do manage to create cross-platform compatible source, there's a good chance that what you have will look ugly on Windows because it won't be using any of the proprietary Microsoft extensions.





I wouldn't take a job with undefined requirements, and when they toss odd tool restrictions on top of that, I'd turn them down. But that's just me.
Reply:The lack of up front planning (no requirements) is a problem. I've developed plenty of cross platform programs (Windows and linux). Win Dev does support the ANSII C++ standards but you would be writing command line (console) programs.


I think the task is definitely a challenge. But doable (maybe not in five months).


It sounds like you're a contractor. You will come across a lot of companies that expect you to come in and figure it out your self.


You have to be very proactive in the design and development and work within the constraints they apply. If you you are working and show progress they will ususally let the schedule slide somewhat.


I am not saying that this is a reasonable way to operate. That company obviously doesn't have its act together. I am saying as software engineer your will find a lot of these kind of jobs. Nobody in house has the expertise or time to do the work or specify the project so you come in with their wishlist and fill in the details.


2 comments:

  1. Hello,
    The Article give detail information about Cross platform development ,It give detail information about various Question about Xamarin or Cross Platform App Development.Thanks for Sharing the information.Xamarin Developer

    ReplyDelete
  2. The Article on Mobile testing Services Map is awesome nice pie chart description, thanks for sharing the information about it.Mobile app testing companies and load testing services.

    ReplyDelete