11

My company is composed of an iOS developer, an electrical engineer, a tester, two firmware engineers, an algorithms developer and a backend person. As you can see, it is diverse.

The iOS app is incomplete and is nowhere near ready for shipment. The firmware took twice as long as expected to be feature complete and is still full of bugs. How is the CEO (the decision maker) supposed to know whether the engineers are doing their jobs too slowly, slacking off, or whether the work is genuinely difficult? Should he just hire more engineers and split test them on the same assignments? Should we hire someone even MORE senior to measure progress? Is there a more efficient way?

EDIT: More information:

  • The project manager left 18 months ago because maternity and hasn't been replaced
  • I'm one of the firmware people
  • The CEO doesn't have any software development experience
  • deadlines were set by senior people 12 months ago, but they've been wildly exceeded.
  • 11
    who calculated the time frames in the beginning? – Kilisi Aug 19 '18 at 8:48
  • 5
    And based on what? – gnasher729 Aug 19 '18 at 9:52
  • 1
    As half the firmware engineering team, you should have some idea why the firmware is full of bugs. It might help to know why. (Could it be that you know darn well the progress is as fast as can be expected, and you want to find a way to show the CEO?) It would help to know how the deadlines were set. Were they set by anybody with a technical background? Were they a matter of "this is the amount of time the project is likely to take" or "this is when the business plan says we release"? How defined was the project at deadline-setting time? – David Thornley Aug 20 '18 at 16:39
  • 1
    Should he just hire more engineers and split test them on the same assignments? 9 pregnant women don't make a child in 1 month – Mario Garcia Aug 21 '18 at 7:38
  • why is there firmware to write for an iOS app? – hkBst Aug 26 '18 at 10:59
16

Well, that's the CEO's problem. If you don't know about software / hardware development, then you can't actually judge if a problem is easy or difficult, if the developers are slow or fast, and if they are working hard or lazy.

The way to find out is to talk to them, and see where problems are. The things most likely to cause problems (other than sub-par developers) are a CEO who does not know what is achievable, and a CEO who always changes his mind and/or doesn't listen.

Another thing is that if you have one developer, then you need a good one. One good developer and four not so good ones can work, because there is always a lot of easy things to do that cost time. If you have a single developer then he or she needs to be good and solve any problems that come up without help. Fact is that good developers are not cheap. If you don't pay much, then I can guarantee that your developers are not good. (Paying a lot doesn't guarantee anything either).

(I once saw an advert where they needed a developer capable of lots of things, and a price tag that didn't match. I knew hundred percent that for the money they wouldn't find anyone capable of doing the job. Replied to the advert that I could do this job, for 80% more than what they advertised. Got no reply.)

PS. The software developer will have a bit of the problem if the hardware isn't ready.

PPS. Since no project manager was mentioned, I assumed the CEO was doing the project management. If there is no project manager, then you need either very good employees who can manage the project themselves (which will take time away from their development work), or you need to hire a project manager. Preferably one who doesn’t repeat this question in twelve months time.

  • Even a good developer will need a sounding board, someone to discuss things and maybe even some heated discussions to avoid blind spots or getting stuck in the wrong solution. So, I think just having a single developer is never good, even if it is a good developer. – Mark Rotteveel Aug 20 '18 at 11:22
  • 1
    In a pinch, I've been told that a cardboard cutout of Captain Kirk can be useful to explain things to. Sometimes, just putting something into words can lead to its solution. – David Thornley Aug 20 '18 at 16:30
11

How do you know if a developer is doing their job too slowly?

The CEO should have trusted experts overseeing the work and responsible for it eg,. managers/supervisors/lead etc,. who know by experience how it should have gone.

Even experienced and competent people can work at completely different speeds for many reasons.

At the end of the day it's less how fast the dev does the work, than 'how fast does the company need this done before it starts affecting the bottom line too much.' And someone with an actual plan and the knowledge to complete a project in a timeframe.

  • If the deadline is unrealistic, there may be nobody anywhere who can meet it. Just because something would be good for the business doesn't mean it's possible. Heck, where I work it'd be good for the business if we never caused bugs. – David Thornley Aug 20 '18 at 16:32
  • @DavidThornley if the deadline is unrealistic that means no one had the experience or the plan at the start. Covered that in my answer. – Kilisi Aug 20 '18 at 19:05
8

The project manager left 18 months ago because maternity and hasn't been replaced I'm one of the firmware people

As Joe Strazzere pointed out in the comments, this may give you a hint why your project isn't managed properly and your deadlines are slipping. 18 months of basically "free-for-all, do what you want" is going to do that to any project.

deadlines were set by senior people 12 months ago, but they've been wildly exceeded.

Under what circumstances were those deadlines set? Did they say "one mid level guy should complete this in X time" or "this should take 12 months, given a team of X people working under Y methodology, using Z tools...". You may find that management (excluding project managers, well, good ones) will only take "it will take 12 months" from both of those statements and then wonder why work isn't getting done as fast as it should in their minds.

Should he just hire more engineers and split test them on the same assignments?

Throwing more bodies at a problem only works short-term, if the issue is simply "too much work". If there are obstacles a regular engineer won't be able to remove, like your contractors slipping the deliveries, bad task prioritization, release plan changed every day by management etc, you will just run into roadblocks at an increased speed.

Should we hire someone even MORE senior to measure progress?

Why would you waste some mega-senior talent managing projects? That's project manager's job.

Is there a more efficient way?

I don't know how long maternity leave is in your country (here it's 18 months) - is the PM coming back? If not, hire a replacement. Do note, if it's really as bad as it sounds (18 monnths of no supervising from PM sounds like it), you may not like what the PM has to tell you.

Work with him to release your product in stages (core functionality, nice to haves, strategic client integration etc. ) and not all at once.

Stop having a bus factor of 1 - both for your PM and your sole mobile dev. What would you do if your iOS dev quit today? Even if you somehow hire his replacement on the next day (hint: you won't) you are looking at even more delays while he tries to figure out what he's supposed to do.

Finally:

How is the CEO (the decision maker) supposed to know whether the engineers are doing their jobs too slowly, slacking off, or whether the work is genuinely difficult?

He's supposed to hire people who can manage those things for him and not let things fester for 18 months.

4

How about you hire a project manager - what you described is not a problem in itself, it is only a problem if there is no project management. An firmware development taking two times as long as "expected" for a new product is not unheard of or "not expected" from a project management viewpoint.

Depending on the specifics you may choose agile methods or not, but that is another story. In any case the stakeholder expectations, risks, and mitigations have to be managed.

3

If you are suspicious about your developers taking too much time, you should hire an external auditer (a contractor with proven record of accomplishments which won't be cheap at all, but cheaper than hiring another dev). The auditer will look into things and prepare something like a Gantt chart for your project. He will also have to have access to all your documentation because of course your developers could have run into unexpected issues.

Let me be clear, you can't reliabily know if your engineers are doing right if you don't have technical knowledge and practical experience. If it's bad they could be screwing you. But in my opinion the best way would be to have a good senior engineer you can trust to manage them. Of course you can't always know what they are up to if you don't have senior experts in your company (which this seems to be case given that you would ask him those questions instead of being here).

2

From my experience working for my self, directly for clients and in a company, I realized that , even for me, it's hard to asses a timeline for some project/feature. Genearlly you become better at estimateing deadlines as you become more experienced in that field. For me the field is web dev full stack. I realized, with time, that I became better at coming up with proper deadlines.

For me it helped alot when the clients were giving me exact tasks, the business model was very clear. What I realized was that with startups , where things are very unclear from business model point, it's very hard to assess the requirements so it's hard to establish a proper deadline.

So you must ask yourself, are the requierments in place? Do they change alot? If they do then the timeline of a project may change drastically.

I see that the work in your company is pretty well separated. If they are experienced employees (minimum 5 years) in their fields, they beeing specialized in one thing, it should not be hard for them to give reasonable, accurate deadlines.

You should ask yourself who is the blocker? Are you the blocker, you being the domain expert. Do you give them explicit requirements/needs for the product? Are you taking care of their needs (access to tools, information)?
Do the needs change pretty quickly (like in a startup environment)?

Now to assess if it's their fault, in my opinion , what you can do is establish some way of organizing the work in cycles and try to keep the cycles short. Keeping the cycles short will lead to more accurate work volumes. Eventually you will also know more how much time it takes for things to get done and you will know who from your team is slacking off.

Anybody (devs/managers) needs to have some experience with how much time does it takes for a feature/product to be finalized. From a manager point of view like I said, I think accuracy also comes when small work cycles are planned. No need to bring more people in, just keep your cycles small.

Now if the cycles are small and the devs keep giving wrong deadlines then it means they are not very experienced or they slack off.
Read about agile develoment / scrum

0

What is this witchcraft?!

So the project just dragged on for 18 months without anyone taking ownership, leaving the CEO overwhelmed without any upper management or at least one senior developer around.

This sounds like an insolvency waiting to happen unless the company stays afloat with income from previous projects.

As has been said, external audit would be good.
Senior development personnel, the very least a project manager is urgently needed.
If financially not possible maybe the former project lead could get back in the game.
18 months parental leave sounds excessive.

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.