9

I work with a team of GIS analysts. Increasingly, our work is moving online. The industry-standard software (ArcGIS) allows us to make and publish online maps without coding. We have limited experience in coding - we can customize pre-built systems given enough time but we are not web developers.

We have a request to build complex functions into our existing web app. It is my professional judgment that these changes are beyond our capability, especially in the time period allowed. We have < 2 weeks to do this. Guy who knows JS better (not a dev though) is out for a week. Supervisor avoids coding as much as he can.

We had an extremely tight deadline on an earlier phase of this project a week ago. We were able to successfully complete the work with 2 major caveats:

  1. Almost all changes made were based on appearance, not on tricky app functionality
  2. We didn't implement these complex functions then either.

How can I communicate this to my supervisor? In the past, we've semi-successfully customized web apps, but this is another level entirely. Here are my thoughts on what to do:

  1. Keep trying to build out this system. I have only a passing familiarity with JavaScript so I sincerely doubt that I can finish this task on time or at all.
  2. Express the above to my supervisor. We've had this talk many times: I've had 2 in-person and 1 email conversations, as has the other employee in our group with more JS experience than me. My concerns (and that of another analyst who's better at web dev than me) are dismissed, sometimes in a condescending manner.
  3. Push for hiring a subcontractor. We have the budget to do so.
  4. My "best" idea: do my best within the time allowed and be honest about my progress or lack thereof.

I'm tired of being constantly stressed about this project due to the unreasonable expectations and my supervisor's unwillingness to say no to the project manager or take my concerns seriously. What can I do to make this situation tolerable and productive?

Update: Thanks for all of your helpful responses. I'm going to send an email outlining my concerns - it is unlikely to change this process but it will provide me with a bulwark when I don't finish this on time. In the meantime, I'll use this experience to get good at JS (I've focused on Python but the web = JS as far as Esri is concerned).

More recent update: last month, I told manager in person that I was spinning my wheels on this project. I was able to work on other related tasks that did not involve hardcore JS. The other employee actually had more experience with JS than he let on and was able to kludge together a product, though in 8 as opposed to > 2 weeks. Manager finally pushed back against unreasonable demands, though his unwillingness to be honest with project managers continues to damage our department's productivity and morale. I enrolled in an online web dev with Flask course (want to use python as much as possible!).

4
  • 3
    Do what teams in large companies do all the time when pushed by unreasonable project requests. Hire a consultant at $200+/hr to tell management that the demands aren't remotely reasonable in the time frame allotted or have them (the highly paid consultant) just get started anyway on a time-and-materials basis and skid deadline 6 months into the future. Meanwhile your domain-expert team gets up to speed on just enough web technology to pull it off after they fire the consultant. – teego1967 Dec 3 '19 at 23:56
  • 2
    You have “had this talk many times?” Did you end up delivering those projects or failing? – mxyzplk Dec 4 '19 at 0:59
  • 1
    We have completed the first phase of this project under similar conditions. We didn't complete these major app modifications however, it was mostly formatting. – wakanda_official_tourism Dec 4 '19 at 2:02
  • 2
    Also, have a chat to ESRI (the guys behind Arc) directly. They may be able to help out a lot or point you in the right direction of an already-created solution, or licences to buy where you've got some of those solutions out of the box. And if you're trying to do something portable, ArcGIS Online hooks directly up to their Collector app (I created a layer on my desktop and exported it into ArcGIS Online, prettied it up and made it so that field users could alter data, in under an hour yesterday). For custom apps, ESRI have said to me you can get started in Collector then build on top of that. – user25730 Dec 4 '19 at 5:02
16

Make sure that you express this in writing (email), to your supervisor and to whoever else is applicable in your situation.

Tell them very clearly that this job requires a real software developer, which you aren't, and that if they insist that you do it, you're certainly willing to try and to learn it, but it will take some time to learn, and you cannot guarantee any sort of a deadline, especially not a two-week one.

The rule of thumb is to never outright reject to do what they want (except for something really illegal, which is not the case here) but never say that you can do something you can't, or that you can do it in the time frame that's not possible for you.

Then save a copy of that email.

In this way, when later you're way past their deadline and they start accusing you of not having told them the truth, you can pull that out and prove that you did.

In the meantime? As Matthew Gaiser said, use it as an opportunity for a paid training. Learn JavaScript and whatever else is needed. It can't hurt to expand your qualifications, can it?

1
  • 3
    +1 to saving a copy of the email. If there's no policy against it, I'd be BCCing all such correspondence to a personal email account. – Jeremy Holovacs Dec 3 '19 at 20:44
10

Choose option 4 with a modification.

Use it as an opportunity for paid training

Assuming that you want to learn JavaScript and it would benefit your career (if GIS is moving online, I’m sure that it would), say that the project is beyond your existing capabilities and that time will be required for you to learn the skills to build the features (don't make it too long, start with a few days).

Then enjoy having the opportunity to be paid for learning JavaScript on Udemy or FreeCodeCamp. You aren’t a web developer now, but you can probably get paid to become one, at least for ArcGIS systems.

Make it a possible request and boost your future at the same time.

3
  • 1
    Good advice. The real issue here is that we have < 2 weeks to do this. So an online course will help (and I know python somewhat well) for the future, but not for this immediate concern. – wakanda_official_tourism Dec 3 '19 at 19:50
  • 6
    Taking on a project for which one is under-qualified is actually how many people make upward leaps in their own careers. Unfortunately, this one's not feasible on a timescale of days or even weeks. A barely-working technology demo is perhaps withing reach for a motivated team, but that's probably not what the project manager has in mind. – teego1967 Dec 3 '19 at 23:51
  • If the company needs you to do things outside your skill set, make them pay for it. If they don't want to pay for it, tell them you don't have the skill set. Give them scenarios based on money and time on cases like training you up, hiring permanent staff, hiring temporary, outsource, etc. Managers want to see management reports. – Nelson Dec 4 '19 at 9:49
3

You'll never get anywhere with a "we cannot do this" argument. It's too subjective and easy to dismiss.

Instead, look at what it would take in order to do it. You've already identified some of the factors.

Build out an estimate of the time and money necessary to execute the request if it's all done in-house vs. with contractors. Outline the necessary training to build and support the system. Include estimates on project management efforts with a team in the office vs. an external team. Factor in the cost of remote team members, where relevant.

I would avoid "this is what we could do with the time allotted" in the first instance. The scope of the project will definitely creep and nobody will remember that you told them what could be done.

Instead, come up with an estimate on what is needed to execute what is requested and then work with your team to reduce scope or increase resources. Heck, you never know - your company might pony up for some training and you'll get to develop your skillset.

2

I second what Mathew wrote about the paid training. By all means pursue this.

However, a short, online class will probably not gain you the skills needed immediately. Writing code at a professional level takes time. For this reason hiring a contractor for the short term to work with you (your option 3) can help you with both the learning aspect and producing acceptable code.


As an aside. My son is a junior and has declared for GIS. He's now has lots of computer classes. Heck, he texts me 2-3 time a day with questions. I don't give him the answers but point to where he can look. I guess I'm a mean dad (wink, wink)...

3
  • 2
    last para is irrelevant to the Q or the A – aaaaa says reinstate Monica Dec 3 '19 at 19:23
  • 2
    Thanks for the advice. Another frustrating aspect is that I have a few years of experience with python, especially related to gis. So JS is almost familiar to me. I could get something working if I had more than a few weeks to complete it. – wakanda_official_tourism Dec 3 '19 at 19:48
  • If you know python, could you not process the data on the backend in python, and pass it back as json and then display the shown data in javascript? (Sorry, I don't really know about GIS, or what it entails exactly) @wakanda_official_tourism – さりげない告白 Dec 4 '19 at 5:54
1

Assuming this is unrealistic and you've already had this talk with supervisor, one approach:

  1. Provide a written (!) status update on this project where you succinctly state that there is currently no capacity on the team to complete the project in current form within stated timeframe.
  2. Propose alternatives (I see two):
    • Either hiring a short-term subcontractor to complete the work, then transfer the code to you guys along with related documentation and training to perform basic testing/maintenance on the code, or
    • Change the score and timeframe to allow for reduced functionality, and/or additional training to complete the work as currently scoped out. This assumes you are generally not opposed to learning new skills in this area and will be open to training, however keep in mind that it could (and likely will) lead to similar projects in the future.

This could be that 'teachable moment' when you get to fail in the short term on this specific project, in the name of keeping your sanity in the long term. Sometimes it is better to be honest and put your foot down than allow unrealistic expectations to make you miserable.

If your supervisor feels it is beneath him/her to learn to code and support you guys with this task, then they need to provide other supports to help you ramp up. Even more so if this is new territory for you and you feel unprepared and uncomfortable diving in with zero support.

If you are honest upfront and put your concerns in writing (via email), then you can point to your written response later if they try to accuse you of sabotage or insubordination. You can then take your response to the PM and put the ball in supervisor's court to explain to the PM why no course correction was done sooner. Good luck!

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .