- Great Teams can do amazing things. I've been fortunate to be a part of many great and talented teams at Sun. Some of the most successful efforts that I've experienced were with a small but exceptional teams. You can do all the right process steps and follow the guidelines for successful projects, but at the end of the day there's nothing like working with great, talented people.
- Walk a mile in another's shoes. Requirements are more than what's in writing. It's great to have written and signed-off requirements. While it helps the odds, it certainl doesn't guarantee that you meet the business needs. We once delivered a project that met the letter of the requirements, but it didn't meet what people actually did. We went out into the field and did their job for a day, and then took those learnings back into the system. Then it worked.
- Office Space. In this case, I mean literally. There was once a move freeze, and my colleague and I, both new managers, were waiting for the next available office (holding 1-1s in open cubes is not cool). Somehow, one of the open offices were eying was suddenly filled, and with an individual contributor no less. The explanation was that it was "a carefully orchestrated sequence of events" that was in motion before the freeze. A small thing in the grand scheme of things, but it was one of my earlier Dilbertesque experiences. A corollary to this is that it's good to be friends with the office space planner! Now where's my stapler...?
- You manage what you measure. One of Bill Vass' Top 10 Rules of IT, I have seen this ring true year in and year out. The best example for me is when our customers complained of intermittant poor performance on one of our websites. We implemented some process and transaction monitoring tools. That pointed out deficiencies in our architecture. When we deployed using an improved architecture, we improved performance by over 33% (and availability went up as well).
- T-shirts R Us. Sun was famous (or infamous) for having a t-shirt for every occasion. The vendorware trend is down in general, but I think I have a whole drawer (and 1/2 a clothes line) of t-shirts and polo shirts. Though I don't think I have all the stats to back it up, I'll go out on a limb and say that the quality of the shirt was inversely proportional to the success of the project. My nicest shirt is for a project that never saw the light of day!
- The court of infinite appeals. One of the more frustrating things that I've experienced is when somebody comes in at the last second and puts up a roadblock. This is fine when it's your manager or direct chain of command, but the situations I'm talking about are with peers and colleagues and other folks who feel that they have a say. Having a release canceled on a Friday night literally an hour before it was to begin is not fun, given all the preparation that went into it. Every now and then a little dictatorship on projects is a good thing.
- Change is bad. People
will think that the system that they're using is the worst ever, until
you try to take it away. At that point, it becomes revered. Obviously
there are change acceptance practices that help with this, some of
which involving cheese.
But along the lines of walking in someone else's shoes, the more folks
can really have input into the change, and see that input be reflected
in the product, the better off things are.
- Mission Critical global deployments. People always want things to work perfectly, but let's face it, people are used to flaws in client software. There is however a different standard when it comes to backends and middleware. That stuff just has to always be running, especially for a 24x7 system. It takes a different mindset when writing the code too, as you have to be as resilient and fault tolerant as possible. Oh, and nothing helps in system stability like having developers on an on-call rotation!
- KISS. No, not Gene, Paul, Ace and Peter, but
rather the adage obout keeping things simple. Fewer components mean
fewer failure points (and see the above about needing to be rock
solid). Elegant architectures don't always translate into performing
highly available systems. It's good to dumb things down every now and
then, because simple works, not to mention that it's easier to
troubleshoot (remember that point about being on call?).
- Spin City. There's the
realistic part, which is that unlike wine, bad news doesn't get better
with age. Learning how to distill potentially complex information into
concise statements that help your audience understand both what's going
on and what's needed is a skill. Practice it. At the same time, beware
the "inversion layer" that sometimes exists, meaning there's one
version of the story on the ground, and another version floating around
at different management layers, usually due to somebody crafting a
version of the truth for their purposes. Hopefully you'll recognize
when that's happening.
- What happens on the road...
Can be really fun! I've traveled to about 7 countries and several US
destinations for Sun. I felt welcomed everywhere I went, even if the
meetings didn't always go well (but they usually did). I learned so
much from so many different people, and expanded my culinary tolernance
quite a bit. I was also lucky to travel with colleagues who were also
great friends, which made the trips even more special. We got done what
we came to do, but we were also able to soak in a little culture and
perspective, and that made all the difference.
- Relationships matter.
This is obvious, but it seems like a nice way to end, coming full
circle from the first point. Sun is more of a relationship-based
company than most, but I think it still translates. I'm fortunate to
have worked with a lot of great people and have built a lot of good
relationships. Some of them were forged by fire, others by
happenstance. No matter, they've been indispensible in enriching
my work and personal experiences, and it's one thing you can take with
you.