Hot answers tagged

318

Communicate your concerns in the most concise and non-confrontational way possible up the management ladder. Summarize the risks, but do not impose your conclusion on them. Management must always have the choice of what to do, but it is your job to assess and communicate the situation. Use email, so as to leave a paper trail when things go south. Having ...


105

Keep a paper trail (e.g. diary, saved emails, etc). Only include facts and objective observations. Leave all conclusions up to whomever (if anyone) reads what you've written. As a developer, if you're not viewed as an obstacle to the project you're likely to come out fine from the finger-pointing that will no doubt happen. Your manager may not be so ...


90

I'm going to recommend you take a little time to read 2 books. Death March is the canonical book that describes a pathological project management style that is widespread in software development. Due to schedule compression, feature bloat, or mismanagement, many projects end up in a bad state; it helps to understand that you are not alone and your project ...


58

3 simple and cynical strategies to maintain career/sanity. See a train wreck in the making - get off the train: Failing projects are terrible for morale and unless you have ninja upward management skills will have some negative impact on your career. Jump now if you can see any soft landing. If that doesn't work keep your head down: People are going to ...


35

What impact will this soon-to-be failed project have on your career at the firm, and beyond? In my experience, merely being associated with successful projects is not an indicator of your own personal excellence. The qualities that you exhibit in the face of adversity and sometimes what looks to be certain failure, often gets noticed by the higher-ups, more ...


33

Both describe the consistency of an application's behavior, but "robustness" describes an application's response to its input, while "fault-tolerance" describes an application's response to its environment. An app is robust when it can work consistently with inconsistent data. For example: a maps application is robust when it can parse addresses in various ...


23

In a situation like this, as the lowest rung of the ladder, there is only so much you can do to help the project. Make sure your work is spotless help identify the biggest problem areas Try to provide answers, not just problems. Look like you are trying to fix them. Aside from that, you really do have to look after number 1. Document everything keep all ...


22

Failing projects can be toxic to the soul, cause depression, over work and low self-esteem. It's all relative to perspective. I've worked on horrible projects while sitting across from another guy who had a smile on his face every single day. Oh how I wanted to slap that smile off his face. Some people aren't bothered by the current state of affairs on a ...


12

Try to be proactive about finding a new way to achieve success for the project. Think about how you can propose some alternatives. Right now your boss is probably getting beat up about the project being a failure, wouldn't (s)he appreciate someone coming in with solutions instead of problems? Maybe there is a way to split the features into staggered ...


12

Sounds like most projects I've been on. It probably won't end as badly as you think, however: 1) Do your job. Don't worry so much about the overall project as long as you complete your responsibilities. 2) CYA. If the project does fail and you suspect the manager will start blaming everyone but himself, make sure you have enough proof that you did ...


11

Work hard; but not at the expense of your family or your health. Keep a record of all critical design decisions; especially as they pertain to your work. Keep networking, and keep your options open if the situation becomes too difficult or you become a victim of a mass layoff. Try not to think of your project as a "failed project". Everyone likes people who ...


9

Its okay to do a 'strict' or a 'nice' version of a delete endpoint, but you need to clearly tell the user what happened. We're doing a delete action with this endpoint. Likely DELETE /resource/bulk/ or something similar. I'm not picky. What matters here is that no matter if you decide to be strict or nice, you need to report back exactly what happened. ...


8

What I've found most effective is Robert L. Read's recommendation on how to fight schedule pressure. Here's what Read writes: The key to fighting schedule pressure is simply to turn it into time-to-market pressure. The way to do this to give visibility into the relationship between the available labor and the product. Producing an honest, detailed, and ...


7

Yes, it's an industry standard to notify not everyone, but only those whose changes are in the build when the build breaks. The reason is that in any organization of reasonable size you have a certain percentage of people who do not conscientiously follow a build through CI. If you don't do this, when a build breaks, whoever needed a clean build at the ...


5

It is beside the point. Industry standard is a bit of a problematic term, since it does not necessarily indicate that the practice is good. The consultant probably just use this term because it is a lot easier than making a lengthy argument of the justification and benefits of a particular practice. But most likely the consultant indeed believe that the ...


4

I participated in three projects that were clear failure. These were quite painful but looking back, two of three did not have negative consequences on my career, and even third one wasn't the end of the world. Here are some observations I recall. Developers at junior positions ("code per spec", "fix the bug", stuff like that) don't get affected much, ...


4

Gee this sounds familiar. I was once the manager for a group that had a large application which had a few unhandled exceptions that were eventually caught be a global catch-all-and-display-the-world-has-ended handler. By default this used to allow the application to keep running. Your point about application state in this case is the same one I made: the ...


4

Since your manager knows it will probably fail, you're better off than most. I would consider working with the manager and see if there are any parts/features of the app that can be excluded. Too often we think every client request is a 'deal killer' and go out of our way to promise the delivery. Until someone works with the client and probes deeper, you ...


4

There are reams of practical (and otherwise) advice here already, but to me the keys to this mystery are the following two items (emphasis mine): The deadline is in 1.5 months and ...we actually just inherited this project (along with the mess) around 1-2 months ago from another dev team under the same manager... So.... Welcome to Team Patsy The ...


4

The correct state of the f_i+1,f_i+2,...f_n would be "cancelled". If f_i failed, you are cancelling f_i+1,f_i+2,...f_n and not failing them. A failure is from an issue internally in the function, not external. If f_i was cancelled, you are cancelling f_i+1,f_i+2,...f_n and f_i as a set. Therefore they are all cancelled together.


3

What can you do Treat this in your own self excellence terms, it's "their" project, but also yours, take ownership even though you know it will fail. Why? because a) you might help it fail a little less, b) in time of challange, this is where you learn the most c) you should measure yourself via your own metrics of excellence, doing your best might not save ...


3

This is an incredible opportunity for you! Let's take an entrepreneurial viewpoint on this. Assuming that management wants this project to succeed you are in a great position to help them do so. The reason this realization is so important is because you have to develop the conviction and confidence that the warning signs you're seeing are in fact going to ...


3

The U.S. Army's WARSIM project might be a good example. From this Wikipedia article: A decade after its original scheduled delivery date, WARSIM has yet to support a single Army training exercise, but is still being funded, largely to vindicate those who conceived of the system and defended it over the lifetime of its development. The WARSIM schedule ...


3

I would probably set up multi-master replication and always have the remote site run locally. That way there's no failover to deal with, the users will never get confused, and you've improved their latency. Be sure your system retains the replication logs for much longer than the system may ever get disconnected. Also have systems and processes in place to ...


2

I can understand the point that your application managers are trying to make, that simply shutting down or restarting immediately upon encountering an unexpected error can confuse a user. You always want to give the user information about what happened and if possible give them a choice on how they would like to handle it. You may also want to try and ...


2

The hidden transitions and the latency make this a pretty interesting problem, especially since you can't modify the gadget. You may be looking for a synchronizing sequence or a homing sequence. ("Synchronization" means you can issue some sequence of commands, and be sure of the state of the target state machine when you're done. "Homing" means that you can ...


2

Indicating failures by means of the return value is entirely normal in C, especially as there is no real good alternative for reporting errors. On the other hand, setting an out-parameter to NULL is far less common and the validity of that would depend, in my opinion, on who is responsible for providing the memory. If the caller of PrependPadding is ...


2

Except for setjmp()/longjmp(), C doesn't provide a built in exception handling mechanism. Indicating errors in return values is by far the most common way of handling errors in C.


2

Should a single failure fail a bulk operation? There isn't a canonical answer to this. The needs of and consequences to the user need to be examined, and the trade-offs assessed. The OP gave some of the required info, but here is how I would proceed: Question 1: 'What is the consequence to the user if an individual delete fails?' The answer should drive ...


2

One should be strict and permissive. Usually, bulk loads are broken down to 2 phases: Validation Loading During the validation phase every record is looked at strictly to make sure it meets the requirements of the data specifications. One can easily inspect 10s of 1000s of records in just a few seconds. The valid records are placed in a new file to be ...


Only top voted, non community-wiki answers of a minimum length are eligible