Coffeehouse Thread

25 posts

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

Has anyone worked on profitable software before?

Back to Forum: Coffeehouse
  • User profile image
    Korbin

    I know this seems like a very strange question. However, i have been a developer for 8 years and have been doing .NET for the last 5 years.

    With that being said, EVERY product I have ever worked on has been a complete failure. They were projects that either got cancelled and I managed to jump off the ship before it sank or I left the company because they said they were going to .NET and they were nothing but empty promises (only to find out later that the projects got cancelled anyway).

    If there is anyone that has been in this field for longer than 8 years I would love to hear what software practices (TDD, design by contract, good QA practices, anything..) your company did to ensure that the product was successful at making money for your company. I do believe that there are companies that are successful at making software, I just haven't seen it yet.

  • User profile image
    littleguru

    Surround with skilled and talented people... That helps already a lot and that also what I got from working so far. People are key.

  • User profile image
    Korbin

    littleguru wrote:
    Surround with skilled and talented people... That helps already a lot and that also what I got from working so far. People are key.


    It's been my experience that management seems to destroy the software projects that I have worked on so far. And that includes sales teams that "insist" certain features are implemented despite how much it could destablize the product.

    I'm wondering how successful products deal with management that does things like try to develope software with NO quality assurance team, or management that insist certain features are added even if the software isn't designed to accomodate them, etc.

  • User profile image
    nbradbury

    IMO, the best thing you can do is get rid of anything that stands between you and your customers.  Talk directly to the end users of your software and you'll have a far better chance of designing what they want/need.

  • User profile image
    Korbin

    nbradbury wrote:
    IMO, the best thing you can do is get rid of anything that stands between you and your customers.  Talk directly to the end users of your software and you'll have a far better chance of designing what they want/need.


    That makes a lot of sense. I'm not sure most companies see that. What I have seen more than anything isn't necessarily not giving the customer the features they want, but getting the customers the QUALITY they want. Nearly all of the web based software that I have worked on has had such a fragile design that if you change anything, the application starts blowing up.

  • User profile image
    raymond

     A friend of mine who has been programming for 30+ years and was team lead and project manager on many successful projects and made a lot of money and programs for fun and profit urged me to read:
     
    The Psychology of Computer Programming: Silver Anniversary Edition (Paperback)

    I have not had the opportunity to read it yet (cannot find it my local Half Price Books store), but he swears this is the one book all programmers should read.

    http://www.dorsethouse.com/books/psy.html

    http://en.wikipedia.org/wiki/Gerald_M._Weinberg

    http://weinbergonwriting.blogspot.com/

    http://www.geraldmweinberg.com/index.html

  • User profile image
    Frank Hileman

    I have worked on commercial software products for 21 years now and nearly all have been profitable. One exception was a consulting gig during the dotcom days, where other consultants soon informed me that the main "product" of the company was the beautiful stock certificates coming out of the laser printer. Smiley

    Most non-profitiable projects fail for business reasons, not technical reasons. They simply aren't good business ideas, or the cost of building the application is grossly underestimated.

    Probably the most common software startup mistake is to focus on technology instead of solving end user problems, or creating new end user experiences. Evangelist web sites such as channel9 specifically focus on technology, not the simplest solution to a problem.

    A worrisome trend is the tendency to create unnecessary complexity in designs.

    Your ideas are good: design by contract, a QA team. I would add to that the importance of the separation between the specification of behavior, and implementation. Unlike an IT project, a software product has little room for massive redesign late in evolution, so specifications and up front analysis help.

    Stay away from architecture "gurus" who recommend all kinds of ornamentation, design pattern clutter, etc, especially when the authors have little experience building commercial applications.

  • User profile image
    Korbin

    Frank Hileman wrote:
    
    Most non-profitiable projects fail for business reasons, not technical reasons. They simply aren't good business ideas, or the cost of building the application is grossly underestimated.


    So that raises a big question when it comes to interviewing with companies. How can you identify potential business pitfalls before taking a job?

    In other words, what questions would a developer that is interested in working on a "successful" project ask to gauge on a companies business decisions during the software development cycle that would improve the likelyhood of success?

  • User profile image
    CDarklock

    I've worked on profitable software projects. Unfortunately, the profit usually accrues to someone else! I've been sorely disappointed with the lack of loyalty when a project is completed; I took a project from limping along at $40K annual revenue, all the way up to a $1.5M projected annual return within eighteen months. My "reward" for all this hard work was for the client to hire his own in-house development team that could take over all the maintenance so he didn't have to pay the expensive developers anymore.

    This industry is just broken. I've got sixteen years of professional experience, recently came off a one-year contract at Microsoft, and I simply can't find a job. Ten years ago, I could open this thing called a "newspaper" and send fifty faxes, and within 48 hours I'd have interviews scheduled. Now I have to stick my resume on thirty job boards, and nobody calls. I shouldn't have to work this hard at this stage of my career.

  • User profile image
    Dr Herbie

    Korbin wrote:
    I know this seems like a very strange question. However, i have been a developer for 8 years and have been doing .NET for the last 5 years.

    With that being said, EVERY product I have ever worked on has been a complete failure. They were projects that either got cancelled and I managed to jump off the ship before it sank or I left the company because they said they were going to .NET and they were nothing but empty promises (only to find out later that the projects got cancelled anyway).

    If there is anyone that has been in this field for longer than 8 years I would love to hear what software practices (TDD, design by contract, good QA practices, anything..) your company did to ensure that the product was successful at making money for your company. I do believe that there are companies that are successful at making software, I just haven't seen it yet.


    I've tended to work for small companies with only one or two products.  If the company has been going for a while the product must be successful.  On the other hand, you rarely get to start anything completely new instead of adding new features to the existing system.
    The company I work for now has been going 20+ years with the same (vertical market) product taking it through alternative technologies now in .NET.  There is no real methodology, no official coding standards, no QA at all; just a group of about 10 devs all using common sense to get the job done and give our customers what they need. It was a shock when I first got here (having only worked at ISO accredited companies before now) but it works for this market; our customers don't care about coding standards, they just care that the software does what they want and that we can maintain and expand their systems as they need.

    I still determined to get some coding standards introduced, though Wink

    Herbie

  • User profile image
    Dr Herbie

    CDarklock wrote:
    I've worked on profitable software projects. Unfortunately, the profit usually accrues to someone else! I've been sorely disappointed with the lack of loyalty when a project is completed; I took a project from limping along at $40K annual revenue, all the way up to a $1.5M projected annual return within eighteen months. My "reward" for all this hard work was for the client to hire his own in-house development team that could take over all the maintenance so he didn't have to pay the expensive developers anymore.

    This industry is just broken. I've got sixteen years of professional experience, recently came off a one-year contract at Microsoft, and I simply can't find a job. Ten years ago, I could open this thing called a "newspaper" and send fifty faxes, and within 48 hours I'd have interviews scheduled. Now I have to stick my resume on thirty job boards, and nobody calls. I shouldn't have to work this hard at this stage of my career.


    What are the skills you're trying to sell? 
    I worry that I'm getting stale because I've done nothing but C# since 2003. If the job market was to change (say back to C++) I wonder if I would get work, not having used it for the last 4 or 5 years.


    Herbie

  • User profile image
    blowdart

    Korbin wrote:
    
    Frank Hileman wrote:
    
    Most non-profitiable projects fail for business reasons, not technical reasons. They simply aren't good business ideas, or the cost of building the application is grossly underestimated.


    So that raises a big question when it comes to interviewing with companies. How can you identify potential business pitfalls before taking a job?


    I used to ask, back in the .com days, to see accounts and profit and loss figures. Which used to really upset people in interviews.

    I'm not sure you, as a developer can. The people behind a business with a high risk of failure tend to believe in that business model just as much as RMS believes in GNU; it's almost religous and they can't see the flaws.

  • User profile image
    CDarklock

    Dr Herbie wrote:
    What are the skills you're trying to sell?


    Management, at this stage; I got a project management certification about six months ago. Writing code just isn't the best use of my talents anymore - I'm much more valuable to an organisation if I'm handling specifications, milestones, reviews, and deadlines.

    Unfortunately, I end up not being able to afford the wait for someone to offer me a management position, and I just have to take whatever shows up if I want to pay the rent. If I could dig myself all the way out of this financial hole, I could lay up some savings and make another cut at running my own contracting firm, but I'm only just peering over the edge of that hole and if I can't land something soon I'm just going to end up digging it deeper.

  • User profile image
    Dr Herbie

    CDarklock wrote:
    
    Dr Herbie wrote:
    What are the skills you're trying to sell?


    Management, at this stage; I got a project management certification about six months ago. Writing code just isn't the best use of my talents anymore - I'm much more valuable to an organisation if I'm handling specifications, milestones, reviews, and deadlines.

    Unfortunately, I end up not being able to afford the wait for someone to offer me a management position, and I just have to take whatever shows up if I want to pay the rent. If I could dig myself all the way out of this financial hole, I could lay up some savings and make another cut at running my own contracting firm, but I'm only just peering over the edge of that hole and if I can't land something soon I'm just going to end up digging it deeper.


    Ouch.  Good luck, I hope you find something soon.

    Herbie

  • User profile image
    littleguru

    Korbin wrote:
    
    littleguru wrote:
    Surround with skilled and talented people... That helps already a lot and that also what I got from working so far. People are key.


    It's been my experience that management seems to destroy the software projects that I have worked on so far. And that includes sales teams that "insist" certain features are implemented despite how much it could destablize the product.

    I'm wondering how successful products deal with management that does things like try to develope software with NO quality assurance team, or management that insist certain features are added even if the software isn't designed to accomodate them, etc.


    Management are also people... They seem to have no clue on what they were talking about. You need also to have skilled people there! People that understand how software is build and what users need and what not.

  • User profile image
    harlock123

    nbradbury wrote:
    IMO, the best thing you can do is get rid of anything that stands between you and your customers.  Talk directly to the end users of your software and you'll have a far better chance of designing what they want/need.


    While I agree in principal with what it is that you are saying I can attest to the observed phenomonon that often the customer does not know what they want, or more often, they don't have a large enough field of view to know if what hey want is mutually exclusive to what their co-workers want. It is difficult to extract a specification using the userbase solely. However it is a good start.

    I would also add that having the development team or at least a part of that team in the customers meetings on a project rather than disconnected sales wonks leads to a better success rate.

    We are a small operation that has had some very succesfull development efforts using .Net technology's. While we often do things without complete specifications beforehand and I would attest that the don't do enough testing. All of these being factors that have sunk projects in the past. I would peg the fact that our developers meet with the clients and as a project progress, gain an understanding for the subject matter, as the largest reason for those success's.

  • User profile image
    Korbin

    blowdart wrote:
    
    Korbin wrote:
    
    Frank Hileman wrote:
    
    Most non-profitiable projects fail for business reasons, not technical reasons. They simply aren't good business ideas, or the cost of building the application is grossly underestimated.


    So that raises a big question when it comes to interviewing with companies. How can you identify potential business pitfalls before taking a job?


    I used to ask, back in the .com days, to see accounts and profit and loss figures. Which used to really upset people in interviews.

    I'm not sure you, as a developer can. The people behind a business with a high risk of failure tend to believe in that business model just as much as RMS believes in GNU; it's almost religous and they can't see the flaws.


    I can see how that would upset people. However, in my opinion I think it says something about a company that would get upset in showing that kind of information. I'm not suggesting that companies try to purposely decieve employees that they hire, but I have worked for a companies that said they were going to .NET and I ended up doing VB6 (and I hate the language). Which of course made me feel like I was swindled into a job that I was trying to avoid.

    I'm sure many developers think "what have I gotten myself into" when they start working for a company only to find out it's a sinking ship.

  • User profile image
    Detroit Muscle

    Korbin wrote:
    been doing .NET for the last 5 years.

    Korbin wrote:
    EVERY product I have ever worked on has been a complete failure.

    There is probably a connection between those two statements.

    Korbin wrote:
    I would love to hear what software practices (TDD, design by contract, good QA practices, anything..) your company did to ensure that the product was successful at making money for your company.

    We used model based design, which both ensures a testing environment is ready before the software is finished, and greatly reduces development time. I see from your original post you are using .NET. Using .NET (VB,C#) is an old-fashioned way to develop software, and really has no place in any software industry. Why hand code C# code when you can have Simulink generate ANSI C code that is both A. faster and B. safer.

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.