Tag Info

Hot answers tagged

266

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 ...


88

The leader of this project will be the person who steps up and takes charge at the beginning. This applies to most things in life - not just software development. When everybody else is running around like chickens with no heads, the person who thinks things through, steps forward and says, "This is what we're going to do and this how we're going to do it." ...


86

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 ...


72

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 ...


68

Project Euler is good for learning CS math, but there's other things that might be a little more immediately practicable. Here are the most useful assignments I recall from undergrad: Implement all your favorite data structures: linked list, binary search tree, binary heap, chained hash, quadratic probing hash, etc. Build a string->string dictionary as an ...


41

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 ...


36

I'm guessing this is not a project at a workplace where you are a paid employee and something you do in your spare time for free? If you are making no money from this, then clearly there is no incentive for you, and no incentive for anyone else to come in fresh to deal with it. (unless maybe it is for a charity or similar voluntary organisation) As an ...


35

You could ask him/her to estimate how long it would take for her to access some far away location in an uninhabited corner of the world. As an extreme example, let's choose some lesser known peak in the Himalayas, where very few (if any) people have ever climbed on. She would need an awful lot of preparation plus practice before even starting the journey, ...


34

Short Version By adopting Zed Shaw's Programming, Motherf*cker! methodology? Longer (Serious) Version While Shaw - despite being a bit overly enthusiatic and (way) over the edge - definitely has a point there, there's a bit more to it than that... You quite simply need to learn to embrace something similar to a personal productivity ritual or ...


29

The main reason is an increase in scope, which the book "The Pragmatic Programmer" describes as: feature bloats creeping featurism requirement creep It is an aspect of the boiled-frog syndrome. The idea of the various "agile" method is to accelerate feedback and - hopefully - correct the evolution of the project in time. But the other reason is ...


29

Buy the K&R book, do the exercises. You'll (re)learn all you need about C, and a lot about CS too. Skip to the later chapters for parsing and Unixy goodness.


28

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 ...


26

First, you need to get out of the mindset that you are now working for free, just because you've gotten what you believe is the final payment. You agreed to a price and were paid. If you had received all of the funds up front before even starting, would you have been doing the entire project for free? (BTW this is why I never work on fixed-price projects; ...


26

I've had my share of jobs in IT. Helpdesk, networking, software development, they all share similar problems. Quitting and starting anew, while refreshing, only brings about a new set of problems to deal with. There's a few things you can do to keep your sanity in check. Look for the real problem The client is trying to fully control projects. See if ...


25

Jarrod Nettles' answer pretty much summarises a lot what I was going to suggest, so I'll throw in some of what worked in my recent experiences in a similar situation. I would suggest finding some way to talk with them vocally, rather than by email. If you're not in the same area, get them all on Skype. If you're in the area, meet them at a coffee shop or ...


24

Shifting requirements, faster delivery Agile is appealing because it gives the possibility of adapting to changing needs more quickly (or at all), and delivering those changes to the customer more quickly. This is why many companies fail when using Agile/Scrum: Managers don't understand that with great power (of setting quicker release dates and changing ...


23

I like examples. If you have an API that performs a variety of foo operations on bar objects, include practical examples, not just a single line showing how to call the function. Also make sure you include somewhere a high-level "big picture" overview of whatever is being documented. It's great to know the different types of foo operations available, but ...


22

Try creating a simple commercial product. Whats good about doing this is that if you can generate some sales for it, you can end up with a product that generates continuous (if small) revenue, whether you are paying attention to it or not. It will also be very valuable experience.


22

Announce your abandoning of the product to your community of users. Maybe you will find a successor for your role as maintainer. Try to organize some time of handover, as you would with a project in your day job. As esr put it in The Cathedral And The Bazaar: When you lose interest in a program, your last duty to it is to hand it off to a competent ...


22

First, don't panic. Imagine the worst that can happen. You try your hardest to understand the code base, can't get your head around it, tell your mentor, and he is disappointed and takes the responsibility away from you. But something good happened: you were honest about your limitations and didn't get in over your head and produce a bad product. That's ...


21

Yes. We are not sure what we are going to call the project/app we are working on at the mimute so we came up with a quick code name so we didn't waste time thinking about a name when it isn't strictly relevant.


21

Teaching I've taught a computer science class at a local university as an adjunct professor. The pay is decent, but it does require a one semester commitment. Update: As @Orbling said below, there are other benefits of teaching besides the money. Teaching has greatly helped me improve my communication skills, especially my public speaking. Getting a ...


21

I'd start stopping to write things like this: Addendum: Please answer if you have experience with large-scale projects/open-source projects and try not to provide hypothetical/theoretical ideas, but practical, proven ones. This kind of arrogant attitude actually kills more open source projects than anything else. Open source is less about ...


21

Build one to throw away comes from "not knowing what you don't know" at the start, so you learn as you go what you should have done at the start. Second System Effect comes from "now knowing what you did not know, however not knowing what you still don't know" i.e. Second system effect comes from trying to build a bigger, shinier, more complex system than ...


20

The device is quite advanced, with more different functionalities than I could say from memory, and 98% of them are handled by this one huge executable. In one hand, the program is quite maintainable, well modularized inside, properly documented, there's a reasonable separation of functionalities by directories and files and so on. You said it ...


20

This is a very good question. In general, I prefer to keep things in English, because it is more or less the de-facto standard for software development. However, I also believe in creating domain models that represent the actual business, and the domain model should be described in terms that make sense to the business stakeholders. And if the business is ...


19

I'm not sure that thinking about a problem ahead of time vs. iterative approach are contradictory to each other. Just like many other things, I think you should strive to achieve the balance between the two. How do you find the balance? That's something you learn with experience and often time best lessons (i.e. stuff that gives you experience) is when you ...


18

Come on man, you're doing one of the most hard to do things on earth and you still have to work > 8 hours a day? I work fulltime, i don't even have time to make a contact form for a friend. When someone ask me to do anything for him i will just say - "I'm no kid now, i have a JOB! I will not waste the whole weekend to make some stupid website for some ...


17

I think that if you tried to pull me away from my family and all my personal responsibilites for an entire week of work promsing unpaid overtime and forced interaction with my co-workers I would do my best to opt out. I like a lot of my coworkers, but there is no way your whole team likes each other that much. If you have a bunch of single employees this ...



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