Yu Han on what Software Testing means to me

Last year I had the honour of teaching post graduate students the subject of software testing at the University of Technology Sydney. I asked students if they would like to write a post on testing on my blog. Yu Han did, and here it is. 

The subject of Enterprise Software Testing demonstrated the existing and interesting aspects of testing. Those lectures and the project in Suncorp are unforgettable experiences.

During the classes, I felt that, most of time, I was acting like a child, playing different kinds of games and drawing pictures with colorful pens. But at the end, there would be some serious discussions, analyses and reporting always broke my sanity.

Those reflections make me realize that my actions and thoughts were more complicated than I could realise, which encouraged me to keep reviewing what I did and exploring how I thought. By doing that, I better understood the purpose behind those activities, and I am being able to sense the essence of what a good testing could be.

I am aware of that my mind prefers to use memory or imagination to fill the gap between the reality and the information once I have received. By linking their similarities, I can better understand the information. But as soon as I came to this stage, my thinking could stop going deeper. I may feel satisfied with the simple explanation, or could be distracted by other information which will draw my attention to something else. Then I may lose the chance to find out the depth meaning of the information or even misunderstand it.

Now I am interested in paying more attention on my flow of thinking. By questioning appeared ideas could be a way to slow it down, which may clarify the understanding or identify potential obstacles hiding behind. It could also be possible to bring back those ideas or considerations which were once brought up then been omitted or developed during the incredible thinking speed. Those ideas and considerations could be questionable as soon as I try to challenge them.

This could turn out that there are missing facts behind the imagination which I feel reasonable but not actually practical. Once I try to gain the evidence to support those ideas, I could realize they are incorrect or unproved. I may need to confirm them before I go further, especially when the goal is based on such ideas. Like those assumptions made in the Big-Track exercise, our group was needed to test our ideas of what other buttons can do, before we finally test how the targeted button works. We questioned our ideas but hard to move forward until we know which ones were correct. We came up with many hypothesis, but failed to prove them at once in practice. After we had some sort of understanding, we found out that we should confirm those assumptions before we continued, which led us to come up a debugging strategy to process our tests. It appears that questioning the information not only could encourage us to seek the truth but also could inspire us to develop our ideas. In this sense, critical thinking could help one to wisely seek information and to reorganize the information into knowledge for idea development.

This now also reminds me the concept of Exploratory Testing. In the previous example, we learned the mechanism, built the tests and proved the ideas all by interacting and exploring with the actual system. It seems that Exploratory Testing could be a natural way to build and run tests while we also need to learn about the system. By understanding how it works, we could come up with how to do the test and find bugs. However, it’s difficult to tell how much time I need to finish the task.

Thanks from the experience in Suncorp, I see the efficacy of Scripted Testing. Our team only performed the testing within several hours. We didn’t need to worry about anything else, knowing other parts of the system and even the depth of the targeted section. It did take a couple of weeks for us to learn the background information and to write the strategy and test scripts, but we could save most of the time if now we are going to test another section. It makes me feel that with a good development and a clear testing goal, the job can be easily done by writing and following test scripts. But it is true that I also feel difficult to understand the system by reading documents, having meetings and even watching demonstrations. It seems easier for me to concentrate and memorize such information when I can apply it, which means learning the system by actually using it.

I am inexperienced to conclude what a good testing is or which testing method is more superior, but running the system to get reliable information, questioning the information to dig insightful connections, finding actual evidence to support the thinking seem to be the correct manners in testing.

Thanks for this subject which let me feel the enjoyment of testing, and provided a real business environment to gain practical experience. I will be happy to get involved in such field and learn more in the future.

I’ll be teaching this subject at UTS again in February next year. The course is open to students and practitioners alike .

Growing your own

So, I’m sitting here in my office on a beautiful  Australian spring day. The sun is shining brightly, the air is slightly fresh sending wafts of scent from the spring flowers. Its a good time to be alive and its a good time to be thinking of growth and change.

Potatoes in Spring

True to form, I trotted down to the local garden center and bought back a truck load of seeds and ideas on what I can do in the garden. I feel good this year, the potatoes are growing well, and I’ve managed to grow snow peas for the first time. Having invested a good amount of time in the garden, I feel content enough to sit in my office and allow myself to explore ideas on software testing and training.

And I’ve come up with the crazy idea, wonderful idea. For some time I’ve wanted to invest in online training in software testing. Its a model that I think will suit me well. I live far far away from the rest of the world and as much I as enjoy meeting new testers from around the globe, continuous travel is not for me.

To date, I’ve struggled with the concept of online learning. When I learn, I like to get my hands gritty, experience the stuff I’m wrestling with. With my online coaching, I make sure I include a task of some sort but thats one on one. Is it possible to offer online experiential learning to many people?

And then I read about these guys at Venture Lab. The courses are highly experiential & require collaboration to succeed. I sniffed a model that I could possibly work with.

But I’m taking it one step further. I want to make the students the designers of the course. Its the students who will work out what needs to be learned and how that will be achieved, and how they will know they achieved it. There will be some external structure, perhaps in the form of exercises, some philosophies to abide by, but basically, its the students who will dictate the content & the pace. In fact a lot of these ideas are from the coaching model James Bach & I have worked on holding onto the concept that learning requires real desire from the student, and to do that the student needs to dictate the learning (with the teacher offering space and direction to learn).

I see this courses as being a permission giver. We’re so drilled to think of learning as something we have to sign up for, like its impossible for us to learn outside a course. In this way, I’m helping overcome that little hurdle and get into some real meaty learning.

I’m very excited about these ideas and what will come of them. I’m not sure where they will lead and I guess that’s half the fun! If you want to join me on the crazy, wacky journey, feel free to contact me on Skype at charretts, or else add a comment below.

I’ll be adding information on this model as it progresses.

How to write about software testing

Based on the number of requests I’ve had to write articles recently, there seems to be a big demand for testers who can write  well about software testing.  I’ve been asked by a few different companies to write articles on their behalf. Sometimes I’ve been asked to write posts for someones’s blog. I’ve only done that once with Quck Testing Tips which was a lot of fun. But generally, I find it hard enough to be inspired on my blog, let alone writing for some-one elses!

I thought putting down what helps me, might help a few testers out there. Writing well is a great skill for a tester to have. Think of all those persuasive bug reports you will be able to write.  Its also a great way to consolidate and  refine your thinking. (A great read on this topic is chapter is Maria Hammeren’s chapter entitled “writing as a method of reflection”  in the book Dialogue Skill and Tacit Knowledge.)

1) Write from the heart.

Personally, I’m only motivated to write when I have something I feel passionate about. Thats a good thing because you can create a bond with the audience. But it can be unhelpful too if other people are relying on you to write something.

Perhaps passionate is the wrong word, but  writing posts that resonate with you reach out in some way to your audience. Perhaps its the choice of words you use, I’m not sure, but your readers will pick up on your sincerity.

2) Be yourself

That is, don’t try and be the expert unless you have personal knowledge about what you are writing. In practical terms, avoid trying to sound more experienced than you are. Be honest about your experiences.If you do write on a topic (say automation) in a authorititive manner, you had better be able to back it up with fact and substance.

An excellent example of someone who does this  well is Michael Bolton. I believe in what he writes because he cites references and backs up his statement with examples and facts.

Nuff said.

3) Give yourself Permission

I have James Bach to thank for pointing this one out in a tweet*. Its so true.
Give yourself permission to write your thoughts. They do count and they are of value. Trust me on this one. A great example of some-one who does this is Lanette Creamer. I admire they way she is so forthright with her ideas.

*tweet info with nod to Michael Bolton for supplying it

[quote style=”boxed”]As a teacher this is key: Permission givers http://bit.ly/9qnyOt (thanks @jerryweinberg, for the link, and the permission)[/quote]

4) Proof Read

I tend to write posts 2 or 3 times before I let them loose on the world. Seriously. This is how I work.

a) Write down sentiment anyhow, anyway. Don’t worry about what it looks like
b) At this point I  feel free to explore, sometimes I stray from my originally intended topic to the point where I have a compeltely new article.
c) Read the post (try reading it aloud), and rewrite it, move paragraphs around to get a better flow. Cut out paragraphs that prevent a nice flow through the post
d) Take a break, do something different
e) Come back re-read the post, edit it. check for spelling then send it

A trap you can fall into though is over proofing. If you feel really strongly about something, and you leave it to the next day, you may chicken out and decide not the send it. Sometimes posting in the heat of the moment is a good idea. (Hey I never said writing was clear cut!)

5) Give credit

If you get an idea based on a book you read, share that. If something inspires you, share the link.

6) Be Original

No-one wants to hear trite stuff that parrotts what others say. Believe me. Make your content your own. If you are talking about a hot topic, try and put your own personal spin on it. What are your thoughts on it? Don’t parrott a thought leader, their stuff is far better than yours anyhow.

7) Be Precise

Often its a struggle to come up with a precise word that reflects exactly what you want to say. But please, don’t be lazy about it. The english language is diverse and there’s bound to be a word that aptly describes what you want. Use a thesaurus if you have to, or do what I do and wait until the right word comes to you. Your readers will appreciate it.

8 ) Why do you write?

Here is Bernard-Henry Levy on his view on writing. Great stuff. In particular what drives him to write is interesting:

[quote style=”boxed”]I am not writing to be loved. There is as much pleasure to being hated as being loved. I write in order to convince. In order to win. In order to change, even just a little, the world. I recently launched an appeal on Twitter supporting those attacking the official websites of the Tunisian regime. An intellectual calling for hacking doesn’t happen very frequently, and there is a stir. I am happy that it succeeded. I care about being heard.[/quote]

Whats your driver? Is it your ego, is it SEO ratings or is it something else? I started writing to get ratings for my website, but now I write for the pure joy of writing, because I get a kick out of crafting a beautiful piece of work.

9) Practise

The only way you are going to get any good at writing is by practicing.  How are you going to practice, well thats up to you, but writing a blog is a good start. Don’t aim for perfection, just get out there and write something. I will never forget my first blog post. It was the equivalent of hello world! (I wish I still had it, I would link it here)

Well, thats it. Nearly

There is one more thing.

If you are serious about writing skype me on charretts. I offer free coaching and I’m willing to include writing in that scope, as long as its to do with testing.

[By the way, when I’m talking about writing, its mostly in the context  of articles, blogs etc.]


 

Put your lips together and blow

When I first heard about Tacit Knowledge, I had a vague idea what it was. The word “tacit” sounded a bit like “tactile” so I guessed it was knowledge that you could touch.

I was a bit off the mark.

Normally, I try to avoid starting my posts with definitions, it reminds me of those dreary debates we had at school where everyone started their discourse by using the dictionary definition.

I’m making an exception in this case as I think its important that we all understand what tacit knowledge is, so here is the wikipedia definition (Don’t be lazy, click on it)

This morning my son had a bit of a crisis going to school. As some of you know, we’ve moved country and continent. For my kids, this means new school, new friends, new environment. It can be a tough challenge for an eight year old.

Suffice to say, he needed a bit of cheering up, so I suggested he look on the bright side of life. Cue Monty Python Bright Side of Life

Well, it sort of worked especially when I tried to teach him how to whistle.

Have you ever tried to teach someone to whistle?

Lauren Bacall had a go, in the movie “To have and to have not”

But you know what? As Alex found out, if you do put your lips together and blow it doesn’t mean you can whistle!

Actually being able to whistle is pretty hard.(I’m sure many of you have memories of trying to whistle in vain!)

But why is it so hard? The basic facts were explained and it seems quite simple. What vital peice of information is missing from Becall’s instruction?

That my friend is tacit knowledge. Simply put, its the knowledge you can only learn by doing.

And so to software testing.

The reason why software testing is so hard to teach is because it requires the student to learn by doing.

To learn software testing you must….software test!

Yes, you can read and learn the peripheral stuff around testing. For example you can learn what a IEEE829 test process is. You can learn how to write a test plan, how to create a test script, but that is not testing.

Testing is the doing bit. The bit where you have to think, judge and act on a testing dilemma. Thats why some companies when interviewing for testers will ask you to test something. They know, intuitively, that testing is about doing, not writing.

My Skype coaching sessions on software testing are based around this principle. You won’t find me “sharing my experience” in the sessions because that’s not how you learn about testing. Instead, you get a challenge, puzzle or dilemma that I work through with you.

To really understand testing, you must do testing but also you must be aware of what you are doing while testing. Why? Because awareness brings about discovery. You discover assumptions you make in testing. You discover conflicting ideas and you discover your bias in testing. From that awareness comes learning and improvement.

I think thats pretty damn cool.

Now all together…

“Always look on the bright side of life…”

(my skype coaching sessions are free, contact me on skype id charretts with the word coaching in the request)

Teaching or Learning?

Do you have a focus when giving training?

Sometimes, in my eagerness to ‘teach’ I forget to focus on something important. I forget that the lesson is about the student not me. I become more more concerned in my ability to be able to teach effectively. I want the student to come away feeling they have learned something.

Noble goals perhaps, but its nothing to do with training. Training is about the student, not the teacher.

Much more valuable is to focus on the student and provide a space for learning , giving people the opportunity to learn new things. Focusing on ‘teaching’ is about your ego. Its about you wanting to get something out of the training. I fell into this trap this week.

I wanted to ‘teach’ someone about testing. When their conclusion differed to the one I wanted them to come to, I got frustrated. “How”, I thought, “am I going to be able to teach people about testing, if they don’t learn the lesson”?

But I’m wrong. Its not about me being successful in teaching. Its about me providing a space for them to learn. In this case, they didn’t see it. That ok. Not everyone is going to learn all the time. Thats ok too.

I miss stuff all the time. I don’t get stuff, I miss traps, I fall into traps. I forget to ask questions…often. But thats ok too.

Missing stuff, making mistakes is part of what makes us human. Being human is special, its what we are all about and its something that we all have in common. (Except for Rob Lambert, I suspect he is an alien).

So, go forth and learn. Go forth and create learning opportunities. But you know what? If people don’t learn from you, it doesn’t mean you haven’t taught well. Perhaps its simply that the lesson is for another day.

That was the lesson I learned today.

Addendum

I was chatting to Pradeep Soundararajan online about training. I asked him his view on teaching, and learning. He gave some great reasons why perhaps people fail to pick up a lesson. He agreed to let me post them here:

[09/07/2010 18:16:31] Pradeep Soundararajan: Its not about people getting it always

[09/07/2010 18:16:51] Anne-Marie Charrett: how do you view it?

[09/07/2010 18:17:33] Pradeep Soundararajan: Many ways:

1: I think when people dont get it, they are helping us understand that we have probably not got it either.
2: When people dont get it, they may also have made the choice consciously. So, we don’t need to bother when we identify it was their choice to avoid getting it.
3. When people dont get it, they may require alternatives of explanation. We might want to help them.
4. Learning is not an activity that can be time boxed for everyone. For some people, they need to go back and face a few contexts to get it.
5. I have received emails from people who told they got the value of my workshop not immediately but after an year.

Thanks Pradeep, these are great insights to share.

Get out your tin whistles

At last after a year of wrangling, shuffling and even some pleading Michael Bolton in association with Testing Times is coming Dublin to give his wonderful Rapid Software Testing Course.

Not that Michael needed persuading to come. He jumped at the opportunity. Mostly because he loves giving this course and helping testers well, develop sense. But I will let you into a little not so well known fact about Michael. He loves Irish Music and his a keen Mandolin player.

So we knew we were onto a winner straight away!

For those not familiar with Michael Bolton and his course.

Rapid Software Testing is “a course, a mind-set, and a skill set about how to do excellent software testing in a way that is very fast, inexpensive, credible, and accountable.” Its written by James Bach and Michael Bolton

This course is excellent, its practical and thought provoking!  I can personally say that because I’ve taken it. If you have ever asked yourself the question:

“Is there a better way to test this stuff ?”

Then I suspect this course is for you.

Some of the issues it addresses are:

  • Are you finding it difficult to assess how much time and effort you’re going to need to test effectively?
  • Are you overwhelmed by or uncertain about approaches to test planning, design and execution?
  • Are you working in an environment where some people aren’t following “the rules”?
  • Are you having trouble finding the right balance between planning, documentation, and testing?
  • Are you interested in learning skills and techniques that will help you to become a better tester?
  • Are you finding that “industry best practices” are infeasible and a poor fit for your organization?
  • Do you want to get very good at software testing?

Read more information about Michael Bolton and the course go to his website: Michael Bolton Rapid Software Testing

Even better Skillnet has agreed to partially fund the course, so you are getting this 3 day course at a knock down price of 770 euros.

If you have any money in your training budget, this course is the one to go for!

Rapid Software Testing Details

  • Date: Monday 13th to Wednesday 15th September 2010
  • Venue: Xilinx, Citywest Business Park
  • In association with Testing Times & Xilinx
  • Duration: 3 day course (9.00am to 5.30pm)
  • Cost to non-members: €1,700 per person
  • Cost to Software Skillnet Members* after Grant aid: €770 per person

*Membership to Skillnet is Free

For more details and booking go to the skillnet website:  Skillnet Rapid Software Testing

Software Testing Training of a different kind

Ever dreamed of being personally trained by Cem Kaner? How about Doug Hoffman? No? Ok, maybe Scott Barber is more your style?

Any tester would, but it would be expensive? I mean these guys would typically charge thousands for this kind of training. Besides, they’re all in the states, so airfare, accommodation.  Your company would never pay for it, right? Especially not now the training budget is cut.

Well, I’m being personally trained by these great testers, right now and even better, I’m doing it for FREE. No that’s not an acronym for  Footnote Really Exorbitantly Expensive,(I know its not very good, come up with a better one and let me know !)  it really is FREE.

I’m on the bug advocacy course run by the association of software testing. (note, the website is currently going an upgrade, but you can still become a member etc).

It’s an online course that’s free to all members. Yes you do have to be a member. Yes it does cost money. $85 US dollars for a year. So, if you want to split hairs, you could argue the course costs $85. So what?

Anyhow, I wanted to talk about this course, because its content is really excellent. First of all, lets deal with the title.

Why BUG ADVOCACY?

Because our focus as tester’s is not about raising bugs, but ensuring they get fixed. Its true!  Think about it. That way, not only does the software improve, but we as testers gain credibility too.

So, in order for us to get our bugs fixed, we need to make sure we sell them well and we anticipate and preempt any objections people may have about our bug report.

Its about communication effectively and communicating to the right person. Its about creating the ultimate bug report.

There is a lot more than that in the course. I suggest you take the course and find out for yourself.

The recommended hours per week is 6.  I would suggest you allocate more time.   The course content is practical and you are given assessments that involve commenting on actual bug reports. Some of the assessments can take longer if you allow them too. You work with testers around the world, some I knew of because of their blogs.  Personally, I’ve learned as much from other testers feedback as I have from the trainers.

Make no bones about it though, its a demanding and challenging course and if you are just looking for a piece of paper for your resume, this perhaps is not the course for you. On the other hand, if you’re looking to improve your software testing skills and having a highly respected certificate matters to you, then I suggest you join the AST and take some of their courses.

It doesn’t matter what environment you work in, agile or waterfall, process or exploratory, the skills you learn on this course are relative to all testers out there.

So, if your company doesn’t have a large training budget (or even if it does) this is the perfect solution. Your testers get some really great training, and you get kudos to boot.

Note:  This is my own personal opinion, I get nothing out of posting this on my blog.

Rediscover your inner tester

Linda Wilkinson in a recent post called on ‘Experts’ to come down off their ivory towers, and get back in touch with the rest of the ‘hoi polloi’.

Ivory Tower

Ivory Tower

It got me thinking about how in one way or another, we all have an Ivory Tower in testing which we can brag about. Your Ivory Tower (if its anything like mine!) is a nice place to be in. 



We can sit back and feel comfortable there, we know what we are doing and people treat us with certain level of respect.  No-one decided in advance to build these towers, but over the years, as we have specialised, it has become an area we have decided to call our own.


Some Ivory Towers I’ve come across in sofware testing are:

  • The Methodology Tower

    Over the years one process or methodology dominates and closes our minds to  new approaches such as Agile or Exploratory Testing. Or, we are so won over by Agile, that we fail to explore other avenues that may be of benefit.

  • The Trainer’s & Speaker Tower

    After many years of testing at the trenches, the experience acquired is used to help other testers by training and speaking in conferences. Gradually, the speaker/trainer looses touch with the tester on the front and starts finding it hard to identify with issues testers face on a daily basis.

  • The Management Tower

    Climbing up the corporate ladder, the Test Manager spends most days, managing people and projects. Their goals and challenges differ from the tester on their teams. They too start to loose touch on the real issues that testers face.

  • The Manual/Automation Tower

    As a tester, perhaps  whilst performing other tasks, perhaps you have decided to specalise in only certain areas? Manual testers, when did you last try out automation or performance testing?

There is nothing wrong in specialising, or having a niche. But in building these towers, how far have you wandered from the path of testing? You know, the actual testing, where you sit down in front of an application and well look for bugs?

In narrowing your skillset, I think you narrow your mindset, and consequently loose out on all the benefits that testing have to offer.

Puzzles and writing articles are good ways keep up your cognitive skills, but really nothing beats testing a product to remind of the real issues everyday testers face. Try getting your teeth stuck into a good testing problem, and remind yourself of the pleasure and heartache that testing can bring.

Puzzles and forum discussions will never replace or use the sheer number of skills you require in testing such as communication, negotiation, cognitive and written skills.

So, if you really want to get in touch with your inner tester get out and test. That doesn’t mean you have to give up your training or test management or what ever area you have chosen to specialise in, but there is no reason why you can’t contribute to some opensource testing, or volunteer to assist a charity in their software testing. If you can’t see your way to doing that, try keeping  the tester in you alive by going for the many testing challenges that seem to be popping up. I really like the Weekend Tester’s created by  Ajay Balamurugadas. They set themselves challenges and applications to test as a way of improving their testing skills. Matt Heusseur is another person who set a challenge on his blog.

Go on, I dare you to step outside and sniff the air outside your Ivory Tower and rediscover your true inner tester.

Holding the cat by the tail

I thought Jack Margo’s interview by UTest was very interesting. What caught my eye was the following statement:

The days of specialists are mostly killed from the recession…you have to be flexible and know multiple disciplines to exist in today’s dev environment.  In web development alone, you need to be proficient with XML, DHTML, JS, a DB flavor, an OS flavor, a programming language and some semblance of UI Design to even handle front-end.  I have friends who knew only HTML or only PERL.  They are struggling to say the least

It made me think  the same applies to us as software testers.

Have specialists in software testing being killed by the recession? Is it necessary for software testers to be ‘flexible’ and know ‘multiple disciplines’?

Personally, I think so. Its not good enough these days to be a ‘manual tester’ or an ‘automated tester’. Instead you need to be able to do both. I don’t think that means you have to be ‘expert’ on both, but it does mean you have to have knowledge of both and a good knowledge in one area.

That’s why I’m excited about Nathan Bain and the free automated testing sessions he’s starting up.  As he puts it:

Come to meet fellow testers, share stories and experiences about tools and techniques which may, or may not, have solved testing problems on other Agile projects.

This is also a place of learning, where live demonstrations of tools will be given for FREE – no more expensive training courses for simple (and free) open-source testing tools.

What a fantastic opportunity to learn about automated testing!

To complement this, Rob Lambert has setup some free Exploratory Testing Sessions.

Both organisers have mentioned that these sessions could also be performed online.

I am not going to miss out on either opportunities. I would encourage those interested to sign up to both, either to contribute so others can learn, or learn from someone else.

BTW: two quotes were in contest to head this post. The first one was by Mahatma Gandhi:

“Live as if you were to die tomorrow. Learn as if you were to live forever.”

The other was:

“If you hold a cat by the tail you learn things you cannot learn any other way.”

Mark Twain

I love both for different reasons, but I thought the second one appealed to me as a tester, hence the title :)

A scrum in Croke Park

I’m attending the SQS conference on Software Testing in Croke Park, Dublin.  I thought it was appropriate to go to an Agile Testing session involving Scrum amongst other techniques in the same hallowed ground where not to recently a game of Rugby was played out between England and Ireland.

As our trainer Mike Scott was English, we tried not to gloat too much.

I won’t bore you with lots of analogies on how Agile is similar to rugby, besides after a day of Agile, I can’t think up too many, I’m sure someone out there can….

But here is what I enjoyed about Agile and its techniques

I liked the concept of the balloon pattern and testing so early that no code has yet been written, only your installation packages. I think thats really smart. You can iron out all your installation and configuration issues up front.

I like the concept that we as testers need to ask lots of questions and not make assumptions, though I think this is not unique to Agile.  A course on  Rapid Software Testing by James Bach also stresses this point.  However,  Agile demands intelligence in testing, where perhaps more traditional methods are less exacting?

There seemed to be a heavy dependency on Test Driven Development (TDD) which I am a big supporter of, though I do question the use of 100% Acceptance Test Automation.  I think in every software testing exercise there is room for both manual and automated testing. Its a question of intelligently planning out what percentage ratio works best for that particular project or environment.

Is Agile faster and cheaper as its sometimes portrayed?  I suspect not, but it does offer a customer greater flexibility and visibility and I like the sound of that!