Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm working on a greenfields project with two other developers. We're all contractors, and myself and one other just started working on the project while the orginal one has been doing most of the basic framework coding. In the past month, my fellow programmer and I have been just frustrated by the design descisions done by our co-worker.

Here's a little background information:

The application at face value appeared to be your standard n-layered web application using C# on the 3.5 framework. We have a data layer, business layer and a web interface. But as we got deeper into the project we found some very interesting things that have caused us some troubles. There is a custom data access sqlHelper type base which only accepts dictionary key/valued entries and returns only data tables. There are no entity objects, but there are some massive objects which do everything and then are tossed into session for persitance.

The general idea is that the pages (.aspx) don't do anything, while the controls (.ascx) do everything. The general flow is that a client clicks on a button, which goes to a user control base which passes a process request to the 'BLL' class which goes to the page processor, which then goes to a getControlProcessor, which at last actually processes the request. The request itself is made up of a dictionary which is passing a string valued method name, stored procedure name, a control name and possibly a value. All switching of the processing is done by comparing the string values of the control names and method names.

Pages are linked together via a common header control that uses a combination of javascript and tables to create a hyperlink effect. And as I found out yesterday, a simple hyperlink between one page and another does not work because of the need to have quite a bit of information in session to determine which control to display on a page.

My fellow programmer and I both believe that this is a strange and uncommon approach to web application development. Both of us have been in this business for over five years and neither of us have seen this approach.

My question is this, how would we approach our co-worker and voice our concerns and what should we do if he does not want to accept the criteic? We both do not want to insult the work that has been done, but feel that going forward will create a nightmare for development.

Thanks for your comments.

share|improve this question
add comment

2 Answers

up vote 20 down vote accepted

I would spend some time with the people that did the job and ask enough questions to understand why.

Seek First to Understand, then to be understood.

If you come into their thing too quickly, they will feel attacked and they will try to protect themselves and their comfortable status quo.

By asking enough non aggressive questions, you will show interest in their work and establish the base of a good cooperation to improve the whole thing. It's necessary for most people to be understood in order to unblock their instinctive protections.

Asking those question will also help you understand what they did and maybe you are resisting a new way of doing things.

Sometimes, it's impossible to collaborate, and this will be a pretty good indication that you should remove yourself from the team.

share|improve this answer
    
+1 for a great answer –  Gary Rowe Jan 11 '11 at 20:19
add comment

I myself am not afraid of offending, but sometimes asking simple questions helps.

In this particular case, "What if the user right clicks and chooses open in new tab?" might be effective, and "What if the user is fond of the back button?" definitely will be.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.