|
Top Linux Links You Must Click On
Features i-Technology Opinion: Outsourcing...to Students
"Pizza Is the Secret Key to the Success of Commercial Projects Developed by Students"
Feb. 27, 2005 12:00 AM
JDJ Editorial Board member Yakov Fain writes: One of my resolutions this year is to start teaching part-time Java-related classes in some college. That's why I started browsing the computer science course lists that are being offered this year. While graduate-level programs offer many interesting courses, the situation is different in the undergrad world.
Some schools keep teaching how to multiply matrices in Ada or work with algebraic expressions in Prolog. Half of the courses are preparing professionals who will be operating on another planet. Information systems programs look a little more down to earth. Meanwhile, many college graduates are having a hard time finding their first jobs because many entry-level programmers jobs are being outsourced overseas, and it'll stay this way as long as it makes financial sense for businesses. Unfortunately, student loans have not been outsourced...
A catch-22 situation with experience makes things even worse: we can't hire you because you don't have the industry experience. How can I get this experience if no one hires me? Some people try to find volunteer programming work to get a foot in the IT door. Some graduates join open source projects, and some job applicants just lie on their résumés.
I have a plan: instead of outsourcing projects to developing countries, businesses should offer them to the local colleges. I'm not talking about simple pilot or proof-of-concept projects; I mean the real ones. This plan requires commitment and the cooperation of academia and businesses. These are some thoughts that come to mind:
- Colleges have to include more classes on software engineering and modern technologies in the undergraduate programs. Here are some of the candidates: Application Servers, Service-Oriented Architecture, Design and Development of J2EE Applications, Applying Design Patterns, Data Modeling, Business Intelligence, and UML.
- Colleges form teams of programmers starting from the students' junior year. Faculty members lead these teams. Information about these teams (résumés, previous projects, GPAs) has to be published on the Internet and be publicly available, and businesses need to publish their project descriptions so student teams can bid on these projects.
- Colleges make their labs, networks, and support personnel available for the teams. If needed, businesses can lease additional hardware to the college for the duration of the project.
- Most of the students study Java programming during their freshman and sophomore years. Many Java components are available for free or through open source licenses: IDE, version control systems, project build tools, bug reporting systems, application servers, etc. Businesses will purchase any additional required software for a fraction of the cost using heavily discounted academic prices.
- Business managers pick and interview teams for their projects based on the college reputation, available skill sets, location, and other criteria.
- Business lawyers prepare a contract with a selected team that defines the obligations of each party, deliverables, cost of development, and potential penalties.
- The turnover rate is usually high on the projects that are outsourced to developing countries, which won't be the case with student teams. On the other hand, there is a risk of not having developers during midterms and final exams. However, since the exam schedules are known in advance, the "freeze time" can be planned accordingly.
- Most of the business managers dealing with developers from other countries complain that cultural differences are a huge problem. Guess what? This won't be a problem if you outsource the project to students who live in the same country and speak your language.
- Even though students will get a minimum salary for this work, they should also earn academic credits and get graded while working on such projects.
The funny (or sad) part is that the students themselves are already outsourcing their college assignments. There are Web sites where you can hire a coder for any assignment in various programming languages. No job is too small. People from around the world can bid on these projects, and since the offered prices go as low as $20 USD, it's clear that only programmers from the developing countries like India or Russia would be interested in these jobs. Academic outsourcing may be even more damaging than the industrial outsourcing, because rich students can improve their grades and earn their degrees without having a good knowledge of the required subjects. Spending more time working as teams in the labs under the supervision of a faculty member or business manager will help minimize academic cheating.
There is one more secret key to the success of commercial projects developed by students: pizza! Each day the client company can send a couple of pies (half plain and half pepperoni) to the labs where the students work. They are going to work for food...and experience. It's a win-win situation for everybody.
About Yakov FainYakov Fain is a Managing Director of Farata Systems, consulting, training and product company. He has authored several Java books, dozens of technical articles. SYS-CON Books released his latest co-authored book , Rich Internet Applications with Adobe Flex and Java: Secrets of the Masters in Spring 2007. Sun Microsystems has nominated and awarded Yakov with the title Java Champion. He leads the Princeton Java Users Group. He is an Adobe Certified Flex Instructor. Currently Yakov works on the book for O'Reilly "Enterprise Application Development with Flex". He twits at twitter.com/yfain.
Reader Feedback: Page 1 of 2
#19 |
Robert Dobbs commented on 9 Jul 2008
Timothy, this video will get you started in the right direction:
http://www.youtube.com/watch?v=3PycZtfns_U
|
#18 |
Timothy Oduro Yeboah commented on 9 Jul 2008
Hi please can u kindly tell me everything about Sun Java...or programmer's...who are they and what work to one get after studying sun java..his opportunity and many more things that one can get in studying sun java and many more ok and am from Ghana and am interested in this course and am 20 years old .Thanks for reading and hoping to hear from you soon for i will like to friend you as well after i have know them so that u will be teaching me more things about that....have a nice day.
|
#17 |
Ken Collins commented on 22 Mar 2005
Yakov,
Yakov: Thank you for the feedback. Everything you say makes perfect sense in times when there are plenty of jobs
for college graduates. But think about this: 4 years
ago they've entred colleges and selected CS major.
What do they have this year after graduation? 100K
worth of student loans and no entry level jobs.
Ken: Why should students pay $25k/year to work for $10/hour (or free) for major corporations? Students should study and companies should hire actual employees. The only time most people will ever get face time with a PHD in their field is when they're in school. They should use it wisely instead of dinking around with the kind of gruntwork that can be successfully farmed out to someone with no experience.
I graduated in '94, so I know what it's like to come out in an industry downcycle. Yourdon published "The Decline and Fall of the American Programmer" in '93. My first job after college was programming perl for $10/hour.
Yakov: At the same time people in India spend 3-4 months
learning some hot Java technologies (without bothering
with CS degrees) and they beat up well educated US
graduates hands down.
Ken: The only reason the shops in India are beating us up is because they charge $10/hour. The Indian programmers I've worked with here show the same varying degree of abilities as US programmers.
I just don't think farming to students here is any better. It continues to degrade the profession with a race to the bottom, it doesn't result in any more entry level jobs, and it would actually probably lower the quality of graduates, since they'd be preoccupied with entry-level tasks rather than senior-year coursework. That's when I took my most
demanding classes.
Yakov: You are saying that you should have taken a Unix class instead of having summer jobs? Sure...as long as you had the money to pay for this course.
Ken: My university didn't offer it at any price.
Yakov: You do not like managing students? What about managing a group of young developers in Bangalore when success of your project (and your career depend) on them?
Ken: I'm an absolute opponent of outsourcing, and I've never heard an outsourcing success story firsthand. My company is currently rewriting the one piece of code it outsourced to India over my opposition.
However, I don't think it's going to go away, and I don't really knowwhat to do about it. It's eating entry-level jobs and over the long run,the US will lose all of its technical edge. I just don't see burdeningstudents with industry pressures as the answer.
The only suggestion I have is to level the playing field and get rid of the H1B visa. There are over 100,000 H1Bs in the country on a continuing basis, supposedly to address the worker shortage of the .com years. From my experience, H1Bs are hired specifically to fill entry-level positions
at low wages. I've heard an employer state that explicitly, and I've seen it in action. The boom's over, and those jobs should be opened up to permanent residents.
Yakov: Well, this article is my attempt to start yet another discussion on outsourcing...
Keep going. The industry needs as much attention on it as possible.
Yakov: Thank you for responding to my article. I really
appreciate it.
Ken: No problem. Thanks for your efforts.
|
#16 |
Yakov commented on 22 Mar 2005
Ken,
Thank you for the feedback. Everything you say makes
perfect sense in times when there are plenty of jobs
for college graduates. But think about this: 4 years
ago they've entered colleges and selected CS major.
What do they have this year after graduation? 100K
worth of student loans and no entry level jobs. At
the same time people in India spend 3-4 months
learning some hot Java technologies (without bothering
with CS degrees) and they beat up well educated US
graduates hands down. You are saying that you should
have taken a Unix class instead of having summer jobs?
Sure...as long as you had the money to pay for this
course. You do not like managing students? What about
managing a group of young developers in Bangalore
when success of your project (and your career depend)
on them?
Well, this article is my attempt to start yet another
discussion on outsourcing...
Thank you for responding to my article. I really
appreciate it.
Yakov
|
#15 |
Ken Collins commented on 22 Mar 2005
I read your article in the February edition of JDJ, and I can't agree
less.
I worked while I was a student both full-time as a summer intern and
part-time during the regular semester. I also worked managing a team of
students at an off-campus start-up a few years after graduating. Both
experiences were awful. The first drove me out of computer science for
nearly four years because I wasn't ready for the monotony of cubicle
work. The latter was nightmarish because it was nearly impossible to
organize a team of students, all of whom had different schedules,
widely
differing coding abilities, and different levels of maturity.
When I was in college, I would have benefitted greatly from smaller
class sizes and an early introduction to unix tools, not more work
hours. I spent way too much time making small change working for major
corporations when I should have been taking an extra class that would
have helped me throughout my career. If students have to work, they
should be involved with university level research projects, where they
can see the future of CS and the potential rewards of grad-level
research. Nearly all of my friends in CS were working crappy
programming
jobs while struggling with a full course load, so it's not like
students
aren't already getting exposure to the industry. It made everyone I
knew
miserable.
As far as knowing the latest languages and tools goes, I spent most of
my undergrad years learning assembler programming for Motorola embedded
chipsets. That actually landed me my first programming job out of
college, programming Java. The guy hiring me had worked in Motorla's
cellular division for years before switching to Java, and he knew that,
if I write apps with a single accumulator and two index registers, I
could probably get up to speed with Java quickly.
And, I'm not suggesting that all industry-directed student efforts are
worthless. One of the student programmers I managed wrote a 3dfx glide
wrapper that would allow then-popular glide only games to be played on
OpenGL hardware. NVidia picked him up immediately after he graduated,
and he got a handsome options package. It did him a lot more good than
all the shopping cart applications he worked on for me.
|
#14 |
Shiva commented on 1 Mar 2005
This is a very interesting line of thought though I'm not sure if this will work. Bulk of the outsourcing is done on maintenance and enhancement projects and not fresh from-the-scratch development projects. A maintenance & enhancement project will never draw attention from any students for the sheer lack of creativity and a need for knowledge in the vertical.
It is best to start off with pilot projects and rapid prototyping requirements and based on this experience further outsourcing to universities can be undertaken. Just a thought!
|
#13 |
Insourcing commented on 1 Mar 2005
### ( have a plan: instead of outsourcing projects to developing countries, businesses should offer them to the local colleges ###
Go, Yakov!! This is a fine proposal. Thank you JDJ.
|
#12 |
Cheesy software development commented on 1 Mar 2005
half plain and half pepperoni!? Hey, what you got against good old-fashioned cheese??
|
#11 |
thanks Yakov! commented on 19 Feb 2005
Good to see the true value of pizza in computing recognized here! :)
|
#10 |
I'm currently in charge of a project very similar to what was proposed in this article. The SNAP Development Center employs computer science and engineering students from the Interamerican University of Puerto Rico. Our objectives are to improve the quality and quantity of the graduates from these programs.
Our project, however, was funded by the Puerto Rico government. Briefly we have created an open source project to develop and market a completely oepn source relacement for the Sun JDK. The SNAP Platform also integrates popular open source development tools such as Eclipse, Tomcat, and SwingWT.
We are a year into the project and results have been mixed. Although we found a few students up to the challenge, in general there is a big difference working with students and working with a full-time software development team. My observations of the students indicate:
- They require more supervision
- They, in general, lack the discipline of a work mentality that we take for granted working with a full-time team
- Their schedules can be very erratic. They have a lot of things competing for their time, such as sttudying, examss, partying to name just a few
- Finally, depending on the program, they lack the experience of working on a large project that would be necessary to develop a product for a company.
One of the objectives we are trying to bring to these programs is real world experience. However, we have the benefit of a full-time software engineer. Without his leadership, we probably wouldn't have achieved the technical succes we have.
In thoery this is a great idea, in practice I'm not sure many companies would be patient enough to wait for results. What my experience has shown is that it will take longer for such a program to produce results due to the observations above and the relatively high turn-over (either from the students dropping out or changing classes). In my opinion, every university should have an open source project that they maintain. It gives the students experience, it reduces the risk, and it keeps the fun in the work.
|
#9 |
balaji commented on 16 Feb 2005
This article misses mentioning some important things:
1. Programs to multiply matrices are a very important concept to grasp. While I learned the concept in my 11th, there are many so-called s/w programmers who don't get the concept of nested loops.
2. Colleges absolutely must not introduce more courses in "software engineering and modern technologies in the undergraduate programs". Let us face it, most software is not really engineered. In my 10-year career I have been involved in only 2 such highly engineered projects. The rest have been built ad-hoc. And as for modern technologies, to pick up .Net or some such flash in the pan in the pan is not a big deal. To pick up fundamental programming concepts is much more difficult.
3. The problem with software development is not really development. It is support and maintenance. What support can one get from college students who have moved on to their next year and newer projects? What about students that have graduated?
Thaths
|
#8 |
pv commented on 14 Feb 2005
I totally disagree. Colleges and Corporations are totally different culture wise. Students in colleges work on Assignments for a better grade. Employees in corporations work for better pay and promotions. I am fine with Govenrnment and Government agencies outsourcing their work to universities as they are using publicly funded University resources to do public work. Instead Companies can set up small student divisions for which they hire students who are still enrolled in the colleges and can assign them small projects and pay them reasonably. Last but no the least do not take away the Fun out of collge life!
|
#7 |
I agree. A quick scan of local colleges finds few undergrad courses in Java. I would love to have eager young college students working on some of my projects. It seems that US colleges have been slow to embrace Java. It's unfortunate. From my own experience writing Java articles, I get a lot more commments and questions from overseas developers than US developers.
|
#6 |
Ramón Jiménez commented on 14 Feb 2005
A comment regarding education. In my understanding, computer science programs are just fine if they are teaching students to multiply matrices in Ada or to solve algebraic problems in Prolog. Where else is a CS major expected to even know these technologies? The problem is not to re-formulate CS curricula, it's to create new programs. The BS in Software Engineering being offered by some universities recently is IMHO a correct step in that direction. We don't need as many CS majors anymore, but we still need some!
|
#5 |
Keith Blizard commented on 14 Feb 2005
First I think the article brings up a great point in our IT industry - ensuring that the students coming out of college are properly trained for the industry that they will be leading in the future. Having the ability to set up intern programs would not only strengthen the corporation by promoting itself for future hires, but also enable students the ability to understand how technology really is used in businesses today.
On the other hand, with the some of the comments - I TOTALLY disagree that it is more important to learn different technologies/syntax for students to be effective. For anyone who has developed for a long period of time, you need to learn a language ONCE thoroughly, and then picking up another one is just a matter of learning the syntax. It is MUCH more important that you can develop the understanding of objects, inheritance and good programming practice, and that takes time to do rather than the long list of available languages.
|
SYS-CON Blogs
My last post about my use of semantic technologies in my projects dates
back to several
months ago - it's high Oct. 27, 2009 12:26 AM EDT | Anytime a feature of a framework gives me something for free that I don't need to manually implement I'm a happy Oct. 26, 2009 09:58 AM EDT | As someone who manages a large community of users I have been watching for the results of the 2009 Tribalization of Busi Oct. 7, 2009 05:40 PM EDT |
Latest Articles, News & Posts By Michael Sheehan  GigaSpaces and GoGrid have been strategic partners for quite a while. This week, we jointly announced a new technology partnership aimed at offering Java and .NET as a PaaS solution. To further explain our combined solution, there is a webinar slotted for October 14th where Guy N... Nov. 7, 2009 05:30 PM EST | By Michael Sheehan I had the pleasure of not only attending the Cloud Computing Expo in Santa Clara, CA this week, staffing the booth and generally enjoying talking to a wide range of developers, technologists, vendors, partners and others, but I also was able to do a couple of interviews with Pete... Nov. 7, 2009 05:00 PM EST | By Reuven Cohen  Big news on the Cloud Standards front, I was just informed that the International Organization for Standardization (ISO) - JTC 1 have formed a new Subcommittee (SC) at their Plenary last week that includes... Nov. 7, 2009 03:30 PM EST | By Maureen O'Gara  Likewise, which authenticates Linux, Unix and Mac users with Microsoft Active Directory, has started offering three starter packs that combine its Enterprise software with support and training services. They are designed to move customers from the company’s open source software t... Nov. 6, 2009 05:45 PM EST | By Maureen O'Gara  The new widgetry features multi-cluster support and enhanced concurrency management to improve scaling so users can seamlessly overlay their Eucalyptus cloud on top of virtually any existing IT infrastructure, regardless of size or configuration. Eucalyptus is meant for implement... Nov. 6, 2009 05:30 PM EST | By Keith Bergelt  In the wake of the financial crisis and its attendant repercussions across the global economy, the U.S. Congress stands poised to address the issue of patent reform. Much debated and long anticipated, patent reform legislation is back under consideration with the bill possibly co... Nov. 6, 2009 05:15 PM EST |
Subscribe to the World's Most Powerful Newsletters
|
|