To give a bit of context first, I have been tasked to mentor an internship on creating a UI for a certain business need:

  • Already 4 months were spend on analyzing, creating the business use cases and some context diagrams, and BPMN diagrams, but the analysis is not complete yet.
  • It was foreseen that the API would be already defined and more details would be available. But due to unexpected circumstances, this was not the case.
  • The backend itself is not available either.

The intern starts next week. But the analysis has been shared with me only today and it seems quite some things are still too vague or incomplete. It was suggested to already start on the UI with the intern. Probably with making several mockups first. And do our own analysis by talking to the analyst, business, key users and operators.

From this, we can probably create some kind of prototype. And maybe even define a suggestion of how the API can look like. But we are missing quite some pieces of the puzzle, so I'm afraid this will just blow up in our faces afterwards...

How can I make sure to make this both beneficially for the intern, his thesis and the company? And how can we prevent a huge rework afterwards? We have around 50 man-day's to spend on this. What would be your suggestion? And how would you tackle this problem? And what is wrong with this way of working?

  • 4
    Sounds like a great way to mentor someone on how real projects are managed. /s – Dan Wilson Feb 6 at 21:10
  • 1
    You could start with having the intern build a teeny, tiny version 0.0.1 of the UI, using the tools, adding some of the boiler plate text that is already known. Then, do the same with 0.0.2, walking them through the processes of version control, re-factoring and re-design. The longest journey starts with a single step. – BobDalgleish Feb 6 at 21:35
  • 1
    @DanWilson sure. But Greg is not responsible for that situation. On contrary, he takes it seriously and is preparing in advance for the mentorship in such adverse circumstances. He just needs our advice in order to make the best of it ;-) – Christophe Feb 7 at 6:50

Analysis of the situation

First of all, my sincere congratulation for taking your mentorship seriously and thinking in advance about how to make the best of such a difficult situation! That's real life: internship commitments are made based on assumptions, plans do not work as expected, and the delays of the ones creates delays for the others.

There are some very positive elements here:

  • First the intern will work on a front-end UI, which is at least somewhat decoupled from the back-end and also requires som UX design work to be performed.
  • Then you seem to have direct access to the business analyst, key users, operators. And this is what is needed for your intern to understand the users, their needs and their expectations and start with a solid foundation for the UX design. In fact, IMHO it's a much better start that developing directly based on some analysis (in which all-too-often the user's life is somewhat lost).

There is also a very bad element. In the background of your context, I see a very waterfall oriented project lifecycle: first plans are made, then a complete analysis is written, then everybody starts to code based on that analysis, and then at the end everybody hopes it will work all together and make extensive testing. Then the users see the product and notices that his or her need was misunderstood.

So this internship is an opportunity, to approach the things differently, and make a proof of concept for a more dynamic and agile approach, starting tiny with this UI.


First, present the intern your company. Make him meet informally the different stakeholders you've mentioned, and give him or her some time to read and understand the existing analysis. Then meet the analyst for a first exchange

  • First side-product: the intern get the general context, but the analyst also gets a first feed-back on ambiguities from a naive uninvolved reader.

The next step, let the intern do some wireframes (paper, or appropriate tool), where he or she can design the user's journey, without going too much in details. Let him or her confront these first thoughts to business experts and key users. And after a first debrief on user reaction to the analyst.

  • Second side-product: a connection to the user community, and collective thinking about the needs from the user point of view.

Then the intern can start with some prototyping with dummy functions for emulating interaction with the back-end (but with predefined answers). Let make some workshops to show the users and get additional feedback, and maybe start to work out some more details about the interactions (positioning of the fields, drop down lists, buttons, error messages, ...).

  • Third result: a prototype where the backend functions look like a potential API. But it's a living product that can be refined and not a throw-away protptype.

Then it's time to get back to the analyst, and start the discussions on the API details and make mappings between the API proposed and the back-end functions expected (that could aggregate several API interactions).

  • Most important product: you have now launched an iterative refinement process, where API design and back-end development are mentally connected to the front-end, and everybody will be motivated to make the things progress to show advances to the users.

Hint: foresee periodic demos to the key-users, and invite the analyst. This will set the pace of your new bottom-up agile process.

  • 1
    First of all thanks for the detailed answer and guidance on how to approach this. It's indeed a known problem that most projects we created are waterfall oriented. Based on your input I will try to use this project to show an alternative and more agile way of working. I really appreciate the time you investigated in writing this detailed answer. – Greg Feb 7 at 16:40
  • 1
    @Greg thanks for this positive feedback. And knowing that you may use it for promoting a more agile approach really made my day :-) – Christophe Feb 7 at 17:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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