Tag: Philosophy

Kelly Johnsons 14 Rules of Management… for software!

Clarence Kelly Johnson is a famous aircraft designer who worked from the 30s to the 80s on high tech government projects. His management style has become famous because most of his projects ran extremely successful. In fact there are 14 rules of management attributed to him. Here, I attempt to convert them into rules of software management: 1.The software project manager must be delegated practically complete control of his program in all aspects. He should report to a division president or higher. 2.Strong but small project offices must be provided both by the customer and software development company. 3.The number of people having any connection with the project must be restricted in an almost vicious manner. Use a small number of good people (10% to 25% compared to the so-called normal systems). 4.A very simple coding and source control system with great flexibility for making changes must be provided. 5.There must be a minimum number of reports required, but important work must be recorded thoroughly. 6.There must be a monthly cost review covering not only what has been spent and committed but also projected costs to the conclusion of the program. Don't have the books ninety days late and don't surprise the customer with sudden overruns. (sic I would even go further and do this every second week). 7.The software development company/department/team must be delegated and must assume more than normal responsibility to get good vendor bids for subcontract on the project. 8.A good review system (as currently used by…

Read more

Open Plan Noise

I moved into a new open plan office this week, and its still being refurbished. At each entrance, there is a dispenser like this one: I assumed it was there because of the building work noise, but today I saw people wandering around with ear plugs in, even though no workmen were present. It became clear that these are not available due to the refurbishment work, rather due to the fact its an open plan office!  

Read more

7 Sheets of Requirements

Vision "Replace an enterprise information system that has been developed over the last ten years, to allow it to become stable on a modern architecture, to allow two new business units due to a split in the business to develop along their own paths, and to introduce new features that will take the business into the multinational domain." Inception The business wants to know how much such a system will cost. Although its vital for the entire business to be able to continue, it does make sense to get a grip on the costs of such a system, because with a vision like that, they are likely to explode. So the business has approached the IT department and asked for a conceptual phase to be carried out that includes analysis of requirements, conceptual analysis, migration plans and cost estimates. Great, three months ago we started on the technical side. No requirements at this stage, other than the vision. We managed to put together the architecture though, with big caveats with regards to realisation based on actual requirements. Hang on... shouldn't we have stopped before writing about the architecture and waited for requirements? Well the project manager insisted we keep to the deadlines, so perhaps we could "put something together"? His budget, he can spend it how he likes (I get paid by the hour). Two months ago, we completed the migration document. Again, because of a lack of requirements, it was largely conceptual, with lots of pretty flow charts to…

Read more

DT, EMV and NPR revisited

I'm working on a project to relpace the funtionality of an existing system that is shared by two business units, so that each unit can continue development in differing directions. The customer asked me about how to make the decision of whether to build a change or new feature into the existing system and then later into the new system, or to build it only in the new system and force the business to wait until the next release. It reminded me of the Decision Tree problem I faced before, so I set to work on answering the question. But I ran into a stumbling block. The two solutions are as follows: a) build now in existing system, and then again in the new system b) force the business to wait, and build it later in the new system While the former option might not cost double because of the learning curve of the first implementation, the latter option might take a very long time if the prerequisite features for the change have not already been implemented in the new system. So both options have their own complexities. But in theory we can put costs down, and calculate the answer to the question: a) = 50k + 52.5k = 102.5k (assuming 5% inflation over the year) b) = X + 52.5k = ? Hmmm... how do you put a price on the cost of forcing the business to wait? Well, I struggled with that, because its probably very specific to…

Read more

Imagine you’re spending your own money

As part of the Architecture definition for a project I'm working on, I have been preparing a cost estimate. The idea is that the client wants to know if they need to tender the project out to third parties, or whether it can be developed in house by the shared central IT department, used by several business units. In a meeting with the client today I presented my initial estimates. Me: "So as you can see, the upper cost will be 820 thousand CHF." Business Unit Project Manager: "Hold it there. You do realise there is a cost threshold at 600 thousand right?! Above that, we have to tender the project out, and that will add a delay of two months!" Me: "Sure. In the pre study, there is a project plan showing that an initial estimate places the work at around a million CHF. And in that study, it allows time for the tendering process. But good news, it shouldn't cost as much as a million..." Business Unit Project Manager: "Can't you somehow reduce the costs? You need to bring it down a little more...We are already running late." At this point, my unprofessional answer (which I managed to hold in) was along the lines of "OK. Instead of me wasting my time doing a real estimate, just tell me how much you want it to cost, or rather how much less you want it to cost than your boss already thinks it will, based on the pre study.…

Read more

Gathering Evidence

While working on a previous project, before I had a blog, I remember an incident with a particular boss at a company which thrived on a blame culture. No one cared if software was late or crap. All they cared about was whether another department was to blame. So once we screwed up on a project and his response was "Can't you find an email showing its the customers fault?". In this case, the answer was "No, it was our fault. I screwed up and misread the requirements." Being a good boss, he didn't want to shit on me. "OK, but surely you can find an email that shows its the customers fault? Thats all I need to copy to his boss." He didn't care about the impact on the business. Didn't want me working over time to fix the problem. Didn't want me to accept responsibility for the problem. He just wanted to blame some other department for the problem. And this was the way he worked project after project. Find evidence. Copy the head of the other department. Threaten to escalate... He wasn't alone either. Every department worked in the same way. No one had accountability. It lead to people being scared to make mistakes. Perhaps that was why the company was a market leader? But it wasn't a very nice place to work.

Read more

JMS API

Been applying for contracts and got a phone call from an agent asking about my skills. "You have JMS skills I can see from your CV, but we are looking for 'JMS API'" she said. I went on to explain that API stood for Application Programming Interface, and that I had those skills. In fact, to have JMS skills as a developer, it means you have the API skills. They go hand in hand. "I see. OK, I will check with my colleague and we will be in touch". Why do recruitment agents screw around with us? They haven't been back in touch, and from her tone I could tell she wasn't interested, even though all my other skills matched quite well. It's like a salesman selling cars, but not knowing that PAS stands for Power Assisted Steering, or not knowing that it means that its related to the steering wheel. Come on, how do these guys get jobs!?  

Read more

Ant Farm

At the weekend, I was in the park playing with my son and he was intrigued by the beetles and ants. So we popped home, picked up some tupperware and a spoon and went back to get some ants to have our very own ant farm! They are in a tupperware container within a bath, so that if they do climb over the edge they won't be able to escape and scare my wife out of the house. See below for what it looks like. Anyway, its a bit like a fish tank in that its very relaxing to watch them building and feeding, etc. As I was watching them pulling a pupa from where I had tossed it out of the original tupperware container into their new home, it got me thinking. They can't see the bigger picture, yet they make a good job in getting there in the end... For example, they were pulling at this poor thing to try and get it over a blade of grass, but couldn't. So they went left, the long way round. They should have gone right! But there was no one there to guide them along the way. In the end however, they got to where they were going. Now, having turned left, I can't say that they didn't change their plans and continue going that way, because at this stage, there was no established ant hill, so they were just looking to see where everyone else was going I guess.…

Read more

Cartoon

This is one of my favourite software related cartoons. Unfortunately I don't know where it came from, so I cannot give credit to the originator. Sorry! (scroll right down to the bottom of the page, since the blog software is trying to be clever...)

Read more

Cannibals

Apparently a big off shore IT firm is desperately hiring anyone it can, to fulfil its contractual obligations and as a last resort to find resources considers hiring some cannibals. "Look, we will hire you, but we will NOT tolerate you eating any other staff members. Is that understood?" asked the HR manager to the cannibal leader. He agreed and shortly afterwards, him and his tribe get to work. Six weeks later the HR manager learns that a techie has gone missing and runs to the cannibal chief. "What have you done?! I explicitly told you, no eating the staff! You are ALL fired!"  The chief turns to his tribe and asks "Who the hell ate the programmer? We agreed to only eat the managers. We've been doing that for 6 weeks and no one noticed..."

Read more