Dec 01
I bumped into an old friend in the pub the other day. We started talking and she told me about a retrospective she’d recently been involved in after the project she was working on had been suspended due to yet another management restructure (there have been several in the last twelve months). A large number of people from the business and the development group were in attendance. Her team of four developers was there along with the architect who had created the solution architecture and the non-functional requirements and the project manager. There where one or two people in the room she didn’t recognize and she assumed they were from the business side.
Introductions were made and she was surprised to find that “John†had worked on the project reviewing the architecture. She had never encountered him and had worked closely with the solution architect, who’s eyes seemed to roll when John introduced himself. Still, she knew that the architecture had been through a number of reviews. She’d bounced a couple of architectural decisions that had sprung from these as non-functional requirements for business approval as they had had the potential to significantly increase the amount of effort required to produce the system without adding any direct business benefit.
As in most retrospectives the meeting was an attempt to extract lessons learned while delivering the project in order to improve the process in the future. The meeting was going well. Many of the positive items where directed directly at her team and she was proud of the work they had done. She was surprised when one of the people she didn’t recognize began to raise issues around the clarity of the projects purpose. She’d been working with the business on a daily basis and, although the requirements had been subject to some change and clarification, she had never felt that the projects final goals were unclear. “How can you even begin to develop a piece of software without a vision statement?†True she’d never seen one, but the project wasn’t really rocket science and she thought the objectives of the project were clear.
True, they were running behind scedule. This was due, in the majority, to the restructure and a freeze on resources. She had a project team half the size she’d been promised with a higher proportion of junior developers than had been agreed. Another contributing factor had been the toolset mandated by the architecture team. When early on in the project she’d queried the reasons that they needed to use a particularly painful tool. She was told that it was vendor “Aâ€s product in the space and we only use vendor “Aâ€s products.
John continued to insist that the project didn’t have enough governance. He insisted that the project needed more rigid processes. He failed to understand that the project delivery team hadn’t failed and my friend took offense at the assertion they had because there wasn’t a huge paper trail of ill-informed sign offs.
The business side of the project had been very happy with aspects of the system they had been able to preview. That the project had been put on hold due to a restructure was not in any way a failing of the delivery team, but John continued to prattle on about roles, responsibilities, more detailed task reporting on time-sheets and an interesting observation that if you have half the number of development resources the spend rate would be 50%. “We’re not even CMU level 0†he exclaimed, confusing everyone until the project manager corrected the term.
We had a couple of drinks and laughed and wondered how far they would progress down the CMM track before they realized that people interacting was more important than process they employ. “No matter how rigid a process you have, a monkey will still play with its shit.â€
Nov 30
Earlier this week I managed to misplace my wallet. After a search around my desk and through my various bags and draws I concluded that I must have either left it at the store I’d purchased lunch from or dropped it sometime after. I headed home knowing I would have the great pleasure of getting all of my credit cards and identification reissued. A couple of minutes after walking in the door I received a call from a sergeant at Richmond police station. It turns out that I had in-fact dropped it in Lonsdale street on my way back from lunch. An anonymous individual found it and handed it in at Richmond police station, cash and cards intact. Thank-you doesn’t adequately express my gratitude for your simple act of honesty.
Mar 02
I live in the Dandenong Ranges, a beautiful part of Victoria with an abundance of nice twisty roads for a motorbike rider. Most days I commute to work on the bike. It cuts my travel time in half and there’s that undeniable aspect of fun. It was a late(ish) Thursday night, around 10:40 in the evening. I was riding back from dinner with a friend and closing in on home.
Living in the hills means there is always some wildlife around. I often see (and avoid) wallabies who like to bounce across the road at unpredictable moments. At the edge of my headlight beam possums and rabbits scurry for cover as my nice new Suzuki SV650s trundles down the road. As I rounded a corner I noticed a small wombat at the side of the road. Now let me tell you something about wombats, they look fat and slow, but they aren’t. Plus they’re as solid as a small bolder. As I approached he scampered out in front of me and into the path of my front wheel, flipping the bike and catapulting me over the handlebars. After a breif moment of fight I came to the ground landing hard on my shoulder.
I stood up and took stock of the damage to my bike and myself. My left shoulder was sore, figured it might be dislocated, but not badly. On initial inspection the bike looked reasonably unscathed. So I picked it up. Yup, I was pretty sure now that I’d dislocated my shoulder. The bike started straight up. Did some quick checks, bouncing the forces, making sure all the leavers still worked, and road the rest of the way home. A little grumpy at the fall, but feeling pretty lucky.
I parked the bike in the garage and took another look. The gear leaver was damaged and there were a few scrapes on the fairings. Nothing major and all relatively easy to fix up. I’d take a closer look in the morning.
I got inside and went to take my helmet off. My left arm really didn’t want to cooperate. My brother came up from the lounge and gave me a hand undoing the helmet straps and getting it off. I thought I’d better take a look at the shoulder. I tried to take my jacket off. A rush of pain. The world began to swim and I hit the deck. “Right, that’s it, I’m taking you to the hospital.” “She’ll be right. I think it’s just dislocated. I’ll go down and see the doctor in the morning. Let me take a look in the mirror.”
I pulled my shirt up to get a look at the shoulder, it looked ok. My collarbone on the other hand didn’t look so good. “Ok mate, you’re right, we better go down to the hospital.”
What happened to the wombat you ask? He ran away, seemingly unhurt.
Feb 16
Sensis holds a virtual monopoly (due to historical positioning) over the production of telephone directories in Australia. In “They’ve lost their Sensis” the Edward Mandla points out that the company has completely failed to innovate and build upon what has to be one of Australia’s most valuable data assets.
I wanted to ask the NSW Liberal Party a question and needed its phone number. I entered “NSW Liberal Party” into Sensis and was given a whole lot of links to articles that were not relevant. I entered the same information into Google and the first link was the NSW Liberal Party website.
Pay for position listings make the Australian Yellow Pages site almost unusable. Search for a G.P. in your area and you’ll be bombarded with breast implants in Sydney. Now that might be fine in some circumstances but I like my breasts the way they are and really I’m looking for someone to give me a flu shot.
Maybe the Australian government should look at splitting the company up. Allow multiple sales organisations to sell ads into a government operated book printing business. In the same way as any telco can provide my phone service, my long distance service, etc. Government should own the infrastructure, private business should be allowed to retail on top of it (don’t get me started on Telstra’s position by inheritance, or selling off power lines). Handing monopolistic government infrastructure over to private business isn’t good for consumers or competing businesses.
Oct 10
My son is almost 16 and nearing the end of his last “mandatory” year of school. He doesn’t want to go back next year. He can’t see the point of school. It’s a difficult thing to deal with. I’m passionate about him continuing on though the rest of high school and into university. I was talking with him last night and I explained it this way.
When you were five, if I’d just let you eat what you wanted then you would have lived on lollies and ice cream. Now you’re a little older you understand that you can’t live on lollies and ice cream. You know that although they taste good, you just need to have other things in your diet (like coke and meat pies ;)).
We went on to talk about things he might want to do. He doesn’t want a desk job, fair enough, but he has it in his mind that all jobs out of university are boring desk jobs. “I don’t want to sit in front of a computer all day.” He a gregarious kid, outgoing, happy and a bit of a charmer. I’m trying to show him that there are careers that will allow him to be involved with people, get outside, that going to university doesn’t mean doing a desk job.
It’s an ongoing process.
Oct 02
The project I’ve put my heart and soul into for the last two years has been cancelled.
I’d pretty much had enough of the project a few months back (see Time to move on?) but my manager, someone I respect, convinced me that things would change, well they did. The business is a fit of senseless stupidity and corporate political maneuvering killed the project. Not officially of course, that wont happen until July (next financial year)
. The official line is that it’s being “re-scoped”. All the contractors and many of the senior staff (one person in the entire team is remaining with the company) are being released to pursue other opportunities. I left on Friday.
The hardest thing about leaving the project is leaving the team. If you work in a corporate environment you often end up working with a large number of “also rans”. Our team wasn’t like that. It was filled with smart, energetic, committed people. We took everything that was thrown at us and turned it into a success (at least from a technical perspective). When problems arose we worked through to find the correct rather than the easiest solution. It paid off countless times and although discussions were at times heated everyone respected everyone else.
The final debriefs were hard. I sat in one meeting that involved the development manager from a downstream system. I have little time for fools and this team (with one or two exceptions) is full of them and the development manager is one of the nastiest pieces of work I’ve ever had the misfortune to work with, she a true obstructionist. Unfortunately she leads development for the public facing on-line sites so is able to use fear as a lever on the business. Anyway at one point our project manager was talking about the re-use of some of our work, and praised the development team for the quality of our output. She smirked, humphed and asked if there was any hardware she could steal from the project. When she was told no, she got up and left. I nearly lost it.
I’m proud of the work the team did, it’s a shame the system never made it to production.
- We built content storage system that was tested with 24.5 million pieces of content ranging from single lines of text to multi-megabyte image files
- We developed a method for streaming content to and from the repository that provided a predictable level of performance and memory usage
- We provided a sophisticated validation system that supported complex business rules with real-time (in editor) performance
- We created a event driven content distribution system
- We provided notification hooks for work-flow and other systems interested in repository changes and events
I’m now looking for my next challenge. I’ve spoken with old colleagues who have exciting things on the boil. The future is bright.
As a final ironic twist one of the external vendors (who was effectively part of the political power play that bought us down) has spoken to one or two people from the project about integrating our ideas into their product.
Jun 17
In a recent interview the principal architect of SWT, Steve Northover, had the following to say
As a developer who has worked on both closed and open source projects all I can tell you is that open source is way more fun. For example, when you fix a bug, you really make someone happy. The feedback is instantaneous. There’s also a great feeling about working in the open. However, these are just my opinions. Personally, I like open source but I don’t presume to tell other people what to do or speculate on corporate strategy.
I couldn’t agree more.
Jun 11
Like most opensource developers I work on my projects because I have an itch to scratch. Apart from the time I put in the only cost to me is the cost of running my website and beers while I type
Recently there has been a lot noise around Googles Summer of code. Basically Google will provide a $4500 award to each student who successfully completes a project by the end of the northern hemosphere summer. It’s a great idea. It introduces younger developers to the opensource movement and provides a new developer, witch specific goals, to the project team.
Summer of code doesn’t help me directly though. My projects are not up there with those from organisations such as Apache or CodeHaus. On the other hand Google constantly contributes financially to mine and many other projects. The key is adsense
The only real out of pocket expense I have running my projects is hosting. “Hang on” you say. “Can’t you just host your projects at sourceforge or some other community site?” Well yes I could, but I don’t want to. Sourceforge provides a fantastic service and the opensource world has a lot to thank them for but for me they don’t provide the solution I want. For example if I want to be able to run servlets or a subversion server the options just aren’t there for me. So I host on a standard provider (prokmu in my case) and configure things in the way I want them. It’s all about choice
Of course I have to pay for it and that’s where adsense comes in. I (and I’m sure many opensource developers) run adsense ads on my blog and project sites as a means of generating enough revenue to cover my hosting costs. The few clicks I get a day cover my basic hosting which is a nice, all be it indirect, contribution from the good people at Google. So next time your working your way around some developers site or blog and you notice something interesting in an ad, give it a click. You might find something you want and the developer will thank you for the reduced effective hosting costs.
Jun 09
I’ve been on my current contract for around 18 months and there is probably 18 more months work ahead but, for me, I think it’s time to move on. It’s been a learning experience. It’s the first time I’ve had to work in Australian “big corporate” culture. For the most part it’s felt like wading though mud. The faster you try and move, the more you sink. There’s always the pressure to release on an immovable deadline with an immutable feature set. So you give up your weekends, put your head down and try while those that decided on the arbitrary deadlines go home at five. Of course the deadline constantly changes as does the feature set but the culture of “a week to go” prevails and if your not careful (as the former team leader of the area I now look after wasn’t) you end up with is a system built up from hack upon hack (I spoke of this a little in a previous post).
I struggle with the limitations of “big corporate” culture. It’s lack of agility. It’s lack of honesty. There are far too many chefs and too few cooks. Decisions on technology, techniques and tools are made by people who will never use them. So you end up fighting with a substandard application server because the vendor has a box at the footy and a very impressive sales kit. You’d think that working for a very rich company would mean good developer gear. Wrong there too. 1024 x 768 LCD screens, 512MBs of RAM, Sun Java Studio Enterprise. Domain policies that prevent you installing an updated JVM (though all of the guys in my former team installed linux over the corporate XP configuration and I got lucky with a Mac).
I just don’t quiet fit. I want to get it done. I don’t want to spend half of my day sending “cover my ass” emails. I don’t want to be able to point the finger when something goes wrong (I just want to fix it). Most of all I’m not enjoying my day. I love software engineering. I love to nut through a problem and let my fingers fly on a solution; get it wrong, think again, refine, think, type, test, refine, test. Finally produce something that I’m proud of, that represents my talent, my passion. There are too few opportunities for it here in corporation x.
So with my contract running out in a few weeks I think it might be about time to mosey on down the road. Find a position where I can do some interesting work. Somewhere that makes me want to get up in the morning and travel for an hour.
Recent Comments