The Artima Developer Community
Sponsored Link

Weblogs Forum
I Know Why Software Sucks

34 replies on 3 pages. Most recent reply: Feb 27, 2008 11:48 PM by Jeffrey Lowers

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 34 replies on 3 pages [ « | 1 2 3 ]
Craig Zello

Posts: 1
Nickname: craigzello
Registered: Dec, 2004

Re: I Know Why Software Sucks Posted: Dec 4, 2004 7:31 AM
Reply to this message Reply
You made some valid points, but I won't just blame bad software on Bad Managers. I do agree with a quite a few points that you and others have made

- Sometimes I can't even believe how managers lose common sense about what is wrong and how to fix it.
- It is amazing that someone with 7 years of experience is considered Senior.
- It is definately more difficult to understand business requirements as opposed to a technical solution. However, I personally believe in Business Analysts.
- There are so many reasons why software sucks. Bad Management, MisUnderstood requirements, Poor System Design, No testing, Source Control Management, etc. I could go on and on.
- My best experience was one where there was 1 overall PM (people manager), 1 Architect and 1 day-to-day PM. It was a large group, but I loved it!

I wish there was some silver bullet, to make all software somewhere great. I'm just hoping to find that 1 place that really *tries* to do things the right way. When I find that, then I will do whatever it takes and settles.

Joe Merlino

Posts: 4
Nickname: ooforever
Registered: Aug, 2005

Re: I Know Why Software Sucks Posted: Aug 23, 2005 6:14 PM
Reply to this message Reply
The main reason in my experience why software sucks is that people who manage IT development projects fail to realize that The System IS The Solution.
Having a process for developing software is step one. The process does not have to be perfect but it has to be adhered to. Until the process is put in place failure is the predominant outcome. You don't need a team of super developers, just a team of competent developers who are willing to follow the process.
Until pm's become unabashed truth seekers the same outcomes will keep repeating themselves.
In my experience deadlines were pulled out of the air without taking the time to determine what needed to be done and how long each piece would take. This leads to crappy coding which, as the project grows in complexity, will certainly cripple the project. As these issues come up ( usually midway or even closer to the "deadline" ) more crappy workarounds are introduced which in themselves weaken the foundation of the codebase, which in turn further inhibit the system to take on the complexity it needs to. Only by following processes that demistify the software developoment effort will any chance of success be realized. Its not how fast you code or how many lines of code you can write. Its figuring out exactly what you need to do and how long it will take. Speaking for myself, if I'm given 12 months to do a project that I determine will take 7 months I'll probably get it completed in 9. Conversely, if I'm give 3 months to do the project I'll probably complete it in 9. The onus is really on the project managers and above to have a process in place and make risk assessments up front. It takes courage, conviction and skill to do this which I haven't seen yet in my 7 years of development experience though. The Software industry has to take a lesson from the car manufacturing industry. Just think how much a car would cost if a handful of people built each one from scratch with only MSWord documents on how it should work?

Quais Taraki

Posts: 1
Nickname: quaistarak
Registered: Dec, 2006

Re: I Know Why Software Sucks Posted: Dec 30, 2006 3:21 AM
Reply to this message Reply
Disclaimer: the views expressed in this reply are those of a junior (<3 years) software developer. I am still learning – please don’t flame me.

I can’t relate to having a problem with my management being a major reason for software sucking. I have been really fortunate. My managers have been pretty damn good.

I think if you raise a concern such as coupling then action needs to be taken. If your manager dismisses your point then your organization needs to have a dispute resolution process. This can be as simple as calling a meeting with stakeholders and each side presents his/her view. Also this can be done by escalating to your manager’s manager. Ultimately this is a career limiting move. Your manager may end up hating you.

The hardest part about developing software is dealing with people. It is the hardest part of my job. People lie; break commitments; randomize timelines and schedules. The best thing to do is to create processeses that eliminate the ‘people’ aspect of your job. Politics and people aside software has many more problems. I think that software is incredibly complex for human consumption. Perhaps it sucks because we are too stupid. What’s impressive is that it works most of the time.

-Quais Taraki

Paul W. Homer

Posts: 2
Nickname: phomer
Registered: Feb, 2007

Re: I Know Why Software Sucks Posted: Feb 1, 2007 3:02 PM
Reply to this message Reply
I think many of the problems start with the culture of programming and hacking. It is your responsibility as a professional to make sure that your work is good. If your manager tells you to fudge it, you shouldn't just blindly go off and make the changes. If you know there is cleanup to be done, but you hate that sort of work, you shouldn't just ignore it and blame the manager later for not putting it in the schedule.

Programmers are notorious for cutting corners and not spending that extra 20 minutes to fix the problem early. As a collective group, the work ethic is lazy and the quality is poor. I definitely think management acts as a multiplier causing the problems to get worse, but its because we allow them that control. To make it worse, several companies discovered quite early that throwing hundreds of young untrained, but energetic coders at a problem produces code that is just good enough to get away with selling...

Jeffrey Lowers

Posts: 1
Nickname: jlowers
Registered: Feb, 2008

Re: I Know Why Software Sucks Posted: Feb 27, 2008 11:48 PM
Reply to this message Reply
This is a subject that I have given an increasing amount of thought over as both a software developer and a manager over the last three decades. I've read a number of articles from David Platt, Damien Conway, Richard Stallman, Scott Berkun as well as yourself. Although each of you make a number of valid points, I feel strongly that there is a bigger picture that is being missed here.

As a software developer I went through various stages of reusing code, toolmaking and studying the latest development techniques that I could place into my programs. The problem was that the more intricate and complex my coding style, the more difficult it was to complete, the harder it was to debug and the less likely is was able to be maintained by someone other than myself. Also, the more complicated the program, the more likely that it would require a rewrite in the future. Over time, I had to learn to simplify the assignment down to its essential elements before I wrote a single line of code. This meant that I had to learn a lot more than how to write programs. I had to understand the reasons why I was writing the program in the first place. That meant that I had to understand the people that I was working for.

Believe it or not, the first thing that I realized when I became a manager was that I had to get smarter. Like most developers, I had a certain amount of contempt for management that had to be unlearned once I joined the club. Managers do not merely "chase cats". I had entered a world where I was required to answer rapid-fire questions from my superiors, obtain specs from users, schedule projects, keep a dozen programmers on a schedule and do it all at the same time. If I didn't do my job properly, I'd have a heck of a lot more to worry about than a few bugs in a program. Millions of dollars were potentially at stake. I had to learn to see a bigger picture.

After living on the other side of the fence, I now see software developers in a somewhat different light. The first thing that I notice is that developers whine a lot. They always want more contol, the latest tools, better specs, more testing and more time. Yet, they never seem to take advantage of what that they do have. A developer has almost complete control over his code as long as he can meet the project criteria. So why waste time working in more detail than is required to finish the job? Before you ask for more tools, ask yourself how well you are able to use the tools that you already have. Tools change on a yearly basis. Each new tool requires time to master its learning curve before the tool can become productive. Too many tools means too much time learning and not enough time working. Getting better specifications is a matter of motivation. Get out of the cube and learn from the people that need the program. Everyone will appreciate the effort. It will also make you a better developer. Also, the same people that you take the time to spec with will give you the time later to test. Finally, try to understand that deadlines are very important. One of the biggest problems in software development is that is has always been impossible to predict when a given project can be completed. When a project is late, corners get cut. Things that should be done properly often don't get done at all. Also, it is very difficult to justify doing more than the absolute minimum if the manager is being screamed at because the project didn't meet its deadline.

This response is an admittedly one-sided answer to a complex and multi-faceted problem. Management is at least as culpable in many other ways that I would like to discuss at a later time. The point that I am trying to make here is that sofware developers can directly work towards making the software that they create better by making an effort to see the bigger picture. Believe it or not, developers have a great deal of control over the quality of the software that they produce. Seeing the bigger picture will help developers to focus their best efforts on the features that are critical and avoid wasting time on distracting and time consuming details that nobody will care about two weeks later.

Flat View: This topic has 34 replies on 3 pages [ « | 1  2  3 ]
Topic: I Know Why Software Sucks Previous Topic   Next Topic Topic: Ruby vs Python for Code Generation and Flippin' Templates

Sponsored Links


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