(Ebook) Writing Great Specifications: Using Specification by Example and Gherkin by Kamil Nicieja ISBN 9781617294105, 1617294101
(Ebook) Writing Great Specifications: Using Specification by Example and Gherkin by Kamil Nicieja ISBN 9781617294105, 1617294101
com
https://ebooknice.com/product/writing-great-specifications-
using-specification-by-example-and-gherkin-14444274
OR CLICK HERE
DOWLOAD EBOOK
(Ebook) Specification by Example: How Successful Teams Deliver the Right Software by
Gojko Adzic ISBN 9781617290084, 1617290084
https://ebooknice.com/product/specification-by-example-how-successful-teams-
deliver-the-right-software-2393874
ebooknice.com
(Ebook) Biota Grow 2C gather 2C cook by Loucas, Jason; Viles, James ISBN
9781459699816, 9781743365571, 9781925268492, 1459699815, 1743365578, 1925268497
https://ebooknice.com/product/biota-grow-2c-gather-2c-cook-6661374
ebooknice.com
(Ebook) Great Writing 3: From Great Paragraphs to Great Essays (Great Writing, Fifth
Edition) by Keith S. Folse, Elena Vestri Solomon, David Clabeaux ISBN 9780357020845,
0357020847
https://ebooknice.com/product/great-writing-3-from-great-paragraphs-to-great-
essays-great-writing-fifth-edition-46263618
ebooknice.com
(Ebook) Great Writing 5: From Great Essays to Research (Great Writing, Fifth
Edition) by Folse, Keith S., Pugh, Tison ISBN 9780357020869, 0357020863
https://ebooknice.com/product/great-writing-5-from-great-essays-to-research-
great-writing-fifth-edition-36513398
ebooknice.com
(Ebook) Great Writing 4: Great Essays (Great Writing, Fifth Edition) by Keith S.
Folse, April Muchmore-Vokoun, Elena Vestri Solomon ISBN 9780357020852, 0357020855
https://ebooknice.com/product/great-writing-4-great-essays-great-writing-fifth-
edition-54674952
ebooknice.com
(Ebook) Software Architecture by Example: Using C# and .NET by Paul Michaels ISBN
9781484279892, 1484279891
https://ebooknice.com/product/software-architecture-by-example-using-c-and-
net-42931752
ebooknice.com
https://ebooknice.com/product/specification-for-tunnelling-2503490
ebooknice.com
(Ebook) Software Architecture by Example: Using C# and .NET by Paul Michaels ISBN
9781484279892, 9781484279908, 1484279891, 1484279905
https://ebooknice.com/product/software-architecture-by-example-using-c-and-
net-42996386
ebooknice.com
(Ebook) Lead by Example: 50 Ways Great Leaders Inspire Results by John Baldoni ISBN
9780814412954, 0814412955
https://ebooknice.com/product/lead-by-example-50-ways-great-leaders-inspire-
results-51554056
ebooknice.com
KAMIL NICIEJA
FOREWORD BY GOJKO ADŽIC´
MANNING
A complete list of Gherkin keywords and their synonyms
KAMIL NICIEJA
FOREWORD BY GOJKO ADŽIĆ
MANNING
SHELTER ISLAND
For online information and ordering of this and other Manning books, please visit
www.manning.com. The publisher offers discounts on this book when ordered in quantity.
For more information, please contact
Special Sales Department
Manning Publications Co.
20 Baldwin Road
PO Box 761
Shelter Island, NY 11964
Email: [email protected]
Many of the designations used by manufacturers and sellers to distinguish their products are
claimed as trademarks. Where those designations appear in the book, and Manning
Publications was aware of a trademark claim, the designations have been printed in initial caps
or all caps.
Recognizing the importance of preserving what has been written, it is Manning’s policy to have
the books we publish printed on acid-free paper, and we exert our best efforts to that end.
Recognizing also our responsibility to conserve the resources of our planet, Manning books
are printed on paper that is at least 15 percent recycled and processed without the use of
elemental chlorine.
ISBN 9781617294105
Printed in the United States of America
1 2 3 4 5 6 7 8 9 10 – EBM – 22 21 20 19 18 17
brief contents
1 ■ Introduction to specification by example and Gherkin 1
v
contents
foreword xiii
preface xv
acknowledgments xviii
about this book xx
about the cover xxiii
vii
viii CONTENTS
equivalence 119
5.5 Answers to exercises 121
5.6 Summary 122
7 Living documentation
7.1
148
Living documentation in action 150
7.2 Writing documentation 153
7.3 Defining important domain concepts 154
Writing lexical definitions 154 Writing illustrative
■
xiii
xiv FOREWORD
1
Software Engineering: Report on a Conference Sponsored by the NATO Science Committee, Garmisch, Germany, 7th to
11th October 1968, eds. Peter Naur and Brian Randell (Scientific Affairs Division, NATO, 1969),
http://mng.bz/jn3d.
xv
xvi PREFACE
I first became familiar with the topic at Monterail—a web development studio
working with enterprise clients and startups from all over the world—where I was
responsible for implementing executable specifications. Thanks to executable specifi-
cations, Monterail’s delivery teams were able to deliver software of higher quality. In a
year or so, we wrote more than 500 Gherkin scenarios for highly complex products
including procurement software, webinar/webcast software for marketers, and a
packet-capture product family that can transform any server into a precision network-
monitoring device.
I started my career at Monterail as an engineer and then moved to product man-
agement. I wrote executable specifications, I implemented them, and I tested them.
Around that time, I read Gojko Adžić’s Specification by Example (Manning, 2011,
www.manning.com/books/specification-by-example), which was pivotal to the way I
approach the topic of software quality. In early 2015, I participated in Product Owner
Survival Camp in Vienna, where Ellen Gottesdiener, Gojko Adžić, David Evans, and
Christian Hassa held their workshops. During a coffee break, a coworker of mine
(who also attended) and I mentioned to Gojko that we were thinking about releasing
a free ebook with tutorials for writing executable specifications. Gojko’s book is great,
but it focuses on the process and key practices, leaving implementation aspects aside.
Although many books discussed how to write tests, for some reason almost nobody was
talking about writing the specification layer—the stuff that humans can read, not just
machines. We agreed that it was a topic worth exploring. The joint project didn’t work
out, but Gojko introduced me to Manning’s Mike Stephens; and, some time later, the
idea for my own book took off—all thanks to that meeting in Vienna.
There are many different kinds of executable specifications; an attempt to discuss
all of them in a single book wouldn’t be practical. So, we’ll explore two of these
approaches—specification by example (SBE) and Gherkin—that are increasingly pop-
ular. Together, they offer programmers, designers, and managers an inclusive environ-
ment for clear communication, discovering requirements, building a documentation
system, and writing acceptance tests. My goal in this book is to help you create such an
environment in your organization so that we, as an industry, may continue progress-
ing on the path set in 1968 by the pioneers of our industry.
I wish you good luck in your journey with SBE and Gherkin. But I also want to
thank you. I truly believe that delivery teams all over the world wield tremendous
power and have great responsibility to the people who use their software—and
increasingly, that’s millions of users. Every attempt to improve software quality—
including yours—should be applauded.
acknowledgments
I thank everyone who contributed to this book, especially the people at Manning:
publisher Marjan Bace and everyone on the editorial and production teams, includ-
ing Alessandro Campeis, Alain Couniot, Bert Bates, Dan Maharry, Marina Michaels,
Mike Stephens, Janet Vail, Tiffany Taylor, Katie Tennant, Dottie Marsico, and Jona-
than Thoms. Having some confidence in the topic I wanted to write about, I thought I
was the one who was here to teach; but, rightfully, it was I who ended up being
schooled. I learned so much from you—all while you were working hard to move the
process along as swiftly as possible.
Thanks go to the amazing group of technical peer reviewers led by Aleksandar
Dragosavljevic: Ivo Alexandre, Costa Alves Angelico, James Anaipakos, Dane Balia,
Keith Donaldson, Ruben Gamboa, Aurélien Gounot, Burk Hufnagel, Edgar R. Knapp,
Unnikrishnan Kumar, David Madouros, Russell Martin, Markus Matzker, Nasir
Naeem, David Osborne, Mike Reidy, and Craig Smith.
My thanks to Gojko Adžić, who wrote the foreword and introduced me to Manning.
I want to thank the great people at Monterail who worked with me from 2013 to
2015 and contributed to many of the ideas you’ll read here. They helped me see SBE
and Gherkin from every angle: development, testing, and product design.
Many friends helped improve early drafts of the book or got me through blocks
and obstacles. For their invaluable comments and continuing support, I thank Bartek
Jarmołkiewicz, Magda Mól, Dominik Porada, and Piotrek Zadworny.
I also want to thank my cofounders at Ada:1 Adam Stankiewicz and Natalia Świrska.
The company was born at the same time as the idea for this book. Thank you for your
patience and encouragement.
1
Ada is an AI-powered personal assistant that will help you rent your next apartment: http://adarenting.com.
xviii
ACKNOWLEDGMENTS xix
Finally, a big thank-you goes to my family. I wouldn’t have done any of the work I’m
proud of today without my parents. Mom, you’ve always believed in me: thank you for
being the very first reader of my short stories, back when I was in school. Dad, I often
think of the times when we had fun together learning our first programming lan-
guage, Visual Basic. I was 10 years old then. I’m older now, but it’s still fun.
I once read that people write in an attempt to advise their past selves. Since child-
hood, I’ve wanted to write a book—although I imagined it would be a novel. At some
point, I came to believe it would never happen, but the universe works in funny ways.
To anyone who struggles with a goal that feels distant and daunting, I want to quote
Nike’s Phil Knight: “The cowards never started, and the weak died along the way. That
leaves us.” Don’t give up. Thank you for your work.
about this book
The goal of this book is to help you learn to do the following:
Capture requirements and acceptance criteria as executable test cases
Master the Gherkin language as a practical, communicative way of writing soft-
ware specifications
Collect valuable examples
Write easy-to-automate specifications
Design stable executable specification suites with good test coverage
Balance the specification style and documentation style in Gherkin scenarios
Manage specification suites in large projects
xx
ABOUT THIS BOOK xxi
This book is a teaching resource meant for everyone—product and design people,
analysts, programmers, and testers. Instead of focusing on technical challenges, it
goes into depth about writing the text layer of executable specifications in Gherkin in
a clear, understandable, concise manner. Non-engineers can learn how to make essen-
tial contributions to design and testing without having to learn programming or write
testing code. Engineers and testers, on the other hand, will find SBE and Gherkin
helpful for doing more meaningful TDD by striking a stronger chord with nontechni-
cal audiences through executable specifications.
Book forum
Purchase of Writing Great Specifications includes free access to a private web forum run
by Manning Publications where you can make comments about the book, ask technical
questions, and receive help from the author and from other users. To access the forum,
go to https://forums.manning.com/forums/writing-great-specifications. You can also
learn more about Manning’s forums and the rules of conduct at https://forums
.manning.com/forums/about.
Manning’s commitment to our readers is to provide a venue where a meaningful
dialogue between individual readers and between readers and the author can take
place. It isn’t a commitment to any specific amount of participation on the part of the
author, whose contribution to the forum remains voluntary (and unpaid). We suggest
you try asking the author some challenging questions lest his interest stray! The forum
and the archives of previous discussions will be accessible from the publisher’s website
as long as the book is in print.
about the cover
The figure on the cover of Writing Great Specifications is captioned “Habit of a Moorish
Priest in 1695.” The illustration is taken from Thomas Jefferys’ A Collection of the Dresses
of Different Nations, Ancient and Modern (four volumes), London, published between
1757 and 1772. The title page states that these are hand-colored copperplate engrav-
ings, heightened with gum arabic.
Thomas Jefferys (1719–1771) was called “Geographer to King George III.” He was
an English cartographer who was the leading map supplier of his day. He engraved
and printed maps for government and other official bodies and produced a wide
range of commercial maps and atlases, especially of North America. His work as a map
maker sparked an interest in local dress customs of the lands he surveyed and
mapped, which are brilliantly displayed in this collection. Fascination with faraway
lands and travel for pleasure were relatively new phenomena in the late eighteenth
century, and collections such as this one were popular, introducing both the tourist as
well as the armchair traveler to the inhabitants of other countries.
The diversity of the drawings in Jefferys’ volumes speaks vividly of the uniqueness
and individuality of the world’s nations some 200 years ago. Dress codes have changed
since then, and the diversity by region and country, so rich at the time, has faded away.
It’s now often hard to tell the inhabitants of one continent from another. Perhaps, try-
ing to view it optimistically, we’ve traded a cultural and visual diversity for a more var-
ied personal life—or a more varied and interesting intellectual and technical life.
At a time when it’s difficult to tell one computer book from another, Manning cel-
ebrates the inventiveness and initiative of the computer business with book covers
based on the rich diversity of regional life of two centuries ago, brought back to life by
Jefferys’ pictures.
xxiii
Introduction to specification
by example and Gherkin
How well we communicate is determined not by how well we say things, but how well
we are understood.
—Andy Grove
The money is all on the right [side of the product life cycle], in the area of certainty
[where the product is mature]. I work on the left, with uncertainty. I’ll never be rich.
—Chris Matts
1
2 CHAPTER 1 Introduction to specification by example and Gherkin
Delivery teams are naturally competent in delivering software the right way. As an
industry, we’ve developed tools, standards, and methodologies that make our designs
beautiful and usable—and our code performant, secure, and easy to maintain. We
keep getting better at refining and reinventing our best practices.
“The right software” part, though … what does that even mean? Every time I
explain to someone what this book is about, I tell them that, as programmers, we’re
taught to write code—algorithms, design patterns, abstractions. Or, as designers, we’re
taught to design—organize information and create beautiful interfaces. But when we
get our entry-level jobs, our employers expect us to “deliver value to our clients.” And
the client may be, for example, a bank. If I’d been working for a bank when I started
my career, it would have quickly come up that I know next to nothing about bank-
ing—except how to efficiently decrease my account balance. So I would have had to
somehow translate what was expected of me into code. I would have needed to build a
bridge between banking and my technical expertise if I wanted to deliver any value.
“This,” I say, “is what the book is about: building bridges between technology and busi-
ness.” Over the course of multiple projects I’ve had the privilege to work on, I’ve come
to believe that these bridges can only be built with empathy—understanding other
people’s problems—and inclusive communication.
Even though engineers should be good at building bridges, our industry seems to
have a problem with delivering the right software. In practice, delivering the right soft-
ware requires securing the right requirements. I’ll talk more about requirements in a
moment. For now, I’ll say the following:
A 1994 study showed that 31.1% of projects were canceled before they were
completed, and 52.7% of projects cost 189% of their original estimates.1
In larger companies, rare successful projects had only 42% of the originally pro-
posed features.2
In 2000, IBM and Bell Labs studies showed that 80% of all product defects are
inserted at the requirements-definition stage.3
1
The Standish Group, “The CHAOS Report” (1995), http://mng.bz/40M3.
2
Ibid.
3
Ivy Hooks and Kristin Farry, Customer-Centered Products: Creating Successful Products Through Smart Requirements
Management (AMACOM/American Management Association, 2001).
3
Requirements errors consume from 28% to more than 40% of a typical pro-
ject’s budget.4
Requirements defects account for the vast majority of the total cost of all
defects—often 70% or more.5
In 2008, almost 70% of companies surveyed set themselves up for both failure
and significantly higher costs by their use of poor requirements practices.6
What are the consequences? Commercial organizations across the European Union
lost €142 billion on failed IT projects in 2004 alone, mostly because of poor alignment
with business objectives or business strategies becoming obsolete during delivery.7 So
although we’re pretty good at maintaining our technical standards of excellence, we
apparently still have a lot to learn when it comes to understanding what businesses
need from us.
In this chapter and throughout the book, I’ll introduce you to a selection of
bridge-building methods for translating business objectives into working software
that, in my experience, results in great and meaningful products and services. This
chapter will begin your in-depth journey of learning to write executable specifications in
Gherkin according to the key practices of specification by example.
Specification by example (SBE) is a collaborative software development approach
that facilitates collaboration by illustrating software requirements with concrete exam-
ples and automated acceptance tests. Because SBE is a process, you’ll need some tools
that will help you implement that process. This is why you’re going to learn Gherkin.
Gherkin is a business-readable, domain-specific language that’s easy for nontechnical
folks to understand. As such, it makes translating requirements into code easier.
In a way, the book is an advanced Gherkin tutorial with some product-design ambi-
tions. I’ll talk more about the reasons for choosing Gherkin later in the chapter. But
when I was first learning SBE’s key patterns, I found that, although locating material
on automated acceptance tests and eliciting better requirements is easy, there aren’t
many resources available on writing great executable specifications. By great, I mean
well-written and easy to read in terms of sentences and words, not code. That makes
my ambition small, because I chose a specific topic for the book. I care about making
sure that well-elicited requirements aren’t misrepresented by poorly written specifica-
tions. At the same time, I realize that writing executable specifications is a cross-
disciplinary matter. Whenever I can, I’ll talk about making your requirements better
and more specific with clever Gherkin techniques. Other times, I’ll point you toward
specific books that talk about requirements, product design, or marketing, in hopes
they will answer your further questions.
4
Ibid.
5
Dean Leffingwell and Don Widrig, Managing Software Requirements: A Use Case Approach, 2nd ed. (Addison-Wes-
ley Professional, 2003).
6
IAG Consulting, “Business Analysis Benchmark” (2008).
7
Gojko Adžić, Impact Mapping (Provoking Thoughts, 2012).
Discovering Diverse Content Through
Random Scribd Documents
The hatch swung wide, and night poured in ... the blistering, dust-
choked desert night, pale with the light reflected by looming Venus'
unbroken mists and billowing cloud-banks.
Somewhere, out there, were primitives in hideous metal masks, so
fierce that even the almighty Federation at last had forbidden this
satellite to all men.
Perhaps, too, here were robots ... towering metal monsters from
beyond the stars, brought down by destiny in its strange workings to
save the outlaw worlds.
Or perhaps not. Perhaps this seared and storm-swept ball held only
the end of Wassreck's dreams ... and death.
Jarl Corvett smiled a thin, wry smile. At least, he'd know the answer
soon.
Breathing deep, he swung out through the hatch and dropped down
on Womar....
CHAPTER VIII
Morning on Womar.
The hot winds were flames whipping at Jarl's face, and the driven
sand slashed and burned like pelting needles. Slowly, the night died
and, off to his right, the sun rose—fiery, incandescent. Venus, to his
left, stretched in a great, shining arc as far as the eye could see.
Dust swirled about him in smothering clouds. He wallowed through a
sea of powdery, ankle-deep grit where rocks shoved up in hidden
reefs to trap him. Hollows loomed in his bloodshot eyes like chasms,
and hillocks grew to mountains up which he toiled on hands and
knees, choking and gasping. His cheeks were rasped raw now, his
lips all parched and cracking.
Still he lurched onward—lost and disoriented, without destination.
But not without goal.
A goal—? He laughed aloud—the muddled, drunken laughter of a
heat-twisted brain. Yes, he had a goal; but it was the goal of utter
madness.
For somewhere in this blazing waste, Womar's primitives lay waiting.
He knew; he'd seen them charge before. How they sensed an alien's
coming was a secret no stranger had ever fathomed. But sense it
they did; so they'd hide and wait, till at last the sun and dust and
slashing wind had done their work and the invader fell and could not
rise.
Then, and then only, they would come, from whatever dark, hidden
maze they came from. Their blood-thirsting screams would rise
above the howling wind, and their hideous metal masks would flash
like mirrors of madness in the white flame of the sunlight.
And after that ... Jarl choked on his parched, swelling tongue. After
that, there would come other things ... things no alien being had
survived, rites so awful as to make this blazing wilderness seem a
cool Elysium.
What was left, they'd spread out in neat display as their own black
warning to other straying strangers.
That was his goal: that the primitives should seize him.
Yet now, as the moment neared when he would fall to rise no more,
he knew of a sudden how mad it was. Not even Ceresta and the
raider fleet were worth it; not even freedom. Nothing could be worth
it.
But now, there was no turning back. He'd come too far; he'd pressed
his luck one time too many.
Swaying and staggering, he came to another, deeper hollow, where
bare rock showed through the dust and sand along the slopes in
serrate ledges. At the bottom, the drifting grit lay in smooth-swept
whorls like a hill-bounded cove where ripples had somehow been
trapped in motion, frozen into the surface of the water.
He laughed once, wildly, and lurched ahead; then slipped and
pitched forward, tumbling headlong. Rocks gashed at him as he fell
—tearing, clutching, as if even they shared the primitives' hatred for
all aliens.
Stunned, choked, half blinded, he came to rest at last at the edge of
the pool of rippled sand. Here, away from the sweep of the wind,
the heat bore down like a smothering blanket. Jarl's brain reeled. He
could draw no strength from the air that scorched his lungs. He
knew instinctively that no being of his race could long survive the
drain and pressure.
Frantically, he dragged himself up and wallowed forward, out onto
the sand.
Even as his feet sank into the sifting dust, he knew he should have
gone the other way, back up the slope. But by then it was too late.
Deeper he sank, and deeper, till the loose sand was thigh-high about
his legs.
Man-sized, the thing was like no animal Jarl had ever seen before,
with brown, bead-like skin and tiny brain-case. Off-hand, he judged it
to belong to some desert species native to this grit-drifted hell-hole,
Womar.
The primitives carried it to the altar; clamped its spradled body face
up atop the stone with the ancient shackles. The din of the crowd
was deafening.
Somewhere on high, a great gong sounded. The shouts and
screaming died away.
In the same instant, a new door opened in the bulkhead. Another
primitive stepped forth; paused, posing.
This creature's garb was different from the others! His metal mask
was ebon. So were his plumes, his girdle. A great scarlet jewel was
set in the forehead of the dead-black helmet. His hands were gloved
in sleek jet gauntlets.
Now, while Jarl watched, the posing primitive's arms came up, till the
gloved hands were high above his head, displayed, as if they were a
symbol.
The throng below stood frozen, rigid.
The black-masked primitive strode forward, to a spot between the
altar and the shining metal tub. Swiftly, he lifted the lid that capped
the drum-like vat.
Two of the altar-crew rushed forward and held it open for him.
Another held out a strange implement that, to Jarl, looked like some
crude sort of grease-gun.
The black-masked figure dipped the nozzle of the thing into the tub
and worked a plunger, then turned to the struggling life-form
shackled to the altar. Deftly, he stabbed the snout of the tool into a
spot below the creature's breast-bone.
The captive tried to jerk away, to no avail. With smooth precision, the
primitive in black pressed home the plunger.
A gusty sigh ran through the throng about the platform. It came to
Jarl that he was cold as ice despite the heat and blazing sun. The
musty, sweetish smell he'd caught before swirled about him, even
stronger.
The black-masked figure straightened. With quick, sure movements,
he twisted at a fitting, then lifted away the tool. The nozzle he left
sticking in the creature on the altar. It thrust up from the hollow
below the breast-bone like the hilt of a deep-plunged dagger.
The two primitives by the wheeled tub let the lid fall back. Turning,
one darted to the bulkhead door. When he came out, he bore a
flaring torch.
New silence fell upon the crowd, so complete that the altar-
crewman's footsteps rang and echoed in the stillness.
He passed the torch to his black-masked fellow.
Black-Mask swung the flaming brand on high and, turning, faced Jarl
Corvett. His voice thundered, harsh and guttural.
Jarl stood rock-rigid. The words he could not understand. But the
threat, the menace—they needed no translator.
Pivoting, the primitive stepped back from the altar; thrust out the
torch till its flame touched the tip of the nozzle protruding out of the
shackled prisoner's chest.
Of a sudden Jarl's whole body was drenched with icy sweat. He could
not move; he could not breathe. The tales of horror he'd heard so
many times swirled through his brain.
For an instant, nothing happened.
Then, all at once, there was a puff of sound, a flash of flame above
the captive. A great black jet of smoke shot high into the air, out of
the nozzle.
The life-form on the altar gave one shrill cry that was agony,
incarnate. Its body jerked and twisted, lashing against the shackles in
a frenzy.
The primitives went mad. The huge room rocked with their howls and
screamings.
But Jarl Corvett hardly heard them.
He'd seen cruel death before, on a dozen far-flung planets.
But this....
For while he watched, thin lines of fire were racing along the doomed
sacrifice's writhing body. In a spreading network, the flesh itself was
bursting open, flames leaping up in a thousand places.
In a searing flash, the truth came to Jarl: The creature's blood was
burning!
He sagged in his escort's grip, and retched—shock-stunned, sick with
horror.
But the primitives who flanked him jerked him upright. An open hand
stung his face with brutal slaps.
The spell that gripped Jarl broke. Numb, tight-jawed, he forced
himself to look again upon the altar.
The shackled creature lay there still, a charred, contorted horror.
While Jarl watched, the monster in the ebon mask stepped back and
passed the torch to the altar-crewman who had brought it. Other
primitives unclamped the gyves and dragged the corpse away.
Again Black-Mask brought up his hands. Again the crowd's
tumultuous hubbub faded.
Black-Mask's hands came down. He swung about till he faced Jarl.
Imperiously, he gestured.
Jarl's captors dragged him forward. The torch-bearer stepped quickly
back, out of their path.
Fear was in Jarl Corvett, then—a fear that verged on shrieking terror.
His body seemed like a thing apart—a statue carved from living ice,
with no relation to his being.
But hate came with the terror, a flaming hate that grew at every step,
till its white-hot fire ate up the fear and burned away his sickness and
his trembling. Of a sudden he was himself again. He sucked in air.
Without volition, his muscles stiffened against the digging fingers of
his savage escort.
They jerked him up short before the altar. The black-masked figure
shook a jet-gloved fist and shouted guttural imprecations.
The last shreds of Jarl's terror vanished, washed away in the flood of
his tormentor's fury. Out of nowhere, a thing that Wassreck once had
said came flashing to him: Hate is the face of fear, not courage.
That hate which showed in the primitive's every line and gesture—it,
too, was born of terror ... a welling fear of all and any beings who
came down from the skies to Womar.
Jarl laughed aloud, it was so funny—that he and this other should
face each other so, in deadly menace, when within they were only
quivering twins of terror.
And as he laughed, his own hate died the same swift death to which
his fear had fallen. A grim, bleak poise replaced them both. For if the
primitives, in their hearts, felt the self-same fear that he had, there
was still a chance for recklessness to blaze a path through this
wilderness of desperation.
His laugh cut short the black-masked figure's shouting. The primitive
stared at him, as if unbelieving.
Cold-eyed, cold-nerved, Jarl drew himself to his full height. Rigid, he
probed for some—for any—last wild gambit.
But Black-Mask, too, was straightening. He cried out fiercely to his
helpers.
They shoved Jarl forward.
As they did so, the primitive beside the huge, wheeled tank lifted up
the lid.
Jarl glanced down into it.
The vat was full. The awful broth almost lapped the brim. From it, in
sickening waves, rose the sweetish, cloying fumes Jarl had come to
associate with the primitives.
Black-Mask leaned forward. Shouting again, he lashed out. His jet-
gloved fist raked at Jarl's face.
Instinctively, Jarl rocked back. New tides of black despair washed
through him. What could he do, locked in his captor's grasp, hemmed
between tank and torch-bearer, black-masked fiend and blood-
drenched altar?
Tank—and torch-bearer—!
That link ... in an instant it grew to a searing, surging flame, hotter
even than these creatures' own hell-fire brew.
Spasmodically, Jarl twisted round.
The primitive with the blazing brand still stood statue-like at the
corner of the great stone slab.
Black-Mask snarled another order. His henchmen jerked Jarl back—
lifting him, swinging him upward, till he hung suspended above the
altar.
By instinct, Jarl wrenched against them; felt them, too, stiffen in the
face of his resistance.
But if he could not fight them, perhaps there was another way....
Before they could lower him to the slab, he let himself go limp, loose-
limbed and unresisting as any corpse.
It broke their balance. He hit the stone with a sodden thud ... lay
there unmoving, head lolled back.
For the fraction of a second their grip relaxed.
It was Jarl's moment.... Savagely, then, he lashed out with all his
might, in a violent spasm of arms and legs and torso. His feet
smashed the metal mask into one primitive's face. His elbow sank
fist-deep in another's midriff.
The restraining hands fell from him.
Desperately, he threw himself across the altar, toward the torch-
bearer. Before the creature could recoil, Jarl was upon him—smashing
him down with fists and knees and shoulders; snatching the flaming
brand out of his hands.
Falling over each other in their haste, the others lunged to seize Jarl.
But instead of fleeing, he leaped back onto the altar. There was a
prayer in his heart—his heart in his mouth. With a wild curse, he
hurled the torch straight for the vat of hell-broth.
It struck the open lid, then plunged on down into the liquid.
But even as it fell, the fumes were flaring. Flame and smoke leaped
up in a roaring column. A cloudburst of liquid fire sprayed out in all
directions.
The cries of the primitives exploded into one great scream of pain
and terror. As Jarl threw himself flat, with the altar-stone between
him and the tank, he glimpsed the reeling, flame-cased figure of his
jet-masked tormentor—stumbling, falling.
Then the black smoke billowed out in nauseous, all-obscuring murk
that swallowed even the thundering holocaust that still roared around
what had been the tank of liquid.
Jarl rolled from the wheeled platform on which the altar rested. Bent
double, he raced through the choking haze for the bulkhead. In
seconds, he was fumbling his way along it to the nearest doorway ...
slipping through and ramming the heavy bolt home behind him.
Ahead, a shaft and spiral stairway loomed. Panting, he sprinted
upward, past level after level.
The stairway ended against another metal door.
The outlined figure of one of the mighty warrior robots was blazoned
on it.
Jarl's heart pounded harder.
Shoving open the hatch, he half-fell inside and locked it, too, behind
him.
He found himself now in a control room. Panels thick with dust lined
three of its walls. The fourth was a single massive, transparent,
plastic plate through which occupants could look out across the great
hold where the robots were massed ... where brief moments before
Jarl Corvett had stood face to face with hideous death.
Stumbling to it, Jarl stared down upon the smoke-smirched scene
below. Flames still were leaping about the platform. Here and there,
he could catch dim glimpses of primitives' hurrying figures as they
ran among the metal monsters.
Overhead, the dense black smoke almost hid the roof. Eddying,
slowly rising, it swirled out through the cracks and rifts in the ancient
hull, up into the blazing, sunlit heat of Womar's desert sky.
Of a sudden Jarl was weak to the point of sickness. Numbly, he
turned and surveyed the rest of the control room with a closer
scrutiny.
Bank after bank of dials and indicators marked with strange symbols
leered down at him like a host of huge blank eyes. Against the far
wall, units with focussing plates like the viziscreens of his own solar
system were ranged in a precise row.
And everywhere—on every panel, every instrument—were stamped
neat, stylized images of the warrior robots.
The numbness in Jarl grew. He knew instinctively, without question,
that this was the place sought by Ktar Wassreck—the brain, the nerve
center, for the shining metal monsters that were to have saved the
warrior worlds.
But now that he was here, what could he do? His own ignorance was
a tight-drawn, all-concealing blindfold.
With time enough, and skill and patience, he might perhaps have
worked his way through to an understanding of how the robots were
controlled. But time was the one thing he did not have. Second by
second, the precious hours were ticking by. As far as he was
concerned—lacking knowledge, training, understanding—he might as
well have been on Venus.
And so the warrior worlds would die. The Federation fleet would
sweep down on Ceresta.
Already, the three days given by rey Gundre were running out....
Jarl shook in the grip of helpless, frustrating fury. He had come so
far; yet now that he was here, he could do nothing.
He cursed aloud; and as he did so, a new sound drifted to him.
A familiar sound ... the sound of a space-ship's blasting rockets.
He whirled; leaped back to the broad expanse of transparent plastic
panel.
He reached it just in time to see a great section in the top of the hull
above the hold suddenly buckle and crash down. Sunlight streamed
through smoke and dust.
The roar of the blasting rockets echoed louder. A moment later,
another huge chunk of hull tore loose and fell. Then another, and
another, till the hole showed like a spreading canopy of sky above the
robots.
Below, the last of the primitives were fleeing. Breathing hard, pressed
tight to the observation panel, Jarl watched and waited.
The rocket-roar took on the peculiar whistling sound that went with
ramping. Before Jarl's eyes, a ship dropped down stern-first into the
hold and rocked to a landing amid the debris and towering robots.
Now the ship, as well as the sound, was suddenly familiar.
Too familiar.
It was the flagship of High Commissioner rey Gundre's mighty
Federation fleet!
CHAPTER IX
Jarl Corvett lay flat on his belly on the floor of the room that housed
the brain of the warrior robots, staring bleakly down into the hold
below.
Then, again, he twisted, shifted. This endless waiting—it was enough
to drive a saint to murder.
How long had it been—two hours—or two eons?
It was a time for thinking—because there was nothing else to do but
think. Escape was not even a thing to dream about by daylight, with
primitives still roving through these warrens. Tonight, perhaps, a man
might find a way; but for now there was only ... thinking.
So Jarl lay there on the floor, sweating and shifting. Narrow-eyed, he
studied the motionless bulk that was the flagship, and asked himself
a thousand questions.
Questions he could not answer.
Why would rey Gundre, of all the players in this mad drama, come
roaring down on Womar? What did he seek? How had he found his
way here?
Above all, what was he waiting for this way—jets dead and hatches
still unopened?
And for him to pick the robot-hold of this ancient ship to land in....
Unless, by some wild chance, Ktar Wassreck had escaped—
Even the thought made Jarl's heart leap.
But then it quieted down again, drained by the dark, dull
hopelessness within him.
The time for dreams was dead and gone. For all his bravado and
boasting he, Jarl Corvett, had failed the man who'd come for him on
Horla. By now, at best, Ktar Wassreck lay a corpse in the chill horror
of Venus' slan-chambers.
Pain welled up in Jarl, and with it came new sickness. Choking, he
buried his face against his arms and cursed the day his mother bore
him.
But his mind would not stay still. Drearily, he thought about the
others.
About Ungo and Ylana, Bor Legat, Sais....
It only brought new anguish. For he'd failed them, too; failed them
one and all ... Ungo, friend of friends, who'd trusted him beyond all
others ... Ylana, vision of golden loveliness—betraying her world and
her own father just to save him ... Bor Legat of Mercury, murderous
and merciless, yet loyal in his twisted way to the raider cause.
And Sais.
Dark Sais, Ktar Wassreck's daughter. Even in this place, Jarl could
recapture the fragrance of her hair, the pulsing pressure of her
perfect body. She was all woman....
And all Jarl Corvett's.
So he'd brought her down to this wild world and left her to the
mercies of Tas Karrel's raider rabble.
Cursing again, he writhed about and once more stared up at the
banks of panels.
But that was all that he could do. He did not even dare to rise and
experiment with the controls spread out before him, for fear someone
below would glimpse the movement.
Then, from the hold, there rose a sudden clatter.
Jarl swung back to the plastic window, craning and peering.
Below, the main hatch of rey Gundre's ship was opening. Blue-
uniformed Federation crewmen poured out, weapons glinting, and
took up positions amid the debris.
In the same instant, the high whine of a light, fast-traveling carrier
cut through the hold.
A moment later, a slim, swift craft dropped through the gaping hole in
the ancient hull and set down for a landing.
Its prow was marked with Bor Legat's black lightning-flash insignia.
Incredulously, Jarl dug his nails into the plastic.
The carrier came to rest. Its hatch swung open. A burly dau leaped
out.
Instantly, the Federation crewmen came to their feet and crowded
round.
But the dau ignored them. Turning, he gestured to someone still
inside the carrier.
Another figure dropped down ... a figure with shimmering golden hair
and a scarlet tunic that emphasized the slim, ripening womanhood of
the one who wore it.
Ylana—!
Jarl caught his breath. His palms were suddenly slick with sweat, the
muscles of his chest constricted.
While he watched, the girl moved calmly to the Federation flagship.
The dau swung back aboard the carrier. The hatch clanged shut. A
moment later, the craft was in the air again, lancing out of the
ancient hull and away.
Ylana disappeared into the flagship.
Jarl sank back, trembling. Brow furrowed, lips dry, he tried to make
sense of this new maneuver.
It was plain now what had happened to the girl, and Ungo. Bor Legat
had captured them that night, back on Ceresta. Now he was carrying
out his plan to trade her life for time, and the desperate chance that
somehow Ceresta might be defended.
But why should he meet rey Gundre here? What had led the two of
them to choose this shattered hulk for their rendezvous?
Jarl looked down once more.
More crewmen were hurrying from the flagship—clearing the debris
from around the ramping-spot; setting up a perimeter studded with
heavy weapons.
They planned to stay a while; that much was plain.
But why? Why, why, why—?
The question rang in Jarl's brain like a tolling bell. But he still could
find no answer.
Another hour dragged by. Slowly, the shadows of ship and robots
lengthened. Hunger gnawed at Jarl's belly. He moved this way and
that, trying to work the ache from his weary muscles.
Down in the hold, the crewmen moved more slowly. Yet even up
here, high above them, Jarl could sense a rising tension. It showed in
the way they kept looking towards the burrows into which the
primitives had fled ... their sudden starts, their readiness with their
weapons.
He hunched forward, narrow-eyed, resting his weight upon his
elbows.
Then there was a flurry about the hatch as a Thorian officer barked
orders. The crewmen snapped to smart 'attention'.
A moment later rey Gundre himself strode down the ramp, a lean,
imposing figure. Ylana followed, close behind him.
Together, they moved about the perimeter's defenses, then started
back towards the great ship's hatchway.
But now Ylana hesitated, and there was a brief moment of
discussion. The golden hair rippled as she shook her head and
gestured.
Her father's shoulders lifted in a shrug. Pivoting, he went on up the
ramp without her.
Ylana turned. Almost aimlessly, she wandered out among the robots;
paused and leaned back against a gigantic metal foot, watching the
blue-uniformed crewmen as they toiled and sweated.
The shadows grew longer. The crewmen ceased to heed her
presence.
She moved, then, swiftly, silent as the deepening dusk—sliding
around the foot in one quick motion; darting past an unmanned post
of the perimeter defenses to a spot out of view amid the tangled
debris.
Jarl went rigid. Twisting, he worked his way along the observation
plate to a place where he again could see her.
But already she was on the move again, creeping on hands and
knees, farther and farther from the flagship.
Where was she going? Why had she broken out of the circle?
And what if the primitives should catch her?
The thought brought Jarl to his feet, shuddering.
Besides, with the thickening gloom down in the hold, perhaps this
time he could get an answer to his questions.
With one last glance to chart the course that the girl might follow, he
ran to the door and threw back the bolt; then slid out and felt his
way down the black well that was the spiral stairway.
In seconds he was at the bulkhead door. Opening it a crack, he
weighed his chances.
The crewmen still were busy with their tasks inside the network of
defenses. The pools of shadow hung all-enshrouding. Flat on his
belly, he wriggled forth and crept along the wall in the same direction
he'd seen Ylana take.
Out here, once more he caught the cloying, sweetish scent of the
hell-broth, mixed with smoke, and the knot in his belly tightened. The
shadows loomed like grim reminders of the primitives' dark fury.
He moved faster.
Slowly, Jarl smiled. He knew there was no need for other answer. And
words could be such futile, empty things.
Her hand in his, together they crept on through the debris; up
through a broken port set high in the side of the ancient hull.
Then they were out at last, into the windswept wastes of Womar's
deserts ... stumbling on through the sand and rocks, mile after mile.
They had no breath for talk, no time for resting. A pause might bring
the primitives down upon them.
Jarl gripped his brace-bar club and prayed.
Then light came dimly, herald to another blazing desert day. But with
it, too, rose the lance-sharp outlines of the prows of two great raider
ships, ramped amid a wilderness of jutting crags.
Jarl's heart leaped. Quick jubilation surged within him. "Ylana—!"
The girl screamed.
Jarl whirled—club up, fists clenching. "What—?"
But again, there was no need for words, for the girl was pointing
back across the endless, dust-deep waste through which they'd come
to an ominous moving figure.
The figure of a mighty warrior robot, a metal giant that loomed like a
monstrous, man-made nightmare against the clear blue of the
morning sky.
Jarl rocked—incredulous, unbelieving. His club-arm sagged down to
his side.
With every fleeting second, the metal monster towered still larger,
closer. Its massive legs swung out in wallowing, league-long strides,
closing the gap between them.
Ylana cried out again. She darted to Jarl; clung close against him,
shaking like a slim reed in a wind.
He tore free from his shell of shock and frozen-fascination. Sweeping
the girl up, he raced for the nearest outcropping of jagged rock.
The giant from beyond the void stalked nearer. The clanking of the
great joints rolled down on them like distant thunder.
Ylana sobbed, "My father—he must have found that I was gone—"
Jarl did not answer. Drawing her down behind the rocks, he waited,
as for the Juggernaut of fate itself.
The monster thundered closer, great feet grinding stones to powder
with every stride. The rising sun's rays transformed the mighty,
gleaming torso to a living statue carved in orange-gold fire.
Ylana shook with a new wave of paroxysmal panic. It took every
ounce of Jarl's control to hold himself from leaping up and running—
tearing his heart apart in one last frantic, desperate flight.
But what good would it do to run, when this monstrous menace could
overtake and pass him in a single stride?
Heart in his throat, he pulled Ylana close against him and waited in
rigid, aching tension for his doom.
Another clanking step ... another; and the robot towered above
them, mountain-high.
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
ebooknice.com