Friday, December 28, 2007

Picked up ‘Refactoring Databases: Evolutionary Database Design’ by Scott W. Ambler & Pramod J. Sadalage at the start of the month.

Ask one of the DBAs at work if he had read any book or articles by Scott Amber. His awnser was ‘Who’s that?’. Not an inspiring reply.

Think ‘Refactoring Databases’ is worth the effort. Looking forward to using some of the ideas when I start using Merb, next week.

Think I’ll get ‘Refactoring to Patterns’ or one or the enterprise pattern books in January.

In January, I think I’ll also try to start pulling a Canberra Ruby group together. Will start with a Coffee get together with the 2 other Canberra guys I meet at the RailsCamp2 at Bacchus March and go from there.


Gnoll110

Friday, November 30, 2007

RailsCamp2 and Merb

RailsCamp 2 was last weekend at Bacchus Marsh, just west of Melbourne.

Was a great weekend. About 40 camper attended.

Learn some new things, including some of the new stuff in the Rails release, due real soon.

Other package I was introduced to include Merb, another framework, that includes a more flexible and extensible structure. Going to look at that this weekend.

There is Flog too. It's a complexity metrics tool.

Lots to play with.


Gnoll110

Friday, October 26, 2007

Agile: new podcast from Agile 2007

Been a busy month.

I note there is a new podcast on Rob Payne’s Agile Toolkit Podcast site.


Rob talks to Johanna Rothman, an author, consultant and agilist at the Agile 2007 conference.

There is no abstract, so it will be a lucky dip. ;) Rob a great interviewer and pick interesting victims, so it's bound to be informative.


Gnoll110

Technorati tags:

Sunday, September 30, 2007

Ruby: First hack

Thursday night, last week, I released some static web pages. That’s nothing special, but the code that built them is, for me.

It’s me first ruby hack. It’s a flikr like doodad.

What it do?

It takes a cd of images (mainly bodybuilding), straight from the developers (I still use an analogue camera, just, but that’s another story). It crops, brands them and then builds a cluster of static web pages around them.

Using Image Magick, via rmagick, I manipulate the images. The images get rotate (if needed), cropped and branded. The data to do this is stored in a mysql data base. Each derived image is also tagged with data, so they can be captioned and grouped later. It is stored in three tables.

Next there is web page formatting. I used staticmatic for this. It based on HAML and SASS.

The formatting data is laid out as a node/leaf arrangement, also in the mysql database. Currently there is only one type of node. That is the root node type of page. All the leaf nodes types currently sit directly connected to the page node. The valid leaf types are navigation, photo grid and album. Currently there is no recursion up a node structure. That’s a future possibility.

That’s two tables, one for node and its one type, page. Not YAGNI (Your Aren’t Going to Need It), but then there is Agile Modelling. There are for leaf tables, Leaf and its three types. Six tables all up.

I’m sure you can guess what navigation and photo grid do.

Album is the complex stuff and the reason I wasted an automated process.

The album is a page cluster. On the page that has the album leaf, you get the results of the specific sports event. The event has divisions. Divisions have competitors, who appear in placing order. If a division or competitor has any photos with their tag, then it becomes a link to a generated page that contains a photo grid with all their tagged photos. The four tables that contain this data are event, division, competitor and place.

Now there is currently only one type of album. If I want an additional album structure for a different event thingy, I’ll refactor. The cluster generating methods would be moved into a command pattern that could be changed by Dependence Injection (DI). But YAGNI says that’s in some tomorrow.

What would I do differently, use rspec from the start.

Well that my first use of ruby in anger.


Gnoll110

Technorati tags:

Thursday, September 06, 2007

Projects gone bad: guesses dressed as science

Been reading the current edition of E. F. Schumacher’s 1973 classic “Small Is Beautiful”.

In chapter 3, “Resources for Industry”, I’ve just found the provoking paragraph.
It is fashionable today to assume that any figures about the future are better than none. To produce figures about the unknown, the current method is to make a guess about something or other – called an “assumption” – and to derive an estimate from it by subtle calculation. The estimate is the presented as the result of scientific reasoning, something far superior to mere guesswork. This is a pernicious practice which can only lead to the most colossal planning errors, because it offers a bogus answer where, in fact, an entrepreneurial judgment is required.

This paragraph really hits the nail of the head, with regard to one reason why big IT projects fail. So much is unknown, then inferred and finally dressed up as the plan that can be done for a tight budget and time frame.

No one says the Emperor has no cloth. The plan says he is fully dressed.

This is an environmental book. A good book for a generalist read.

Well worth the read.


Gnoll110

Technorati tags:

Sunday, September 02, 2007

Agile Toolkit: Joshua Kerievsky Agile 2007 podcast

Bob Panye has posted the first of his Agile 2007 podcasts.

It's downloading as I type. Thanks for the effort, Bob.

Agile07 - Josh Kerievsky - Scaling training, e-Learning and certification

Josh presented a session, Introduction to Refactoring & Evolutionary Design. No note or overhead so far.


Gnoll110

Technorati tags:

Sunday, August 26, 2007

Life in a 24x7 world: Seesaw

Need to be able to roll your servers processes without bringing a site down. Seewas enables you to increment the version of components in your application, without an outage.

Max Muermann and Matt Allen have written the Seesaw rudy package that lets you roll Mongrel processes.

Matt & Max were working on it at the Hax day, in Sydney, last weekend.

Has a chat to them about the next stage. The hard stage, rolling the database structure forward without downtime. I think it is possible, but the features needed to make it possible need to be part of the bone and muscle of the database management system (DBMS). I'm going to write a post able how I think it could be done and its limits.


Gnoll110

Technorati tags:

Thursday, August 23, 2007

To watch: Agile Toolkit Postcast

Agile 2007 was on last week, 13 to 17 August. Have a look at the site, some of the overheads and handouts can be downloaded.

With Agile 2007 being in Bob Payne’s home town. I’m sure he will have lots of great new podcasts for his Agile Toolkit podcast site soon.

Can’t wait!

I so hope Bob got to talk with Mary Poppendieck and/or Kenji Hiranabe about their Kaizen from Toyota [with MindMaps] session!

Refactoring Databases : Evolutionary Database Design by Scott Ambler & Pramod Sadalage looked interesting.

Lots of other cool sessions too


Gnoll110

Technorati tags:

Monday, August 20, 2007

Ruby: Hax Day

Ruby on Rails Oceania held a Hax Day at lachie’s place last Saturday. All good value. Like to thank Lachie and his sweet darling wife for looking after us. Wireless, food and drink; what else could you ask for?

This ruby newbie learnt a few things and picked up some new gems (HAML, SASS & Staticmatic).

Gnoll110

Technorati tags:

Sunday, August 12, 2007

Ruby: Could not find gem in any repository

Been playing with webgen for static site generation.

Loaded it on 2 machines (one of the demos uses imagemagick), so needed to put it on the second machine. Got the follow error on the second box.

$gem install webgen
Bulk updating Gem source index for: http://gems.rubyforge.org
Install required dependency cmdparse? [Yn] Y
ERROR: While executing gem ... (Gem::GemNotFoundException)
Could not find cmdparse (~> 2.0.0) in any repository


Turns out to be a cache problem.

After a little googling I found a solution on Derek Anderson's army of evil robots blog.

Thanks to Derek.

Monday, July 30, 2007

Ruby: One Day on Rails

Better late that never.

Last weekend, 21 & 22, I went down to Melbourne to attend Cogent Consulting’s Ruby on Rails EAT workshop. Steve Hayes lead the workshop. The workshop was on the Saturday and was titled ‘One Day on Rails’.

It was a good intro to Ruby, Rails and Cogent’s tools & practices. It was divided about a third each way.

The InstantRails tool was used to ensure everyone started with the same configuration. I had some problems with mysql, it all came down to the fact that Zip didn’t work the first time. After the second upzip, everything worked great.

I’ve been using InstantRails over the last week, as I continue to work through the Agile Web Development with Rails book.


Gnoll110

Saturday, July 07, 2007

Good management, Bad management.

What to do.


The current situation.
This application software redevelopment area is divided into two halves. An accounting system and a 'document' processing system that handles incoming (claims etc) and outgoing (payment, notices etc) messages. Each of these is then divided into two halves. One group of teams converting 'service designs' (from a business area) into 'technical designs' of pseudo code. The second group of teams 'builds' the 'technical design' into modifications to a Commercial of the Shelf (COTS) product. The code is passed on to be compiled and tested.

The division between the analyst and programmer is said to be 'Chinese wall' that ensures quality.

In my book both are part of the software design process. Testing of function is the true validation of the design decisions (that both the analysts and programmers make).

The analysts browse the code base and database/massage/file schemas (no access to any usable dev or testing data) and are expected for get the 'technical designs' right first time. The programmers then code and unit test using some unit tests drawn up be the analyst.

This is madness, it breaks the short term (sub daily) feedback loop of an analyst/programmer doing coding and unit tests, and then feeding unexpected corner cases back into the code/unit test rig. It creates a paper/email feed back loop of days. Often the analyst is requested to modify a 'technical design' that he/she have not worked on for days or weeks.

I know one of the analysts. He told a few people there, that he thinks that the analyst and programmer roles should be merged. That the time resources freed up by the improved/shorter communications should be devoted to testing, particularly automated testing.

Now


Well where has been some movement. They are going to pilot a new team structure. The four person team, 2 analysts and 2 programmers, co-located even! One of the analysts will be the team leader too. Good management!

My friend is the second analyst. The team was setup on a Monday. The second analyst and two programmers found out about the new pilot team and their pending move to it, at about 11 am on the previous Friday. They were CCed in on the 'make it so' email.

My friend thinks it's a good idea, that it’s movement in the right direction at least. But he is mifted that he found out about it as a fata compli. Bad management!

Future


My friend thinks that they may want to keep the 'Chinese walls' in place. He wants to grow some 'grape vines' over it. He wants to learn the programmers tool set. He wants to get the programmers updating the 'technical designs' for more than just spelling mistakes.

Any extra ideas on how to improve this pilot team would be welcomed.


Gnoll110

Technorati tags:

Monday, July 02, 2007

Ruby: unable to extend cache

Over the weekend I used Ruby in anger for the first time.

The project was to extract JPEG images from a CD of photos I just got back from the lab. The CD has 4 rolls of 36 exposures & 2 rolls of 24 exposures on it.

I used ImageMagick’s Ruby library rmagick. Each photo was rotated (if needed), cropped, resized (for a thumbnail) and branded. So that is a couple of transitory images and two images saved back to disc.

The error text produced was ‘unable to extend cache’. I googled this and came up with four items. None of them these had a solution.

Based on the text, it was either a memory or disc space issue. So I kicked off saidar and ran the ruby code. Sure enough I watch the /tmp partition (2 GB) be steadily consumed and the run then fall over.

After digging around for anything on Ruby destructors & garbage collection, I got a break. My first lead came from a Space Babies blog post and its comments. In the comment, one of rmagick’s developers Tim Hunter refers to a 2004 Hints & Tips post titled Help! My script runs out of memory!.

After adding ‘CG.start’ into the main loop, the run didn’t go over 0.5% of the /tmp partition.

Gnoll110

Technorati tags:

Friday, June 22, 2007

Broadband: 98 or 99

With an election due before the end of the year.

The government & opposition have unveiled their positions on broadband roll out.

The opposition wants to roll fibre to the node (phone exchanges) generally and to use public monies to do to. This would give high speed broadband to 98% of the population, they say.

The government policy is to roll fibre to the node in the five biggest state capitals (Adelaide, Brisbane, Melbourne, Perth and Sydney). It would mix systems & technologies* to roll out some kind of higher speed broadband to rural areas. The total coverage would be 99% of the population. This would be funded by a mix of public & private monies. The government says it would be cheap for the public purse and be delivered earlier.

The opposition says the government’s proposal would introduce two tied broadband. One speed for the biggest cities, another speed for the rest.

How do I see this? Well let me explain my outlook. I’m in Canberra (the national capital), a city of about 300,000. A major city, but not one of the big five. My parents & brother farm, so definitely are rural. Australia's mobile coverage is 97% of the population. This is a mix of GSM and (soon to be replaced) CDMA technologies. At 97%, they don’t have mobile coverage.

So are they in the 98th percentile and get coverage either way? Are they in the 99th percentile and get coverage only in the government plan? Or maybe the 100% percentile and won’t get coverage either way?

I think we need to mandate a minimum service level for 100% coverage.

Ultimately, we need to ensure that that last percentile can get some kind of useable service.

After all, haven’t people been saying we, as a nation, should be trying to encourage people out of the state capitals and north to where the water is. It should also be noted that one of Australia’s most disadvantage groups, its indigenous people would be over represented this last percentile.

The government option looks better to me. Its got greater coverage, sooner and you can always roll fibre out to more nodes later.


Gnoll110

* I assume non satellite ones.

Technorati tags:

Saturday, June 09, 2007

Broadband: Advance Australia where?

Over on Doc Searls Weblog, there is a post about the current level of Broadband penetration in the US. The original reporting is from DSLreport.com, under the title U.S. Drops Further In Global Broadband Rankings. Currently the US is 15 of the 30 OECD countries. Both Doc Searls and the Kevin Barron say 15th is a sad state of affairs.

So where does Australia sit on the rankings? After a little digging at the OECD site, I found this December 2006 reporting. Australia sits at 16th, just behind the US.

So, what are John Howard and Kevin Rudd doing about it.

Kevin Rudd wants the rob some money from the future retirement funds of some Australians. Is Kevin going to make the commitment to keep the money rolling for ongoing improvement of this broadband infrastructure?

John Howard wants private money to do the Broadband job. The problem with publicly listed private money is that it's looking to short term returns, and won't do the whole job. It will cherry pick the metro areas and bugger the rest. John needs to set (and enforce) a high broadband bar for both Telstra and G9.


Gnoll110

technorati:

Tuesday, May 22, 2007

Project Management as servant, not Master

Jason Yip posted this agility is not the point post to his blog.
  • Deliver the highest possible quality and service to the customer
  • Develop employee potential based upon mutual respect and cooperation
  • Reduce cost through the elimination of waste in any given process
  • Build a flexible production site that can respond to changes in the market

I've started to work through Agile Web Development with Rails. In Chapter One, there is this section titled Rails Is Agile (1.1).
Let’s look at the values expressed in the Agile Manifesto as a set of four preferences. Agile development favours the following.
  • Individual and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Last week we had a talk at work about Project Management (PM), went for about an hour.

At the end I expressed my opinion that Project Management trended to make an organization too lean. Lean in another sense of the work, as in over worked!.

This weakens the organization in three ways.
  • Insufficient resources to respond to the unexpected, particularly human resources.
  • Lack of maintenance of corporate assets, like the code base.
  • Lack of deep infrastructure planning. When I say deep, I mean the shared resources used by most operational activities, including human resources.

Noone actively disagreed with me, including the three Project Managers present.

Been thinking about it more. Thinking triggered by this Seth Godin post & Jason’s post above.

The trouble with PM is when the organization develops a minimum cost/big bang approach to doing things. Be as low cost as possible, gets bodies in to do a job, gets rid of bodies at the end. The public sector is really prown to this!

One issue is that the milestone become the end all. How do you avoid this, it’s natural, the money has got to be tied to something.

PM ends up big on following Process, big on Doco, big on the Plan and big on Contract Negotiation (due to scope creep), putting it at odds with the agile preferences! These are all forms of waste in Lean terms!

Now I’m all in favour of project management (all lower case).

To steal Rowan Bunning’s tag line
"In preparing for battle I have always found that plans are useless,
but planning is indispensable." - Dwight D. Eisenhower

pm makes you think, it’s acting on the useless plans that is a waste.

Where to now?

Well the opposite of minimum cost/big bang management would be maximum effectiveness/steady state management.

What would that look like?

Maximum effectiveness means you’re not measuring costs. You are measuring outcome to expenditure ratios. Further more time and none monetary factors don’t go straight out the front door, as they do when what is being measured, is measured in dollars

Steady state implies that you keep a large core of personnel who maintain existing activities, do projects as needed and are there for the unexpected. You supplement them with specialists and contractor as they’re needed.

Another way of looking at this, is to treat employee as profit centres. That mean the organization tries to develop its employee full potential.


Gnoll110

Technorati tags:

Sunday, May 13, 2007

When to kill a product

After ordering ‘Agile Web Development with Rails’ by Dave Thomas et al, 6 week ago (expect delivery 4 weeks). I final picked it up on Friday. Started reading it on Saturday.

ISBN-10 0-9776166-3-0
ISBN-13 978-0-9776166-3-3
(as I always suspected, the last digit of an ISBN is a check digit :)

One bit in the Preface struck me as being worth a blog post. The last two paragraphs.

... Instead, I found myself rewriting the content. Some chapters from the original have been removed, and new chapters have been added. Many of the rest have been completely rewritten. So, it became clear that we were looking at a second edition-basically a new book.

It seems strange to be releasing a second edition at a time when the first edition is still among the best-selling programming books in the world. But Rails has changed, and we need to change this book with it.

Enjoy!

Dave Thomas
October 2006


For me, this is good example of when to kill a product way before the end of its economic life. All to often you see companies wait for a product to stop being profitable before they release the replacement product.

Know of one case, where a supplement company had a successful protein bar, with three flavours. They let the product get that old before replacing it, that they felt they could only justify redeveloping one of the flavours. Sadly, my favourate was one of the flavours lost. Use to buy boxes (12) of the stuff!

Today, I don’t buy any of this company’s products. Just too trailing edge!

After reading the Preface & first chapter, it looks like an interest and worth while read.


Gnoll110

Monday, May 07, 2007

Google Page Elements suck

Just being playing with Layout, something added in BetaBlogger.

The Page Element stuff sucks.

A really big suck is LinkLists. You have to add ONE link at a time. No editing the HTML to import a block of new links.

Moving from Editable HTML to Layouts is considered an 'upgrade' so there is no going back. BE WARNED!


Gnoll110

Thursday, April 26, 2007

The other 95% are management problems

I do like this Mary Poppendieck post from earlier this month. Sorry to take soooo long to blog about it.

I do love the ‘The other 95% are management problems’ statement at the very end.

I’ve seen developers thrashing through multiple assignments many times, and in my experience it is usually caused by one of two things:

1) The organization can’t make up its mind what is important for one reason or another, so it tries to do everything. To me this is fundamentally a management problem – it is a basic management obligation to assure that the organization has the capacity to accomplish what it chooses to do. Releasing all sorts of work that is un-prioritized or with changing priorities is neither fair to workers nor an effective way to accomplish work. Releasing a ton of work and expecting it to flow is equivalent to sending a mass of cars onto a freeway (eg. after a sporting event) and expecting traffic to flow. Anyone who understands traffic jams should be able to understand that trying to do too much work is one of the best known ways to get less work done. There is massive evidence to support this – and managers usually know this at some level, yet often choose to ignore it. Those who do not limit assigned work to the capacity of the organization to deliver are ignoring the evidence and not doing their job.

2) There are large caches of waste sitting around the organization that are either invisible to the development team or that are impossible for them to address. This could be lack of clear definition, poor tools, a process which separates different functions and expects them to work sequentially, a practice of not testing until LOONG after coding so that test-and-fix cycles dominate the development agenda – and on and on. In almost all cases, these are SYSTEM problems, not developer problems.

One thing Deming would be sure to say, were he alive today: The likelihood that the organization’s problems are being caused by workers, or can be solved by workers, is maybe 5%. The other 95% are management problems.

Mary Poppendieck

In a previous post, I comment how Mainframe COBOLs two big problems were the nature of the language & lack of active new tool development over the last 20 plus years.

Of cause, for any organization that has these problems today, it really is a management problem. Said organizations have had lots of years to extract themselves from this situation.

The post is at: Yahoo Groups in leandevelopment

I’ve also extracted the sub-thread into this blog post:

How do you break the cycle?

Posted by: sambayer
Tue Apr 3, 2007 12:37 am (PST)


I'm working with a software services organization that wants to transition their implementation processes to lean. Today they are suffering from a lot of wip, big backlog, and lengthy implementation cycles....>8- 10 months. We're dedicating a team to get through one implementation in 1/3 that time. The problem is that everyone in the organization is multi-tasking. Everyone is handling multiple clients at various stages. To add insult to injury, a few employees just left leaving them even more shorthanded. How do we get them off of their "multi-tasking" wip addiction?

Management is behind our experiment because the potential results are dramatic. The challenge we're facing is figuring out where and how to break the multi-tasking addiction. Any suggestions would be greatly appreciated.


Tue Apr 3, 2007 11:53 pm

Hi sambayer, you wrote:

> I'm working with a software services organization that wants
> to transition their implementation processes to lean. Today
> they are suffering from a lot of wip, big backlog, and
> lengthy implementation cycles....>8-10 months. We're
> dedicating a team to get through one implementation in 1/3
> that time. The problem is that everyone in the organization
> is multi-tasking. Everyone is handling multiple clients at
> various stages. To add insult to injury, a few employees just
> left leaving them even more shorthanded. How do we get them
> off of their "multi-tasking" wip addiction?
>
> Management is behind our experiment because the potential
> results are dramatic. The challenge we're facing is figuring
> out where and how to break the multi-tasking addiction. Any
> suggestions would be greatly appreciated.

You are fortunate that management is backing your experiment.

To break your addiction I recommend that you use the [i-don't-know-what-its-called] principle:

1) Explain to everyone that their job is to improve how they accomplish their responsibilities as part of how the company delivers value to its customers.
2) Help them learn to see the waste in the way they work.
3) Help them learn to improve how they work using the Scientific method.
4) repeat all the previous steps

That's it. The learning part is where you can bring in the advice and insights of others, such as the advice from the other two people who respond to your post, into your unique environment, i.e. you learn and understand principles and apply them to develop your own best practices.

While multi-tasking is bad, see Peter Abilla's excellent analysis based on the physics of systems showing this,
http://www.shmula.com/375/multi-tasking-leads-to-lower-productivity, you and your colleagues need to understand your context and commitments and what the issues are in your environment before you start making changes. You need to ensure that you make improvements not just change. The good news is that you and your colleagues already are Subject Matter Experts (SME) on your environment, so you just need to change how you look at your work and environment. There is a wonderful example of this in Matthew May's book, The Elegant Solution. In Chapter 15 he recounts how instructors from Toyota, worked with LAPD staff and in 1 day came up with significant suggestions for improvements in many different problem areas. The LAPD staff were the SME, the Toyota instructors just help them to see their environment and what were the root causes of some their problems and then they helped the LAPD staff to suggest ways to they could improve their ways of operating.

Regards
Norbert
-----
Norbert Winklareth
Agile Renaissance

Wed Apr 4, 2007 1:22 am

>>>
While multi-tasking is bad, see Peter Abilla's excellent analysis based on the physics of systems showing this, http://www.shmula.com/375/multi-tasking-leads-to-lower-productivity, you and
<<<


Hey, I'm *against* multi-tasking as much as anyone. But if it's so bad for us humans, then why is it *good* for operating systems? I'm at my best when I'm mulling over several problems at once. To make a broad statement that multi-tasking is bad is awfully sweeping. Maybe some types are ok afterall. The main thing that I I try to provide for developers is an uninterrupted *zone* time of 2 hrs, twice a day. During the zone there are no interruptions, no context switching, no nothing!

Mel Bartels

Wed Apr 4, 2007 1:32 am
Management is behind our experiment because the potential results are dramatic. The challenge we're facing is figuring out where and how to break the multi-tasking addiction. Any suggestions would be greatly appreciated. I think there is a fine line between multi-tasking providing a "cross fertilization" of ideas, and inundating you with so much "fertilizer" that you can't see the daylight.

I guess it's all about moderation.

All of our employees complain about being overworked and too much multitasking going on. How do you know if that's really the case, or if they are just complaining?

Sam
Posted by: Mary Poppendieck
Tue Apr 3, 2007 7:12 pm (PST)

Hi Sam,

I've seen developers thrashing through multiple assignments many times, and in my experience it is usually caused by one of two things:

1) The organization can't make up its mind what is important for one reason or another, so it tries to do everything. To me this is fundamentally a management problem - it is a basic management obligation to assure that the organization has the capacity to accomplish what it chooses to do. Releasing all sorts of work that is un-prioritized or with changing priorities is neither fair to workers nor an effective way to accomplish work. Releasing a ton of work and expecting it to flow is equivalent to sending a mass of cars onto a freeway (eg. after a sporting event) and expecting traffic to flow. Anyone who understands traffic jams should be able to understand that trying to do too much work is one of the best known ways to get less work done. There is massive evidence to support this - and managers usually know this at some level, yet often choose to ignore it. Those who do not limit assigned work to the capacity of the organization to deliver are ignoring the evidence and not doing their job.

2) There are large caches of waste sitting around the organization that are either invisible to the development team or that are impossible for them to address. This could be lack of clear definition, poor tools, a process which separates different functions and expects them to work sequentially, a practice of not testing until LOONG after coding so that test-and-fix cycles dominate the development agenda - and on and on. In almost all cases, these are SYSTEM problems, not developer problems.

One thing Deming would be sure to say, were he alive today: The likelihood that the organization' s problems are being caused by workers, or can be solved by workers, is maybe 5%. The other 95% are management problems.

Mary Poppendieck

952-934-7998

www@poppendieck. com

Author of: Lean Software Development & Implementing Lean Software
Development

Monday, March 26, 2007

Design Improvement and COBOL

Last weekend I ventured down to Melbourne to attend Cogent Consulting’s Design Improvement workshop at the Northcote Town Hall. It’s the first time Cogent has offered this workshop as a public course. It’s great value, a few hundred dollars, for what would normally be a $500+ a day, for a weekday course at a CBD venue.

I thing that the course brought home to me, is the gap between current best practice and mainframe COBOL. I understood the gap conceptually, the workshop made the gap much more concrete.

The gap has two roots.
1. The nature of COBOL, its global memory model, granularity (particularly regarding testing) etc.
2. Lack of active tool development on mainframe environments for over 20 years.

A primary tool for ongoing design improvement is refacturing. That is, modifying internal design, without changing the codes external behavior.

Why send time/money without added functionality? To bring out new abstraction that lead to more elegant solutions. These new refactured objects/concept make it easier and cheaper to test and easier, faster and cheaper to extend.

It's ongoing maintanence, it extends the life of the system and reduces the total lifecycle cost/annum. It reduces the number and size (cost not being linear to increasing size) of major revamps!


Gnoll110

Thursday, March 08, 2007

During CLUG Programmers' Special Interest Group Meeting I downloaded Ruby.

Installed it when I got home.

Wrote the standard "Hello World!" first off. First interectively then as a program.

Next, I must download Ruby on Rail and play with it!


Gnoll110

CLUG Programmers' Special Interest Group Meeting

CLUG Programmers' Special Interest Group Meeting was last night.

Tridge (Andrew Tridgell) gave a talk about hacking a binary package for one distro so that it would run on other distro. He used stuff like chroot & LD_LIBRARY_PATH. Lots of tricks and smoke & mirrors :)

Learnt a few new command options too.

A good night.


Gnoll110

Wednesday, February 28, 2007

Mary on Lean Software

Monday night last week (19th), I left work early and drive to Sydney to see Mary Poppendieck speak. I think it was worth the effort.

Mary spoke on the growth of Just-in-Time into Lean Manufacturing. The lessons to be learnt from Toyota. How designing things and making things are alike and not alike.

One real interesting point that got made, was that software organizations are designed in a defencive way. Why organize that way? Because they assume failure is the likely outcome!

That the open multi-disciple teams that are needed to good (engineered) design, are not the teams that get put together. The teams a partitioned to protect the different parts of the organization from the fallout of failure! Got to have deniability! We told you that wouldn’t work, and we got it down on paper. It’s not our fault!

I’ll get her new book ‘Implementing Lean Software’, next pay.

Gnoll110

Wednesday, January 31, 2007

A quality of good software

Via the SyXPAC mailing list, I found article by Steve Yegge.

And the quality is: Systems should never reboot. Software needs to be plug-n-play too.


Gnoll110


Technorati Tags: