views:

533

answers:

11

The in-house system I develop and maintain (at a UK college) is always under fire from requests for new subsystems to be added, minor amendments to major overhauls and a steady stream of bug fixes from previous work.

The current consensus is that because it's developed in-house, changes(regardless of size) can be made on a whim, and deadlines usually in the negative "We need this yesterday". "Surely it can't be that big a job" is common-place.

As for tracking the changes made, I have an instance of mantis that's been in play for about a year, but as I'm the only one (of about 6) that's contributing to it, it's quite useless.

To those working on in-house systems: Is this the norm? Can it be remedied?

How would I go about putting a 'contract' almost, in place between the software development group, and the members of staff requesting the changes? Anything too overkill will just be gunned down, but not loose enough that deadlines and requirements are poorly defined and heads start rolling when a requested feature is late.

+5  A: 

There is only one real solution - just say 'No'.

And if you think I'm being unrealistic, I worked for a couple of years for a UK university (Poly back then) on academic admin systems, and my almost universal response to feature requests was 'No', or 'Next version'. And my software was always delivered on time, did what was required by the business (which is really what the DES or whatever its called this week required) and nobody ever suggested I should be sacked or disciplined - on the contrary, I was repeatedly promoted.

anon
Could you just imagine if it were that easy...I could work 4 hours a day if that were the case....
theG
it really is that easy - but you won't know until you do it
anon
In healthcare, it isn't easy. Doctors always have the 'It's a patient safety issue' comment, which CIOs view as a REQUIRED change. Scope creep follows immediately. I know what you meant though.
theG
+1  A: 

You just need to implement some policies. Have your supervisors (and theirs, so on...) sign off on set policies and procedures for development tasks, including change management.

theG
+5  A: 

It sounds like you need to actually implement a software development process. You could look at Extreme Programming if you need a full-blown methodology, but that'd probably be shot down. A simplified process might be:

  • staff requests change (documented in issue tracker)
  • development estimates time required for change (development, not staff, must estimate)
  • staff prioritizes change request based on existing workload of development
  • development completes changes in order of priority
Rick Copeland
this seems a touch idealistic - I wouldn't say it's wrong at all, but it strikes me that the problem is a missing PM and no methodology will fix that
annakata
This usually does not work at all when you have large user base where 'their' request has the biggest priority (which seems the case here).
Rashack
If you don't have a PM, you need to be your own PM and put the methodology in place yourself.
Adam Jaskiewicz
@Adam: but if you're the PM you're not being the programmer, or you're being both *badly*.
annakata
@annakata: This dev is in a team of six. Five devs and a halfway-decent PM is better than six devs and chaos. If upper management isn't going to bring in a PM, one of the devs needs to step up and be the /de facto/ PM.
Adam Jaskiewicz
Well, if there's a large user base with conflicting requirements and no one to prioritize, then yes, you need a manager. If you track all the change requests, however, even in the absence of a manager, you can say "I'm currently working on this task for Ted. If you believe your task is higher priority, please consult with Ted and come back to me." But you need to track things explicitly in order to do this.
Rick Copeland
Yep. It's stuff that *needs* to be managed. A developer splitting time between dev and management is better than not having that management at all.
Adam Jaskiewicz
+12  A: 

The best bet is to have a manager between the group of people requesting changes/fixes and the development team. It is up to the manager to say 'No' when necessary and to triage worthwhile requests.

Essentially one of a Manager's responsibilities is to shield the development team from user onslaught.

tehblanx
so we hire a person and pay him a salary to say "no" (or more likely "yes")? Are developers incapable of mouthing two simple english words?
anon
I really can't believe this is getting upvoted - surely the pointless manager is one of the great bugbears of programming (see dilbert) and here we have so-called programmers voting to add a management tier!
anon
@Niel: "Are developers incapable of mouthing two simple english words?" Apparently, listening to developers over the years, yes. Good managers are not Dilbert's PHB. Good managers (who would need to have more tasks than saying "no", obviously) do triage, shield their teams from politics, build long-term plans, and otherwise prepare their developers to actually develop.
Michael Petrotta
Well, I think good developers can and should do both. Can you imagine the likes of Torvalds, Knuth, Thompson et al being brow-beaten by users? An if you don't think of yourself as a good developer, you should be doing sometthing else.
anon
I have had horrible managers and great managers. The great ones understand the challenges and pressures of development and are actually an asset to the dev team. I can understand your frustration with 'pointless managers.' I know many of us have been in that situation.
tehblanx
@Neil: Your whole opinion is based on the predicate that the manager is an idiot: if the manager isn't, then it's like having some incredible PDA which can deal with the politics, budgets, and scheduling so you don't have to. Having a good PM on your side is far more than a dilbert caricature, i think you need to readjust your thinking.
annakata
Developers face special challenges when developing 'in-house' software for businesses that are not primarily focused on software, however.Imagine trying to explain to one of the 'stars' of a company (i.e. the stock trader or broker billing $$$'s per hour) why his request is so difficult to implement. Many of these people look down on the dev team, since they are not the ones pulling in the dough.A manager that is respected company-wide makes this task much easier.
tehblanx
@annakata not at all - I've been a manager myself, numerous times. but what I haven't been is ONLY a manager. And I have never been inserted into an organisation structure just to "protect" some fragile developers - I was there to manage the projecrt - to get it out of the door.
anon
@tehblanx as a developer working in IB's that's exactly what you have to do. The half-baked requests from on-high I've had to refuse in those places are without number.
anon
The manager of my department does all that's possible, the problems occur when these half-baked ideas bubble up the management structure past the defensive shield.
gridzbi
@Niel: "Can you imagine the likes of Torvalds, Knuth, Thompson et al being brow-beaten by users?" Yes, and it makes me very sad. If they were in a position that this was likely to happen, they'd be happy to have a manager working for them. If it makes you happier, substitute "agent" for "[good] manager" in this thread.
Michael Petrotta
@michael you may be happy giving a percentage of your salary to someone for doing something you can do better yourself, but I am not
anon
A: 

Do requests go right to the developers, or are there any sort of project/product managers involved?

Mike C.
help desk, developers, and any manager that'll listen. The structure of the department changed a lot 6 months ago, so in most cases there is a general air of confusion as to where the requests go.
gridzbi
See tehblanx post above and all the comments. I was going down the same route as he. A developer should be able to focus on developing, period. If the role is supposed to be more of a hybrid role then some time needs to be dedicated to actual project management. I was extremely resistant to my PM when I was first assigned to one, but once I got past the initial "hurt feelings" of not being trusted to do the whole kit and kaboodle it was indeed a great change.
Mike C.
+2  A: 

All RFEs must go through the bug tracker.

You estimate time for each fix.

Management dukes it out with customers to determine which fixes get priority (i.e. not your problem).

Adam Jaskiewicz
+1  A: 

I would say it's generally the norm. Making a buck now instead of making two down the line always seems to be managements priority. What they might not understand is that it will actually end up costing them more.

Failure to plan is planning to fail.

If you're just making changes on a whim then you will encounter poor design decisions that will ultimately make it even more difficult to make fixes on a whim in the future.

Where I work we do a lot of in house development (we even made our own "issue tracker" for some reason...). Management and even the IT director always want things done yesterday. I've given up on trying to design things properly and I've just started adding on to what's already there. Everyone else seems happy about it and if I don't have time to do things in the time frame needed, I just say it's not going to happen. I do my best and they can't expect anything more.

Joe Philllips
+2  A: 

Sounds like you just told my life story... I'm currently working on reviving our bug tracking/issue request system. No accepting any new requests that don't come from that. and if the access is set up correctly, the managers can see what else is outstanding, and just what else you may be working on that's keeping you from building that time machine :-)

Ian Jacobs
+1  A: 

I'm not sure how you react to all these requests, deadlines, etc. I would first start to look at your own team (of 6, as I understood it correctly). Is there something to improve there? That team is your easiest target, because they speak the same language as you, and probably know you well.

Once that team is working efficiently, you can start saying no (like Neil Butterworth suggested). Because you've got to treat your users as little kids. They need to be educated and raised. They need to respect you for what you do (assuming you do it well).

Try to put agreements on paper (agreements that you would make usually, no contracts), so you have some leverage (it's all about leverage) at the end (or during) your project. It is important to let your users know WHAT you are going to deliver and WHEN you are going to deliver, and maybe even more important; WHAT you are NOT going to deliver.

Make bullet points out of those 3 things, and you should be alright. It takes some getting used to (for your users) but eventually this will create a better working environment for you and your users, because you know what to do, and they know what to expect. And if either of you forget, it's all written down..

MiRAGe
+1  A: 

I'm with @tehblanx on this one. Clearly this is a management failure! Anything you do is only chewing gum in a cracked dike. Change has to be implemented at a management level.

Management is meant to provide regulatory authority, to winnow requests, perform triage and set priorities, clearly that is missing from your environment.

Management is not meant to be Yet Another Oppressive Boot on your neck.

kloucks
+2  A: 

As stated above, your options are limited. In Cowboy Coding environments, the cultural incentive is to NOT participate in processes. While a set of processes will result in a better product, the reduction of chaos will make it easier for new people to come in and learn the product and in turn make your co-workers less indispensable.

In other words, chaos is good for hackers. If nothing is written down and nobody understands where the landmines in the code are, you become pretty irreplaceable. When new people come in and screw things up, they get to come and save the day. As it more and more people are fired and quit and labeled morons, the smarter these guys will look.

Your only hope is to put a simple presentation together for your management that will make it crystal clear how a few simple changes will benefit HIS career.

related questions