Could you perhaps first describe what you do know about these topics? I mean, it's rather difficult to compress a bookshelf worth of material into a single reply. Having more focused questions would likely yield better answers.
Sorry, I can't give details of how the onsite/offshore process work, it will violate confidentiality agreements. But witha a BIG tongue in cheek, the process goes like this: A not techincally strong person is sent to onsite as a "coordinator" together with an experienced but recently recruited professional who is too excited to be onsite to realize what is he getting into. They will agree to everything the customer ask without analyzing it and they write a big requirements document which the client barely understand. A delivery date is committed. Meanwhile, offshore, the team is assembled: a politically savvy but technically mediocre who has been long enough without doing anything important is appointed as the Project Leader and will happily show to everybody that now he's "the boss". The unlucky employee who is capable and happens to be available is appointed as the technical lead (a.k.a. "the only who has a glimpse of a clue"), the team is completed with "freshers" which the only thing they're able to code without help is "hello world". Of course, the team size is half of what would be required if all they were experts and the requirements were correct. The offshore team is given even stricter deadlines, so everybody starts working 25hrs/day, the technical lead the only one achieving something barely close to what is expected, while the other team members struggle to create the only functionality that is so basic the technical lead feels he can assign to them. Except the less experienced of the team is the only one who really gets the programming "thing" and becomes the other team member that helps, but that is compensated with another member who is so useless that is assigned to testing. Meanwhile the project leader realizes that the work is not progressing as it should and starts having long meetings to intimidate and try to coerce more work hours (which will be spent in more meetings). Of course, the only two members who really are doing something are the ones who look worse in the meetings. After spending a full week working 24 hours, the team completes something that gets sent to the QA team (of course, we're talking about a CMMi level 7 organization). The QA team finds hundreds of irrelevant "bugs" not related to the real requirements. The Project Lead decrees that nobody would leave until all the bugs are solved, and somehow the team manages to fix them. The code finally is delivered to onsite missing the deadline by a couple of days. The onsite technical person has to disentangle barely working the big ball of mud received from offshore and has to spend a full week to integrate it with the customers systems while the onsite coordinator haggles with the customer about trivial details in the requirements document. The customer frustrated cancels the project and takes to another firm and the process starts again from the beginning until is too late an the systems goes into production as it is... sure some guys here experienced something similar... I'm missing something? Don't ask me how I know... to painful to remember
Hi Gabriel! Thanks for giving out your experience of Project related experience, though you look somewhat disgusted with the processes generally followed..
But you didnt answer my 2nd and 3rd questions!! 1. What are the JEE technologies generally used ?? 2. What are the SDLC methodologies followd ?? For eg. is it an Iterative life cycle or RUF or XP etc.. You didnnt mention about any configuration management tools like CVS, VSS etc.. How's the testing done !! 3. Is UML generally used in JEE projects? 4. How does the Project Leader or Team leader delegate the tasks to the junior members?? 5. How we developers understand the requirements and convert into HLD, and LLD documents like that..
I hope you can answer the questions, as you seem to look experienced in projects!!
Originally posted by palla sridhar: 1. What are the JEE technologies generally used ??
I don't think this question can be generally answered. This will very much depend on the specific requirements of the project, and the competencies available in your team.
2. What are the SDLC methodologies followd ?? For eg. is it an Iterative life cycle or RUF or XP etc.. You didnnt mention about any configuration management tools like CVS, VSS etc.. How's the testing done !!
In my experience, the process used depends much more on the corporate culture than on the type of project.
For what it's worth, many big companies are now looking into Agile development. And many more are still doing very waterfallish things. From what I see I'd predict that in the middle run, the former will drive the latter out of the market.
3. Is UML generally used in JEE projects?
This is very much like asking whether English is generally used. UML is just a language and can be used for very different things, in very different ways. And you can do the same things with non-UML.
4. How does the Project Leader or Team leader delegate the tasks to the junior members??
That very much depends on your leading style. Basically, in an Agile project, you don't delegate tasks, but set goals and let the team self-organize around it. Which doesn't mean that there is no leadership involved - it's just more subtle than assigning tasks.
5. How we developers understand the requirements and convert into HLD, and LLD documents like that..
Basically by an iterative process of communication, creative thinking, short design sessions, implementation and validation.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus