on change

Everyone wants change. We all want to thrive for excellence and reach for the top and whatever else your motto/slogan is. But when it comes time to make the hard decisions, you’re paralyzed. Change paralyzes people. Scared and stunned, we cower back into our illusionary comfort zones.

“Change is inevitable”, “The only constant thing is change”, “(mad laughter here)”… I’m not exactly talking about that kind of change. While the principles still apply in the software context. It’s interesting how the principles apply in multiple facets of life.

You can throw all the buzz words around, as much as you want. Social networking, Web 2.0, “we’re forward looking”, “emerging technologies”, but this is all lip service. Put your code where your mouth is, and eat it. Redo it, rebuild it, go through a process of rebirth. Because if you don’t, you’ll die. You’ll become sidelined and insignificant. You won’t be able to carry your own weight and you will collapse under it.

So stop talking about it, and adopt it. Be willing to adopt it. You don’t always have to change, but you must always be willing to adopt change. That’s one of the biggest mistake software companies make, they lock themselves in. Developers write code, and they’re joined to it at the hip. It becomes their baby, and to suggest that it should be changed is off-limits. Management will in turn back these developers, because they wrote the system, they know how it works. So management is scared they’ll leave or pout if change is suggested and they’ll lose the knowledge base. So first of all, hire people who not only take pride in their work, but also take ownership. Hire developers who will own their code and the code of the entire team. And when the times comes, they’re willing to say, “oh yeah, I frakked this up. Let’s do it again, let’s do it right. Anyone have any ideas?”.

Instead, the software industry is littered with people who, on the suggestion of change, will look at you as if you just killed their dog, and then the neighbour’s kittens. Developers don’t just build features into software, they also build in job security. If someone checks in job security into your software, fire them.

But this is not the only case where people freeze upon the mention of change. There’s also the issue of “but we have software live, we can’t begin to change portions of it, we’ll lose money!”. Yes, this is true. But you have to take off your short-sighted spectacles at some point. You’re already losing money by not changing. So take a few developers, branch off the code base and let them go nuts. Keep maintaining your existing software and either make incremental changes, or in the case where you change wholesale, develop an upgrade path.

It’s okay to experiment. One of the factors that prevents change is that management wants sure fire change. They want massive guarantees, and plans and details to the extreme before any work starts. While this is okay if you’re building bridges in sky scrapers, for software sometimes you just have to make the changes. The TDD folk will disagree on the onset, but you know exactly what I’m talking about. You can’t just phantom out of thin air what changes are required or what changes will fix things. You have to tinker and play with the system to find out. Sometimes you have to make the change to see if it works. This scares management (and some developers even). People want decisions in the confines of a meeting room, afraid to deal with the unknown, afraid to take chances and afraid to move forward. To say, “we’ll have to look that up and get back to you” is like admitting defeat. Well, it’s time to accept defeat.

Once you know there is a problem, get people to fix it. Don’t have the resources? Well then, make time for one person for a day a week. Start simple, but present opportunities instead of blockages. This should be management’s primary goal. If your best people are bitching about problems, listen to them. If they’re suggesting change, listen to them. They know better than you, that’s why they’re working for you, that’s why you hired them. And if you don’t trust them to know better, then fire them. But stop pretending to want to improve and take real steps towards change. Listen very very carefully to your best people.

There’s no better way to kill innovation and creativity than to continually resist change. Stop resisting.

I am excited, okay?

I am, it’s all inside though.

I’m having lunch with an ex-coworker a week ago. We’re catching up and he asks me what’s going on with me. I tell him about work and how that’s going, and I mentioned to him how I got into the MBA program at York.

“Congratulations man, ahahaha, buddy this is big news. You say it like it’s nothing!”, the excitement on his face not being reflected in mine.

Hmm… I guess it is big news. And I am excited, I really am. I’m not sure how more to show it. But I am. It’s just that I’m in purgatory right now.

I left a place where I thought I should have some say. Say in the design and direction of the software. I didn’t want full control, but I deserved to be heard. I didn’t feel that was happening nearly to the degree it should have. And when it did, I felt it was too late. If someone heard me a year and a half ago, we would be a year and a half ahead. Too little, too late. I loved the environment, I loved the business domain, but I couldn’t stand the technology. I couldn’t stand that I wasn’t in any position to improve it. I can’t sit there and watch. I slugged through a few years, I felt like I paid my dues and I just couldn’t bare to see things repeat themselves. We should have known better. We should have done better. But we constantly chose not to. I had to leave. You can give me a fancy job title and throw more money at me, but I’m not buying it. If I can’t make things better, I will go crazy.

Now I’m in a place where I haven’t done anything. Where I was, I felt as if I contributed enough to say and to be heard. Here, I’ve done nothing. I feel like an observer. I haven’t written much code in the last year, that simply wasn’t my job. Now I’m trying to get back into things. It takes more time than one would have imagined. Sadly, I haven’t been doing much coding on my own time. I’m rusty. So I find it odd that in a place where I haven’t contributed anything, in a place where they haven’t experienced me first hand, they’re ready and willing to listen to what I have to say. Not only that, they’re modifying portions of the system based on my input. Simply because the ideas make sense. Where I was before I just thought I was crazy.

It feels odd, it shouldn’t be like this. People shouldn’t just listen (even if they argue back and I have to prove the point in detail and draw diagrams and what not), I’ve done all this before and been pretty much ignored. So it feels odd. I’m almost offended. Hah. But I haven’t done anything. I don’t understand why they’re so willing to listen. I’ll eventually get over it, eventually I’ll have contributed something and found my place. But right now, I’m not in my comfort zone, but then I realize that I may never have been, ever. I have to balance this, I’m in a moment without balance.

Excited, yes. That I got in. In all honesty, I wasn’t expecting to get in. Or I thought I’d have to jump a few hoops. It can’t be this simple, right? How can it be? My final year marks weren’t spectacular and my GMAT scores were mildly decent. So how do I just get in? Yes, excited.

But I have to make schedules work with school and work. I’ve done this before, and this is not easy, school and work at the same time aren’t easy. So I’m sitting in the office of the Director of my department, trying to be as excited as I could be, explaining to her that I got in and mostly the courses I will take will be in the evening, but some courses will be in the afternoon. She says that she fully understands and supports the initiative I’m taking. “I see you as a leader, someone who has and can provide vision. Right now though, I need you in the code, so that when you say something later, you can say it with authority”. I don’t get it. She barely knows me. How does she see me as anything? Don’t get me wrong, I praise the Lord for the situation I’m in. But it’s as if something is amiss. I can’t quite put my finger on it.

But there is wisdom in what she says. I respect that. Having someone to mentor you is invaluable in this industry. It’s invaluable in life. Go find a mentor in whatever you’re doing. I’m in purgatory. I’m not quite yet settled in. It has been weeks. So you’ll excuse my excitement.

Most people just don’t get it. Not this purgatory or unsettled thing. Most people in the software industry just don’t get it. They’re in it because it was all the buzz, and it was a guaranteed pay cheque. Which is fine I suppose, you have to eat and cloth yourself. I understand. But the problem is that if you work with me, I’ll have issues. I have issues. Most people in the industry just suck. I have massive issues with this. It’s difficult to find people that don’t suck. When I was in India, I sat in about 15 or so interviews in a month, and not a single time did I say “hire”. It’s not much different here. I was particularly upset with the hiring practices where I was before, and got myself into the interviewing process. It’s hard to find good people.

So why am I saying this? Meh, I’m in purgatory. Eventually I need not to be. I can’t work for someone else for the rest of my life. Unless they’re in the 10% of people that don’t suck. I have to be working on something that is beyond me. I have to be doing something that I love, and something that people will love.

So, yeah. I’m excited. Hear me roar.

you always go

All of a sudden I find myself making trips to hospitals. Visits, if you will.

I don’t like going to hospitals, I feel a certain uneasiness, discomfort of sorts. Insecure perhaps? I don’t know. It doesn’t matter, I just don’t like going. This state is compounded by having to go visit someone in a hospital setting. Maybe it brings the insecurities closer to home?

In some ways I feel I’m bothering the people I’m visiting. What could I possibly say or do that would help them? I’ll go and live a few awkward moments, having made no real difference. But then I realized that there’s a massive problem with this type of thinking, this logic is flawed somewhere. I don’t have proof, so you’ll have to chance upon it yourself.

I realized this and I said to myself, “You dumbass, someone is sick, someone is not feeling well and all you can think about it how uneasy it will make you feel? When did this become about you? asshole… get over yourself.”

When you have the opportunity to go visit, you always go. There are no ifs, ands or buts. You do what you have to, you do what it takes. You cross all the ts, you dot all the is, you cross all the seas and you travel as many miles. You do what it takes, you always go.

I really realized this last year, when my brother-in-law was hospitalized due to a procedure he had to go through. My mom said we should go visit, but I was reluctant. I figured that there are already plenty people there, we’ll just crowd things up further. They’re already worried, and now they’ll have to worry about us, about where we’ll stay, about the food, about transportation. We’re adding to their worry. This all makes logical sense from some angle, but again, the logic is flawed.

We ended up going, leaving home early in the morning, around 3AM. Driving across the border, boarding the Buffalo to New Jersey flight, I was in the flawed mindset. Wondering whether we should really be doing this. “What will I say? What will I do?”. On the way back, my mindset was different (we took taxis for transportation, ate at the hospital cafeteria and returned at the end of the day). It doesn’t matter what you say, it doesn’t matter what you do. Just be there. Talk about the weather, talk about sports, talk about the price of tomatoes, or just say nothing. Simply occupy space.

It’s not as if I no longer feel uneasy, I do. But I have to subdue that. We all do.

I keep reminding myself: you don’t have to do anything, just occupy space. But always, always, always go. You always go.