aspose file tools*
The moose likes EJB and other Java EE Technologies and the fly likes outsourcing development of a J2EE web application Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » EJB and other Java EE Technologies
Bookmark "outsourcing development of a J2EE web application" Watch "outsourcing development of a J2EE web application" New topic
Author

outsourcing development of a J2EE web application

Sean Sullivan
Ranch Hand

Joined: Sep 09, 2001
Posts: 427
My company is planning to outsource the development of a J2EE web application.
We have invited 7 external consulting firms to bid for the project.
Each of the 7 firms will be making a presentation to us in early July.
What questions should we ask the firms?
(I have 5+ years of Java experience already)
Simon Brown
sharp shooter, and author
Ranch Hand

Joined: May 10, 2000
Posts: 1913
    
    6
Well, you should test that they do have a good working knowledge of Java and J2EE, particularly around areas such as architecture, performance, scalability, security and so on.
If you're outsourcing the project with a view to maintaining it in-house in the future, you should also ask them how they will ensure that the system is as maintainable as possible. Look for use of industry standard techniques along with architectural and design patterns. Don't be afraid to ask how they would go about architecting the solution. Also, check for experience with the environment in which the application will be deployed, as well as experience of the business domain.
As well as the technical issues, there are all the others such as quality, testing, documentation (UML vs. other), development methodology, management, etc but I think it's the technical Java/J2EE related issues that you were looking for information on.
Hope that helps
Simon
Sean Sullivan
Ranch Hand

Joined: Sep 09, 2001
Posts: 427
Thanks to all who replied.
ORIGINAL MESSAGE:
[
My company is planning to outsource the development of a J2EE web application.
We have invited some external consulting firms to bid for the project.
Each of the firms will be making a presentation to us.
What questions should we ask the firms?
]
REPLIES:
--
1) Who will maintain the app?
2) If the firm is going to maintain it, what happens
if their company disappears? Do they leave you with the option
of handing maintenance/upgrades/bug fixing responsibilities to
someone else?
--
Something to ask is what comes with the deal? If you don't have
hardware and software to run this app on yet, you may want to pick a
vendor that can provide it for free or a reduced cost. For example,
IBM usually gives DB2 with WebSphere, and the software comes with
a 90-day trial, so you can be up and running before you have to
start paying for it.
Another thing to remember (not really a question), is that the firm
that can do it the fastest and the cheapest and provide all the
functionality, is not necessarily the one you want to go with. You
do actually get what you pay for.
--
What insight will you have into the progress of the project? How will
you know if something is going wrong and how soon will you know it?
What will your remedies be?
What documentation standards does the firms work to?
What will be stipulated in the contract? Who will monitor this?
What are their testing, verification and validation plans? What
will be stipulated in the contract? Who maintains them?
What are the costs of requirements changes? How are changes managed?
During development? After initial release?
Will the source code and documentation be held in escrow? Will you
be litigating with a company in bankruptcy just when your customers
need a new release?
--
Delineate specific J2EE roles--web design, presentation, component
provider, et al.--and obtain profiles of who will performing the
work in each area, preferably with resumes.
Although the cheapest bid is often not the best, some of the more
spectacular consulting failures occur at premium prices. One firm
much in the news recently had a habit of using lucrative engagements
as a training ground for novices. A red flag is raised when you
have relatively ordinary requirements and the prospect suggests a
speculative technology, e.g. JXTA for an HR web portal.
My impression is that established local consultancies are typically
competent, reputable and as worthy of consideration as the more
familiar national firms.
--
[...] in general I'd look at what kind of framework the companies
are using for the web application. Most web-side J2EE development
these days uses a framework approach (such as Struts), just because
it's much faster to develop than an all-custom code approach.
You need to be comfortable with the choice of framework in order
to maintain the resulting application.
--
Well, you should test that they do have a good working knowledge
of Java and J2EE, particularly around areas such as architecture,
performance, scalability, security and so on. If you're outsourcing
the project with a view to maintaining it in-house in the future,
you should also ask them how they will ensure that the system is
as maintainable as possible. Look for use of industry standard
techniques along with architectural and design patterns. Don't
be afraid to ask how they would go about architecting the
solution. Also, check for experience with the environment in
which the application will be deployed, as well as experience
of the business domain. As well as the technical issues, there
are all the others such as quality, testing, documentation (UML
vs. other), development methodology, management, etc but I think
it's the technical Java/J2EE related issues that you were looking
for information on.
--
Ask them for reference clients and named referees. Then contact
those people.....
(Give them advanced notice that you will require these at your
presentations...)

Ask to see their coding standards documents. Don't take "Oh we use
XXX for an answer "Ask to see the actual documents...

Make them quote for the project AND include two years
maintainance. See how they feel about supporting their own code at
a fixed price. Put them on penalty clauses if they screw up...
--

Ask them "what do you do to make your work high quality?"
as described in my note "Nasty Question" at
http://www.multicians.org/thvv/nasty.html
It's surprising how many teams don't have a good answer to this
question.
--
Questions to ask:
1. Experience
2. Customers
3. If they test your website for functionality and load
4. Do the developers test or do they have a QA/Software Test Team?
5. Do they guarantee their work?
We used a company called ITX and they did a great job, I have
contact information if you are interested.
--
Ask them which area of the project will present the greatest
difficulty. The answer should help in weeding out the idiots who
are clueless.
--
Ask them what kind of metrics they employ in their process.
Ask them whether they can use the Extreme Programming methodology.
Ask them whether they will force YOU to write the user documentation
to the system BEFORE a single hour of their effort is spent (this
is a great way to have a cast-iron requirements spec "in disguise").
Finally, only a sign a fixed-cost contract.
--

1. How would you expect to work with us (what is their ideal
scenario)?
2. Can your office handle VPN into our Network?
3. Would your team be willing to share team-lead
responsibilities with a lead from our company?
4. What software engineering methodologies do you
adhere/prescribe to? RUP? XP? Mixture?
5. Do you outsource some of the work to offshore resources?
6. What sets you apart from other vendors? What skills,
experiences?
7. Is the team all experienced in Java/J2EE? How many
junior/senior level developers?
8. How many J2EE projects have you implemented? What app
servers? What IDEs?
9. What MVC framework do you like? (e.g. Struts, etc.)
10. What pitfalls have you learned from previous J2EE projects?
What have you learned that you would leverage from previous projects?
11. What levels of specs (EJB, Servlet API, etc.) are your team
members familiar with?
12. How easily can you bring on more high-level resources if
need be?
13. Do they have User Experience (UE) people in house?
14. Are there any components you have already built that can
be leveraged as part of this project? What components would you
build for reuse as part of VSCD?
15. What frameworks do you like for object persistence? JDO?
Entity beans?
16. Do you prefer J2EE or .NET?

--
Sean Sullivan
Ranch Hand

Joined: Sep 09, 2001
Posts: 427
Bonus:
Please describe your company's prior J2EE project experience. What was the project scope and duration?
Please describe the process that you use to select staff for the projects at your company.
Please describe three "best practices" that your staff uses on software projects.
Please describe the techniques that your company uses to reduce the risk of project failure.
Please describe one of your prior projects that did not meet its schedule. How did your company handle the situation?
What are the most challenging aspects of this type of project?
Describe your company's approach for requirements gathering and analysis.
Describe your company's approach for the project's technical design phase.
Describe the techniques that your company uses to ensure the quality of the system.
Describe the techniques that your company uses to build maintainable systems.
Please describe the pitfalls that you have experienced on prior J2EE projects.
Do you currently have the staff for this project ´┐ŻOR- do you plan to augment your staff?
What percentage of your staff is based here in (our city)?
Will the project's system architect stay with the project for the entire duration of the project?
Please provide us with an overview of the technical architecture from one of your prior J2EE projects.
 
Consider Paul's rocket mass heater.
 
subject: outsourcing development of a J2EE web application