Wednesday, February 24, 2010

Saturday, February 20, 2010

Pain and pleasure

I just realized something...without pain there can be no pleasure.  This has to be true even though it isn't as intuitive as I might have thought.  I thought of this as I scalded my foot (on purpose).  Well, I didn't really scald my foot, but here's a better example, "why does scratching an itch feel so good?"  Why does food taste so good when you are very hungry? Maybe it's endorphins at work.  I don't really know, but we are brought into this world crying and then made happy by bonding and feeding off of one's mother...absent emotions, we would just have feelings (that couldn't be hurt).  That must be what separates us from the rest of the animal kingdom (and maybe a few other things...curses...gifts).
 
That's the wacky thought for this morning.

Tuesday, February 16, 2010

Rants in my pants

Dear Dr. Phil,

I have this friend who is worrying me.  He reminds me of that guy in the Office Space movie who has every day worse than the last...so every time you see him it is the worst day of his life.  Anyway, he tells me, he goes to his wife and says, "99% of my life sucks and let me tell you--you are not in the 1% that doesn't suck."   That's a cold shot.

Links for February 15, 2010

 

mmog

My older son had a nice idea this morning.  He got a little bear with a tag on it which reminded him of Webkinz or Club Penguin.  He told me that he wished he could have a code to type into the computer and have his own virtual world.  Now I may be wrong, but there must be some open source virtual world maker out there.  I gotta find one and install it locally and make little webkinz for all of his little stuffed animals.  How cool would that be?

Thursday, February 4, 2010

Links for January 30, 2010

installing-rails-on-windows-step-by-step-tutorial/

Microeconomics with excel...I must have bookmarked this before

compile mame from src? why not?

More ruminations from a sofware developer

Thoughts on software development:

Perceived problem: Lack of communication (Problem is communication, but it starts higher level than the developer--where I have to spend my day-to-day to make ends meet--and they don't):

1) If I'm wearing the PM hat then I can easily figure out what the client wants and figure out if a solution is possible. I'm not getting paid any commissions on jobs that I pitch, though I do (at least in the proposal writing part) a job of a salesman.

2) As a developer I re-engineer a culmination of multi-year mountains of spaghetti code and come up with an elegant and innovative solutions.

3) We deliver our clients Rolls Royce for the sticker price of a Chevy.

4) Unfortunately Rolls Royces are hand built and take longer to build than Chevys.

5) Meanwhile the client, in their new rolls forgets that before they had the Rolls, they were riding a bicycle with a loose chain.

6) Then we move to the next client to build another hand built car while the old project drives off to wherever.

Cases in point:

1) Client A -- How can the CEO not appreciate us completing the outward facing website tie-in to the day to day database, which had many false starts before I took over the project and was a monumental business success for implementing a communication/management platform between client and their customers. Client has since hired new developers who inherit the same problems/complexities and the partnership is not severed, but there is a rift which no one works to repair. We should be working hard to get the project back.

2) Client B -- Why would a company look for an outside vendor to provide expensive CRM support for their sales force after we built a custom catalog site for them with multiple levels of access and pricing, photos, which is dynamically driven and flawless in operation for several years. Now that they've dropped the CRM company who is working to get the business back? There are big opportunities, but no one is following up.

3) Client C -- Who is the CEO or CTO to ask us come up with a replacement for a mountain of undocumented spaghetti code combines 10 year old logistic software, ms access, and a volitile asp site on top of it, a program that has become so unwieldy that no one even wants to touch it because of how unstable it is. And then after they choose the budget and the time-frame wonder why it took so long to get to where they are now? ...they fail to grasp that the system we are delivering is meant to last another decade.

4) Client D -- how can the owner bicker about rates when I re-engineered his primary download process from something that took hours each night for years and now takes less than 10 minutes and has a web front end and has active monitoring and is stable and ... So if he can hire a database programmer for $75K a year he won't be getting the support of a company with real application development expertise (back-end, tech, front end, web). If he interviewed a hundred developers, he'd be lucky to get one with as much and diverse experience and doubtful they'd be as talented. There are an unlimited number of opportunities.

6) Client E -- taking a handful of pdf pages and as many excel spreadsheets to develop a cutting edge e-commerce site? Extracted thousands of technical drawings from pdf pages and linking them with third party database incorporating competitive model lookups and custom search/filtering. Could strong after delivery communication yield more work? Sure.

7) Client F -- Took a couple of graphic designer's pages and a spreadsheet with 30K rugs and made them work seamlessly with an off the shelf e-commerce package (product cart), in which the whole database can be updated in a batch dts importing ms excel into sql server dynamically adjusting to any number of different brands, collections and sizes. Automatically adding free pads and options--working around existing framework.

8) Client G -- not done by me, but could be much better than is. The little work I do for them is still patching up average to below average work done by other developers.

9) Client H -- e-commerce site waiting for a developer

10) Clients I &J -- casualties of being spread too thin.

11) Client K (own site) -- tons of possibilities


Areas for improvement:

A. Could I speed up programming time? It goes against my character to deliver less than the best I can. If clients want something quick and cheap then I'm not that person.

B. Could I improve my skills as a developer? I don't know anyone else who has the drive or energy to learn new languages/platforms/systems at the same rate as me. Just as you are at the forefront of technology solutions, I am at the forefront of application development. So yes, but that comes naturally.

C. Could I improve as a project manager (communicating project schedules, expectations, budgets, constraints, risks) with the clients? Of course, but holding the client's hands takes a back seat when I'm busy juggling hundreds of parameters and business rules that have to get coded with extremely limited resources. I end up being either schizophrenic or bipolar, take your pick.

D. Could I anticipate current client near term and future business opportunities. Of course if I knew that I had some sort of incentive and the support to get projects completed.

E. Could I take existing products and leverage the research and development put into past successes and package them for easy distribution for new clients/cross selling existing clients? Of course, if I had some self-interest in the results.

Monday, February 1, 2010

Software Development

I finally figured out how companies make money/lose money in software development. Software development is a tough business to be in. Nearly all projects I've worked on have broken even at best. Most of the time they fall far short of their goals. This was so common that I just assumed that all sofware projects were doomed.

Now as my hair turns gray and my wrinkles deepen I finally realize that this simple phenomenon, backed by years of emprical evidence and darkening circles under my eyes, is neither good nor bad. What happens after the project is where we can place a "good" or "bad" moniker. Yes, software development is hard business. It is impossible to do a project on time and on budget because there are so many unknowns and developers are hopeless perfectionists--not to mention, any developer worth spit will spend 8 hours to do something elegantly that will save them 2 hours.

What happens next is the buyer of the software hopefully uses the code to increase productivity and fire some staff and merrily use the new application for years and years. Meanwhile the hapless developer moves on to the next doomed project to repeat the cycle over and over. The secret, only now it dawns on me, is to simply resell the code over and over...without violating any contracts, of course. I've seen it done before, but it never registered before.

An even better example of entrepreneurship is to repackage open source software and sell it as your own...not the code of course. So the moral for the day is to code and code, but to sell and sell. Before chasing something new an sometimes exciting, your best bet is to find some boring old "vert similar" project/client and sell the same product/service/application. Maybe after the second or third time around you might even make some money.

Older Posts