Getting better at being wrong
Brian Marick writes how we should get better at being wrong:
"We should work smarter and harder at being wrong. We should get so good at being wrong that our predictive failings do no harm to us, our project, our employer, or our users."
The basic idea is that changes should become so easy that we can get rid of a lot of up-front design and specification work. Lack of up-front design will inevitably result in failures (being wrong), but that should not be too harmful.
I have been managing a project with two programmers and in this we have replaced up-front design with "just-in-time design". We are still working on the very first story and have only one table in our database schema. So far we have changed our mind with the database table twice resulting in changes to the code that the developers had already written. In both of these times I have felt bad... I have been thinking that this could have been avoided if I had been thinking this more carefully (designing it) before jumping into development. But do I have a reason to feel bad?
The programmers are not too experienced and, because of this, the changes triggered by table modification are not very easy for them. It takes time to change and then some trial and error to get it back in a working state again. The domain model entity class, Hibernate mapping and one Spring MVC controller needed to be changed. I know that for an experienced developer that is piece of cake! But what if the developers are not familiar with refactoring tools and are not familiar with the technology used (Hibernate and Spring in this case)? Is it necessary to have really experienced and good developers in order to succeed with an agile process? I know I have heard that claim before several times.
Coming back to Brian's note about getting good at being wrong. I think it applies to our case also. The team needs to get better at refactoring, unit testing, and it needs to learn to master the frameworks and tools. This is what it means to get better at being wrong in our case. So to me it looks like it is true that an agile process needs better programmers. But before that happens I guess our agile process is not so agile. After all, you cannot call agile if changes are slow.
Would more up-front design actually help us? With a detailed specification it might have been that only one schema change had been enough. So maybe there had been less rework. But, in my experience there is always some rework no matter how much you invest in careful specification and design before moving to implementation. I'm thinking that, even with a less experienced team, our process has been quite good. We have done some rework, yes, but I think we have saved time by growing the infrastructure and design while programming. Designing everything beforehand with computerized UML diagrams would have been slower and probably had missed the target.
Brian's blog entry can be found here.
On a technical note, Hibernate allows you to employ a quite manageable approach with automatic schema generation/update from your mapped classes. This is especially helpful when you are starting out with a new project and the db schema is not yet carved in stone. So whenever your container is cycled Hibernate will sync any changes to your model with the schema. Granted, it is not a perfect solution —Hibernate doesn't drop columns that become unneeded due to the removal of a property in your mapping— but I found it quite usable.
Once the domain model is stable enough, this Hibernate feature can be disabled and you can finetune the schema as needed.
The Hibernate 3.0.5 property that controls this behaviour is hibernate.hbm2ddl.auto with values update | create | create-drop
Posted by: Zsolt | October 06, 2005 at 07:33 PM
We've used the same approach mentioned by Zsolt at our company, with good results. Anything that facilitates refactoring makes it easier to do just-in-time design and to be less worried that you might have forgotten something important at the outset.
Posted by: Dave Nicolette | November 02, 2005 at 05:03 PM
>Would more up-front design actually help us?
> With a detailed specification it might have been that only one schema change had been enough.
Complete and frozen up-front design wouldn't be of a big help. You anyway would have to change something, so investing too much efforts would be useless waste of time.
However, some effort-investment would probably help. That's what the trial spikes and architects are for - to get rid of the most obvious wrong things fast.
Posted by: Artem | April 26, 2006 at 07:57 PM
I can not find where to access my bank account. Not sure I have information needed to find page to enter my user name. Maybe you can help me fill in the blanks since I cant seem to get any answers. I also applied to
orchard bank denied secured credit application
Posted by: Agronomtey | July 23, 2007 at 08:41 AM
Hello users from api.blogs.com !!! Help to me pls!
What codecs you use? It is pleasant to me KazaLite but some films I could not look can not look. For example this clip
Write to me, can eat better? Thank.
I use Nero PlugIn for burn CD-s. Only legal!
Posted by: SootsDast | July 23, 2007 at 10:23 AM
I am a 40 yr old student. This is the limit age. At this age what is my chance to get a low rate student credit card? Please advise if you know. Can I apply at
500 limit credit cards for bad credit
Posted by: Agronomrnk | July 23, 2007 at 11:36 AM
Don't ever apply for a credit card without considering all the details. The best way to choose the right credit card is to make an apple-to-apple comparison. A great site that helps to do that is
credit cards for credit scores under 600
Posted by: Agronomgvd | July 23, 2007 at 04:09 PM
It is absolutely obvious that young people have very little knowledge of personal finance. Even some of the college students think that the money from credit cards is free. And not only young people are ignorant about credit cards. The best way for them to choose the right credit card is read the details. There is a great site to compare credit card offers
how to find household bank mastercard manage my account
Posted by: Agronomctf | July 24, 2007 at 09:43 AM
There is going t o be a party! Are you coming?
Posted by: CyPeineni | July 26, 2007 at 07:15 AM
Hello, Applying online for secured personal loans also enables to receive a secured loan fast.Checking your credit report at least every six months can help you to stay on top of it and check it for mistakes.Mortgage Ready Toolkit and get yourself mortgage ready sooner: If you are not mortgage ready at this time, your bad credit mortgage expert will need to work with you to make your weak points stronger. c++ microsoft use visual Thank you
Posted by: xochyvtop | July 27, 2007 at 05:43 AM
Holla,
A personal loan with no credit check is a means like any other loan, to satisfy your financial anxiety.
The use of credit or identity scoring prior to authorizing access or granting credit is an implementation of a trusted system.
For instance an introductory rate may be offered at 6.5% interest for 6 months.
food grinder
You welcome
Posted by: ineedtop | July 29, 2007 at 02:45 PM
Acoustic
Emo
Neo-Folk
Pop
Flamenco
Metal:
Alternative
Instrumental
World
Posted by: mpjoseff | August 01, 2007 at 06:58 PM
Hello! I believe credit cards are used almost by everyone. But unfortunately, credit cards with 0% balance transfer, rewards, lowest interest rates are mainly for those with strong credit. If your credit is not good, you can apply for bad credit cards online to build good one at
Posted by: Creditszf | August 02, 2007 at 06:16 AM
When choosing a credit card think about what you need the card for. I deeply believe that credit cards are not for borrowing money but for saving. So think how you are going to spend your 'credit card money' and choose the right offer. There are many but it is always good to compare. You can use the list at
669 fico credit card approval
Posted by: Bcredithrw | August 02, 2007 at 06:37 AM
When choosing a credit card think about what you need the card for. I deeply believe that credit cards are not for borrowing money but for saving. So think how you are going to spend your 'credit card money' and choose the right offer. There are many but it is always good to compare. You can use the list at
669 fico credit card approval
Posted by: Bcredithrw | August 02, 2007 at 06:40 AM
I've tried applying for a credit card with most suitable for me terms and conditions - low APR and no annual fees. But I had to face a denial! My credit score was not good enough to qualify for this credit card offer. Are you going to apply for credit card at the moment? Find out your score first and apply correspondingly at
equifax credit report company canada division
Posted by: Bcreditabp | August 02, 2007 at 09:09 AM
It is my own experience. If you are looking for a new credit card you can visit
experian visa card no refusal
Posted by: Bcreditnig | August 02, 2007 at 06:26 PM
Hi there. You gotta tell me the best credit card site, please! My credit is burning, I owe $27, 800! Please advise where to apply for credit cards if my credit was good so far! I've heard they have nice service, but I'm not sure. Can you tell me what they really offer at ?
605 782 3390
Posted by: Aacreditads | August 03, 2007 at 12:32 AM
Hi! I'm in the process of trying to find a good credit card to rebuild my credit, and I was wondering is there one with no monthly fees. My credit is not great but not bad. I have found one site but I am not sure whether those credit cards suit me or not. Can you help me. Thank you.
build credit easily
Posted by: cacreditqcb | August 03, 2007 at 09:43 PM
I am at a loss. I am looking to apply for a car loan but my current credit is not enough for that. I have learnt that I can actually buy good credit history and so improve my credit score. But I am afraid I may delay a payment and do a bad turn to both - the seller of credit history and myself. Maybe it's better to apply for a secured card at
aspirecard pay
Posted by: cacreditrah | August 04, 2007 at 01:30 AM
Hi
I can't see my site. why?
versace glasses
Thanks
Posted by: DanilGD | August 10, 2007 at 10:30 AM
http://www.catscorner.ca/images/map.html advantages of the cnc routing
virginia beach online ticket payment
Posted by: wmaragorn | September 15, 2007 at 01:08 AM
AdultFriendFinder is a commercial website that claims to be the world's largest sex and swinger personals community online,meet real people looking for sex, association through the web-camera. 1-on-1 sex, group sex, descreet relationship. Erotic chat, email.
Come in!!!
Posted by: g877767 | September 24, 2007 at 04:54 PM
Citalopram Cheap medication from pharmacy very Celexa
Lasix medication Order home immediatly pharmacy sooper Furosemide
Posted by: tenuate | October 20, 2007 at 07:48 PM
Hi, I wanbt explain you about pharrmacy.
I work thereabout 6 years, andx `im sure that the bsetf pills is snort klonopin
The best pills are there, the lowest prices. Don`t buy anything, lets buy the best pills. Its not a spam!
Thanks
Posted by: ilikephandos | January 12, 2008 at 02:41 AM