An offer I can't refuse?
I'm currently in the first year of a compsci program (spent a few years studying Japanese before,) and was looking for some work on the side to supplement my income. Through a recruiting agency that specializes in renting out students (Academic Work, any scandinavians here will probably know of them,) I found a programming position with a local company which I have reason to think I might be offered (as the interview went really well.) However, I'm having some reservations.
The company in question provides position-based alarm services. They position cars, boats, cell phones, etc. of customers through GPS and GSM, letting their customers track their stuff and see what it's doing, raise an alarm if a tracked device is going somewhere it isn't supposed to, or if a vehicle that's supposed to be parked starts moving. They also offer various sorts of extra functionality, such as the ability to send an SOS through their system which then gets routed to wherever the customer thinkgs appropriate.
Now, their current system is built and maintained by an expensive and somewhat slow consultant. It's also built on various third party products requiring expensive licenses and apparently some parts of it aren't all that well thought-out. These two properties are fairly undesirable, and so they've decided that they need the system rewritten.
The system they want consists of two components:
* One service that pushes alerts, positioning requests and basically everything else around, entering incoming requests into a database, reading messages from the database and sending them to various tracked devices/cell phones/alarm centrals/e-mail/web APIs/whatever, translating said messages into whatever format fits the entity they're being sent to, etc.
* One extremely intuitive, user-friendly AJAXy web-based front end where customers log in to manage said service, not unlike Google Maps, except of course with all the functionality that's specific to this company's business.
They also want all of this to have a highly modular, plugin-based structure, to ease future development and allow customers to add their own functionality.
For this task, they've desired to hire one programmer, full time during june, july and august, and at about 8-10 hours a week after that, through a recruiting agency that specializes in students. Since there is no inside programming competence in this company, said programmer is to be responsible for pretty much everything about the entire project except for the database layout and network infrastructure. Also, since said programmer will have the old system to look at for reference, "you'll have it up and running in no time."
Now, my question is, would it be a good idea for me to accept this position, if offered? Is this project even feasible with the resources they've allocated for it? I'm getting the feeling the answer to both questions is no. Sure, it'd look good on my CV, but for one I've never worked with a project anywhere near the size of this, and the entire venture seems wildly optimistic to me, to say the least. It almost looks like a new TheDailyWtf story in the making, but as my experience is, as previously stated, somewhat limited, I don't know for sure.
You people are supposed to be a knowledgeable lot, experienced with this kind of thing. What do you think of the situation?
I consider myself a very fast and efficient developer, and that project description would be a stretch for a 3-month full-time schedule. It's possible, but I'd probably end up working 60 hours a week.
Also, if you have little experience with contracting work, you'll almost certainly fall victim to extensive feature creep, resulting in a project that requires a few man-years to complete. Of course, if you're paid by the hour and would rather have more hours, maybe this is a good thing... [grin]
Also, if you have little experience with contracting work, you'll almost certainly fall victim to extensive feature creep, resulting in a project that requires a few man-years to complete. Of course, if you're paid by the hour and would rather have more hours, maybe this is a good thing... [grin]
Note that I have no experience with this subject whatsoever, but i am sure of one thing: any cent below 50k for a project of this size and you are being ripped off.
I recommend reading "Code Complete". Among many other useful things, the authors discuss about a phenomenon called "beginners optimism" which is defined that the less real-world experience a developer has, the less time he/she assumes a project takes, due to not taking into amount all the nuances of his/her work that cumulatively add to the actual time taken by the project.
Via experience you will begin to see the the complete set of things that take time, and this results in better ability to estimate the time a project takes. Also, experience tends to make people work faster, if tools and resources aren't the bottleneck.
In the meanwhile, you need to play safe and assume that if the manager says the project should be complete in three months, you should at least multiply that by four and be aware that the project might still not be complete after a year. Anything else is unrealistic - I know this by experience.
The worst-sounding part of the spec is "allow customers to add their own functionality" which is a very open concept and can be very difficult to implement depending on the complexity and number of interfaces offered to the customers.
Feature creep is almost always a bad thing, even though you would be paid by the hour. It creates frustration to the developer, because the later a feature is added, the more difficult it is to integrate to the whole system; this is tedious and un-rewarding work, and yet the management doesn't appreciate it at all - after all, the project is almost complete so it should be easy!
I would advice against accepting the project, given current circumstances. I have a strong feeling that the management doesn't know anything about software development, and it's not fun working with people like that.
Via experience you will begin to see the the complete set of things that take time, and this results in better ability to estimate the time a project takes. Also, experience tends to make people work faster, if tools and resources aren't the bottleneck.
In the meanwhile, you need to play safe and assume that if the manager says the project should be complete in three months, you should at least multiply that by four and be aware that the project might still not be complete after a year. Anything else is unrealistic - I know this by experience.
The worst-sounding part of the spec is "allow customers to add their own functionality" which is a very open concept and can be very difficult to implement depending on the complexity and number of interfaces offered to the customers.
Feature creep is almost always a bad thing, even though you would be paid by the hour. It creates frustration to the developer, because the later a feature is added, the more difficult it is to integrate to the whole system; this is tedious and un-rewarding work, and yet the management doesn't appreciate it at all - after all, the project is almost complete so it should be easy!
I would advice against accepting the project, given current circumstances. I have a strong feeling that the management doesn't know anything about software development, and it's not fun working with people like that.
Niko Suni
Quote: no inside programming competence in this company, said programmer is to be responsible for pretty much everything about the entire project except for the database layout and network infrastructure. Also, since said programmer will have the old system to look at for reference, "you'll have it up and running in no time."You're a first year computer science student.
You have to take a big, working production system that is tested and functioning, and make it better.
Actually, no, you have to rewrite it; all those man-hours spent on making the old system work are not of much use to you.
You have to write and debug the core router, the interfaces to several external services, an AJAX-heavy frontend, and smoothly transition from the old system to the new one, by yourself, in three months?
It'll have to be at least up to the standard of the current working system, as in no bugs: it'll work as smoothly as the current system, only with more features.
Because the companies' staff, who aren't programmers, think a rewrite is a good idea?
On the assurance of the companies' staff, none of whom are programmers, that "you'll have it up and running in no time"?
Run away. The companies' execs are either clueless or on crack, and shouldn't be taken seriously.
looks like cost cutting Joe thought it would be a good idea to call rent-a-student to work on a complete re-write of a critical part of their business in record time.
That looks like a lot of work, even for a seasoned programmer. How did they evaluate the schedule?
On the other hand, the work looks interesting...
That looks like a lot of work, even for a seasoned programmer. How did they evaluate the schedule?
On the other hand, the work looks interesting...
Everything is better with Metal.
And I thought the projects I undertakes myself at my job were insane. Just getting familiar with the old software and researching new methods for integrating old systems would probably take more than 3 months. At 8-10 hours a week with all of the research you'd probably be doing I doubt many people with no experience in that area would make much progress in that time frame.
I wouldn't do it.
I wouldn't do it.
I'm also a first year computer science student, and I don't think I'd take that job if it was offered to me. I consider myself a decent programmer, and I'm at the top of all my classes, but there's frankly no way I could pull that off in three months. Now perhaps you have a lot more experience with this sort of software than I do, which would give you a big advantage over me, but even then they had better be willing to pay you very well. If they want to give you all the responsibilities of a seasoned professional programmer, you need to request that they offer you corresponding compensation.
Besides, transitioning from personal projects to professional development can be really intimidating at first, even if you're just hired as a junior programmer who performs simple maintenance tasks for a while. They're asking you to fast-forward four years not only in terms of knowledge but also in terms of how comfortable you are working in a commercial environment.
If it's offered to you, I would discuss your worries with the company. If they don't like that you're not confident you can do this in their highly restrictive time frame, then that should be a very strong sign that this is indeed a DailyWTF in the making. [smile]
Besides, transitioning from personal projects to professional development can be really intimidating at first, even if you're just hired as a junior programmer who performs simple maintenance tasks for a while. They're asking you to fast-forward four years not only in terms of knowledge but also in terms of how comfortable you are working in a commercial environment.
If it's offered to you, I would discuss your worries with the company. If they don't like that you're not confident you can do this in their highly restrictive time frame, then that should be a very strong sign that this is indeed a DailyWTF in the making. [smile]
Quote: Original post by Valderman
Now, my question is, would it be a good idea for me to accept this position, if offered? Is this project even feasible with the resources they've allocated for it?
Second question first: Not even remotely feasible. An expert (or team of experts) in the required technologies might be able to produce a working prototype in three months if a complete and exact specification existed and they were isolated completely from customer interference and feature creep.
Quote: They also want all of this to have a highly modular, plugin-based structure, to ease future development and allow customers to add their own functionality.And I want ponies and unicorns and a million-billion-jillion dollars. I predict that it will be an absolute failure -- they will probably never get a working system without scrapping all their preconceptions and forking out some serious time and cash. I have consulted on numerous projects of this sort and I would estimate 2 years/$180k based on the vague information provided (though that estimate would be primarily to scare some sense into them).
First question second: This project is doomed. Still a job is a job and failed projects can be a great learning experience -- just be aware of what you are getting into and that there may be a lot of unhappy people by the time you move on. If this is a mission critical project than don't be surprised if the whole company comes crashing down around you, it won't be your fault. Be clear about your skill level up front and when they start breathing down your neck, walk and don't look back.
Hope this helps
Thanks for all the replies, I guess I'm still in the market for a job then.
Quote: Original post by turnpastI was considering this, but I don't want to risk future prospective employers calling this company for reference and getting a story of how I ruined their carefully thought-out and perfectly planned project.
First question second: This project is doomed. Still a job is a job and failed projects can be a great learning experience -- just be aware of what you are getting into and that there may be a lot of unhappy people by the time you move on. If this is a mission critical project than don't be surprised if the whole company comes crashing down around you, it won't be your fault. Be clear about your skill level up front and when they start breathing down your neck, walk and don't look back.
Hope this helps
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement