The Artima Developer Community
Sponsored Link

Weblogs Forum
When Designs Matter

29 replies on 2 pages. Most recent reply: Apr 18, 2006 2:15 PM by Bill Venners

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 29 replies on 2 pages [ 1 2 | » ]
John D. Mitchell

Posts: 244
Nickname: johnm
Registered: Apr, 2003

When Designs Matter (View in Weblogs)
Posted: Apr 10, 2006 5:49 PM
Reply to this message Reply
Summary
What role does integrity really play in software development?
Advertisement

Here's a great story of how integrity not only saved the day but also real lives: When Design is a Matter of Life or Death.

In software development, it's way too easy to get out of taking responsibility. Heck, how many of us are guilty of caving in to clients/bosses when they set ridiculous schedules that we know won't work? And then we go and blame the failure on crappy management. Sure, the management has/should take on a lot of blame for setting up such a dilemma for the workers but we developers certainly can't be blameless, either.

Heck, as a technical leader/manager (CTO, etc.), it's directly my *job* to fight those fights with the business folks. Alas, it's amazing to me when it's the optimism of the technical people end up feeding the insane schedules desired by the business folks. For example, it's a cliche in the industry to take the best estimates for the schedule and then triple that to get the "real" time. Why? Because idealized estimates never take into account all of the crap that comes up in reality: meetings, vacations, sick days, downed networks, meetings, updating the schedule, interviewing potential employees, etc. And they certainly don't take into account the seemingly constant "reprioritizations" of all of the work.

Now, various buzzword "methodologies" are finally giving this reality more of voice. For example, making major reprioritzations "only" happen at "iteration" boundaries. I find that particularly helpful for developers who have a long ramp-up time to get into the flow. Alas, business demands are driving more and more development into the world of the "perpetual beta" -- just launch it and they will come and we will stay in perpetual crunch mode.

So, how do you maintain your integrity and the integrity of your projects?


Luis Sergio Oliveira

Posts: 22
Nickname: euluis
Registered: Jan, 2004

Re: When Designs Matter Posted: Apr 11, 2006 12:48 AM
Reply to this message Reply
Its also a matter of keeping the work or not. Today the pressure is so big to provide the cost estimation some upper manager conceives as reasonable, that it is very hard not to accept. Also the job and project instability normally means that you won't get the benefits of making a good work...

I'm not stating I don't resist the above problems, I just think they are a bigger force than 10 years ago.

My company has R&D in several parts of the world. It is normal to move things from Western Europe, to some other cheaper site, such as Eastern Europe, India or China.

The project in which I'm working is comercially successful, but, the code is rotten. It isn't agile, so the traditional approach of a complete redesign was selected as the most appropriate. A concept is being drafted and the effort estimation is ongoing. In the first review of the partial effort estimation one number was given: "18 staff years is the common effort". One idea/threat was also stated: "upper management wants the effort estimation with the old [rotten] architecture" - if the effort doesn't falls to this number.

They might just continue during one more year with the old architecture, just to start in another site with totally different people. I've seen it happen with a different project I worked just two years ago. And you, the one that hold the line during one year immersed within dead rotten code will be starting a different job in a matter of months. No incentives, no nothing in the end!

I prefer to bargen my effort estimation, but, be sure that the project will be the way I want. Even if at the cost of cost overruns in the end. That's the way the industry goes today... Ah, and since in one or two years from now I'll be doing something completely different, I hope they don't start betting lives upon the software that will get out of this project.

Luis Sergio Oliveira

Posts: 22
Nickname: euluis
Registered: Jan, 2004

Re: When Designs Matter Posted: Apr 11, 2006 12:56 AM
Reply to this message Reply
Oh, I must say that I would prefer to evolve the project code. As a fall back I'll order Working Effectively With Legacy Code http://www.objectmentor.com/resources/bookstore/books/welc/ and give it around if the old architecture way is chosen.

Alex Herz

Posts: 9
Nickname: softcore
Registered: Aug, 2005

Re: When Designs Matter Posted: Apr 11, 2006 2:42 AM
Reply to this message Reply
Often I feel that there is a gap/misunderstanding between some higher or intermediate management and the software engeneers producing a piece of software.
The managment trys to impose restrictions on the software as they deem fit, often without getting feedback from the very people who actually know if it's possible to actually implement that.
Quite frankly I don't think you can seriously order someone who just told you it does take (him) at least x amount of time to produce the software or it will get fubar to do it in less time (without reducing the workload). It's like telling him he should fly. Well..he cannot.

Sure, management is higher in the decision hierachy but often they are not in the place to do a well informed decision.

Ivan Lazarte

Posts: 91
Nickname: ilazarte
Registered: Mar, 2006

Re: When Designs Matter Posted: Apr 11, 2006 5:45 AM
Reply to this message Reply
I try to provide as much transparency as possible in order for the business to learn "how" to implement, even if it's at a very high level. I also try make a distinction between standard enhancements and unknowns. Unknowns are usually the ones that create the volatile time estimates. Because code usually isn't developed in a business vacuum, to me, it is imperative that the lines of communication are strong in order to deliver an appropriate solution in a defined time frame.

By giving the business keyholes into development, they usually develop more confidence in communicating with developers, and learn to isolate and manage risk. A good management team will also go a long way to suss out tasks needed towards the completion of a project.

I've found that closing the door to communication is the quickest way to failure. When a dev team says "Just give us the time, let us worry about the rest", you can pretty much guarantee the Choice of Two.

"Quality code, on-time delivery, functional product, pick two."

Merriodoc Brandybuck

Posts: 225
Nickname: brandybuck
Registered: Mar, 2003

Re: When Designs Matter Posted: Apr 11, 2006 7:03 AM
Reply to this message Reply
I must either be particularly bitter today, have a really crappy place to work or have just given up because I read this and had to snort. Honestly, I'm tired of taking on the the responsibility for management not being able to figure out what they want. On the one hand management wants to treat the development staff like nothing more than a bunch of interchangeable parts. On the other hand, when the shit hits the fan we all get a "pep talk" about how we're supposed to just magically make everything ok, no matter what decisions have been taken out of our hands in regards to developing the software that is, supposedly, the life blood of our business.

For you few technical people that actually have a say and get some respect, God bless you and keep fighting the good fight. The rest of us, I think, need to go start our own businesses and simply crush the idiots we currently work for.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: When Designs Matter Posted: Apr 11, 2006 7:23 AM
Reply to this message Reply
> I must either be particularly bitter today, have a really
> crappy place to work or have just given up because I read
> this and had to snort. Honestly, I'm tired of taking on
> the the responsibility for management not being able to
> figure out what they want. On the one hand management
> wants to treat the development staff like nothing more
> than a bunch of interchangeable parts. On the other hand,
> when the shit hits the fan we all get a "pep talk" about
> how we're supposed to just magically make everything ok,
> no matter what decisions have been taken out of our hands
> in regards to developing the software that is, supposedly,
> the life blood of our business.

You are not alone:

http://www.waterfall2006.com/styles.html

I have an added irritant of 'senior technical' people who have clearly buzzworded thier way up the ladder. I am told to consult with them to hear words of wisdom like "authentication is dangerous" (really? what's your solution? don't authenticate?) I am also told to use their tools which invariably don't meet our needs and after explaining in depth how I am not 'doing the wrong thing' and showing how the tool could be improved (simply even) the conversation ends abruptly. In any event I feel your pain.

In any event, I thought the article was great and I think there was something in it that was sort of understated. It's not just the engineer that did the right thing, the management had the courage to not chop his hands off. By accepting this mistake it made it clear that honesty was more important than being preceived to never make a mistake. I really don't see a lot of that where I work.

John D. Mitchell

Posts: 244
Nickname: johnm
Registered: Apr, 2003

Re: When Designs Matter Posted: Apr 11, 2006 8:11 AM
Reply to this message Reply
FWIW, I've riffed a bit more on the question of software "suckage" on my Krugle blog: http://www.krugle.com/wordpress/?p=91

John D. Mitchell

Posts: 244
Nickname: johnm
Registered: Apr, 2003

Fear? Posted: Apr 11, 2006 8:13 AM
Reply to this message Reply
> Its also a matter of keeping the work or not. Today the
> pressure is so big to provide the cost estimation some
> upper manager conceives as reasonable, that it is very
> hard not to accept. Also the job and project instability
> normally means that you won't get the benefits of making a
> good work...

So, is it just that you're afraid of losing your job or is there something else going on?

Merriodoc Brandybuck

Posts: 225
Nickname: brandybuck
Registered: Mar, 2003

Re: Fear? Posted: Apr 11, 2006 8:17 AM
Reply to this message Reply
> So, is it just that you're afraid of losing your job or is
> there something else going on?

How can people say "just that you're afraid of losing your job"? Our company just had 25% of its staff cut after being bought out for the second time in 3 years. I'm still here, but try losing your job and then put the word "just" in front of that statement.

Maybe you can afford to "just" lose your job. I don't think most of us can.

John D. Mitchell

Posts: 244
Nickname: johnm
Registered: Apr, 2003

Communication, Trust, and Systemic Issues Posted: Apr 11, 2006 8:22 AM
Reply to this message Reply
> Often I feel that there is a gap/misunderstanding between
> some higher or intermediate management and the software
> engeneers producing a piece of software.

Is this "just" a (lack of) communication issue?

> The managment trys to impose restrictions on the software
> as they deem fit, often without getting feedback from the
> very people who actually know if it's possible to actually
> implement that.

Ah, that starts sounding like it's more of a trust issue (if we're giving the managers the benefit of the doubt) or a Belief of Control (http://weblogs.java.net/blog/johnm/archive/2005/03/belief_of_contr.html) issue (if we're being "realistic").

I.e., have we developers taught management to distrust what we say because our own estimates are so full of crap? Or is it that managers are clueless wackos? Or both?

Or, is it that the construction of the software development game such that we are all more or less trying to do a reasonable job but the forces, constraints, pressures, incentives, risks, etc. conspire to induce us to do poorly?

John D. Mitchell

Posts: 244
Nickname: johnm
Registered: Apr, 2003

Re: Fear? Posted: Apr 11, 2006 8:30 AM
Reply to this message Reply
> > So, is it just that you're afraid of losing your job or is
> > there something else going on?
>
> How can people say "just that you're afraid of losing your
> job"? Our company just had 25% of its staff cut after
> being bought out for the second time in 3 years. I'm still
> here, but try losing your job and then put the word "just"
> in front of that statement.

Been there, done that, have the debts to prove it. :-) :-(

> Maybe you can afford to "just" lose your job. I don't
> think most of us can.

Ah, so, for many people, it is fear and the attendant aversion to the negative consequence which dominates the desire for integrity, quality, etc.

So, if fear is the fundamental issue, what can we do about it? Or do you think that we're just doomed to be stuck in this hell forever?


"If you haven't been fired often enough then you're not doing your job." --JDM

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: Communication, Trust, and Systemic Issues Posted: Apr 11, 2006 8:35 AM
Reply to this message Reply
> I.e., have we developers taught management to distrust
> what we say because our own estimates are so full of crap?
> Or is it that managers are clueless wackos? Or both?

I think a lot of the problems come from the dot com bubble. There was a dearth of talent and mobs of charismatic charlatans in IT. We still carry the load of imcompetent people and the charlatans, though reduced in number, have left a indellible stain on our industry.

Part of the problem is that the average upper management type has the computer skills of my 99 year old grandmother (well, maybe that's an exageration but you get the point.) They are completely unable to distinguish skilled technical minds from skilled bullshitters. I think a lot of them figure they have no real way to ensure success on their own so they might as well go as cheap as possible.

John D. Mitchell

Posts: 244
Nickname: johnm
Registered: Apr, 2003

Transparency Posted: Apr 11, 2006 8:36 AM
Reply to this message Reply
> I try to provide as much transparency as possible in order
> for the business to learn "how" to implement, even if it's
> at a very high level. I also try make a distinction
> between standard enhancements and unknowns. Unknowns are
> usually the ones that create the volatile time estimates.
> Because code usually isn't developed in a business
> s vacuum, to me, it is imperative that the lines of
> communication are strong in order to deliver an
> appropriate solution in a defined time frame.

So are you talking about the traditional managerial tools like gantt charts and reports or things like the agile communication tools? I.e., how do you go about providing this transparency in a way that management understands and can make "good" decisions?

Merriodoc Brandybuck

Posts: 225
Nickname: brandybuck
Registered: Mar, 2003

Re: Communication, Trust, and Systemic Issues Posted: Apr 11, 2006 8:40 AM
Reply to this message Reply
In my experience the realistic estimate is not acceptable. We are continually pushed to cut corners. My most painful experience of this was dropping in a consultant written module into our product as is. I did the best I could with the two or so weeks I was given to work on it. To do it correctly would have taken about 12 - 13 weeks. Every day for two and a half years now I have paid for that decision made by management. I did everything I could to let people know that this was a REALLY BAD IDEA.

I honestly don't know what the problem is. I think trying to pin down one grand cause for this problem is doomed to failure. There are such a myriad of forces applying pressure to get things done as fast, or faster, than possible that we are doomed to release garbage. In my past 6+ years at my current company the parts of the application we have been allowed to design and implement in a reasonable way have been much, much less problematic than those that are slapped together with spit and tape. There are several modules I know very well because I'm in them almost daily. These are the problematic ones.

There are others that I have to look at maybe twice a year at most that cause me to have to go through all the code and documentation we have on it because I don't look at them too often. Why don't I look at them too often do you ask? BECAUSE THEY JUST WORK!!

I would think that my view on this is really, really skewed except for the fact that several other developers on my team have the same exact experience.

I can only speak for myself but I have always given the best estimates I could. They are usually reasonably accurate, within one or two weeks of when I initially propose and more often than not they are off because I get dragged into supporting some big client or sale that just has to have something done. I'm in the middle of one such episode right now, actually.

My one big question about this great search for the underlying cause of systemic issues is, if we find the answer, will it really change anything? I think we've known the answer for more than three decades now. Still we don't acknowledge the simple fact that designing large robust software systems is a very arduous task that takes a lot of time and a lot of talent. All this other soul searching and focusing on process over talent is a smoke and mirros show to divert us from that simple truth. As long as there is a search for some underlying "trust" issue or process that can be tweaked we can conveniently ignore this fact, pay developers less than what they are worth, blame them when things out of their control go wrong and all in all continually dump on them for the simple reason that they'll take it.

Flat View: This topic has 29 replies on 2 pages [ 1  2 | » ]
Topic: When Designs Matter Previous Topic   Next Topic Topic: Bridging Static and Dynamic Typing

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use