Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I was recently contracted to develop a smarty theme for an automated SOHO phone answering service. The team who had built the backend wouldn't allow me access to any of the back end nor tell me anything about it, their smarty set up, smarty plugins, data base interface api, server set-up, nothing. Nor could I have access to the server nor a beta domain, basically zero co-operation.

So I set up a local server with Smarty and built the template based on what I guessed would be their best practice, commented my code like crazy, wrote all the needed javascript, css, and template files. Then I sent them packaged to the backend team and hoped for the best.

With half of a project team failing to cooperate or even communicate I am now concerned that they may reply saying that everything is wrong and they may refuse to implement the new front end.

I'm curious to know if others encounter this type of situation and what you may have done to protect yourselves.

share|improve this question

closed as not constructive by gnat, Walter, Yusubov, Doc Brown, ChrisF Nov 19 '12 at 9:23

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

front end...back end... I'm suddenly overcome with a curiosity, does the middle have an end? – Jimmy Hoffa Nov 16 '12 at 19:10
The middle has no end, ,, where does the frontend end and the middle begin? – Twincascos Nov 16 '12 at 19:50

The implementation of the backend can be secret; every web service in existence exists to hide exactly how it does what it does from clients that need the results of what it does, but shouldn't know how it's done.

However, the interface of the back end simply must be known to any consuming client (and thus to you, the developer). If I want to provide search results from Google on my own web page, skinned the way I want them to be shown, I must know how to structure a call to the web service that produces these search results for third-party consumers such as myself, so that I can get the results in order to include them in the HTML being generated for the next page request. This information on who to ask, how to ask, and how to interpret the answer, is all public domain; how Google actually gets the information it provides in the answer is not.

The backend developers were information-hoarding; for whatever reason (security, non-disclosure, their own egos/job security), they refused to share information that was critically necessary for you to do your job properly. As soon as it became evident this would happen, that should have been a block on your development, which you should have brought to your boss or client and asked them to resolve it, and stopped work (with appropriate contract change notices) until it had been.

share|improve this answer
egos/job security is most likely the issue here. It's not the first time I've been in this situation nor the first time with this team. The client was advised in advance, but changing teams wasn't an option, nor was freezing the job. I have delivered, now waiting for integration and launch, but I have no control. Hoping for the best, whenever they(backend) get around to it(integration). – Twincascos Nov 16 '12 at 19:49

It's not at all uncommon for separate teams working on a single system to keep their implementation private. This is usually a confidentiality / security precaution.

To protect yourself, always get documents from the other team detailing their standards and interfaces. For example, they may require certain library versions. In your case you should come to an agreement on what Smarty variables would be available. Is it your choice or theirs? Are they organized or structured in some way already in their system?

These documents are your "contract" with the other team to make sure you are in complete agreement on expectations.

share|improve this answer
Oh, I asked for that, a list of available Smarty variables. Their reply was "why would I need that?" Good suggestion, but this was a closed door situation, I'd been black boxed. – Twincascos Nov 16 '12 at 19:43

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