Creationism versus Natural Selection 37
In the beginning the Product Owner created the Product Feature Request (PFR). And the Product Feature Request was without form, and void; and darkness was upon the face of the deep. And the Spirit of the Requirements Expert (RE) moved upon the face of the PFR. And the RE said, let there be requirements: and there were requirements. And the RE saw the requirements, that they were good: and the RE divided the light from the darkness. The RE called the light the functional requirements and the darkness was called quality attributes. And the functional requirements and the quality attributes were the first four months.
The Architect said, let there be a Software Specification Document (SSD) in the midst of the deep, and let it divide this software from that software. And the Architect made the SSD, and divided the software that already existed from the software that was to be, and it was so.
You can probably guess where this is going…
On the Seventh day, the software shipped and all was good.
Did you ever notice that there are a whole lot of words in Genesis that assume a whole lot of understanding? Like Waters, Heaven, Earth. Obviously these are understood a priori.
If you tried to write some code for Genesis, you would have some gaping holes. Turns out, Genesis does not include a Data Dictionary. Everything was created in its perfect form in those mythical 7 days. No chance to go back and change anything.
Sometimes it seems like this is how we’re expected to develop software. Even though we keep trying to do this, on average, this approach just doesn’t hack it.
Let’s call this the Creationism approach to software development. Everything is known up front and created in its perfect form.
If only it were so simple or even possible.
This is how the coding genesis chapter would have been written if we were using TDD:
In the beginning, the Product Owner identified a Need. And the Need was without form, and void; and darkness was upon the face of the deep. And the Spirit of the Team (Team) moved upon the face of the Need and asked some questions.
And the Product Owner added clarity to the need and the Team made the List and it was OK. The team worked on the List by first expressing What They Wanted (WTW), and they built the Software to make WTW be true. Of course the List was not perfect, so the team maintained it. When they thought they were done with the List, they showed what they had to the Product Owner.
Repeat.
In this approach, which we’ll call the Natural Selection approach, we try things. Unlike an omniscient Deity, the Product owner generally does not know exactly what is needed; they might not even know what some words mean. The Product Owner and Team work together to develop a solution. As the team works with the Product Owner, I’d hope they develop a suite of automated tests, preferably taking a Test First approach.
In a Creationism-based system, we clearly know what we’re doing and we even know what all the words mean. Therefore, it is OK to wait until the end to test. The level of clarity is such (again, we have omniscience working for us) that the only reason we need to test is because mere humans are solving a problem. And as we know, while an omniscient Deity does not make mistakes, we poor humans do.
Not so when using the Natural Selection approach. Whereas before we use a priori knowledge to build the system – which by its very nature is infallible, Natural Selection is all about trying things out. We build our understanding and express it in tests. When a system grows, we make sure that we do not break the tests (these are both the natural resources and environment). In some cases, the tests no longer work (the natural resources dry up or the environment changes). We need to change the tests to accommodate a better understanding of our system. The production code (that which is being selected) either survives under the tests or it gets changed. Sometimes new forms of the production code can exist in the same environment (refactoring).
So if you had your druthers, would you work on a Creationism-based project or a Natural-Selection-based project?
Well, I would definitely make sure to put the correct URL in my RSS feed… you know, in case someone reads the article on (say) Google Reader and then tries to click on it and see if there are any comments :)
And you should realize how much I wanted to make this observation – I actually used the search facility :P
@mason0507
thank you for your sharing,mason0507
Avoid getting in a hurry to get a present for ones mom. Start searching ahead of time; waiting until the last second to find a found is often getting problems.Spending some time to learn what an individual’s Mum would like as well as might help guarantee that your gets the top found. If you opt for necklaces regarding Mom online will assist cut down the amount of time necessary to discover the proper jewelry pertaining to mama despite the fact that have waited through to the very end. Therefore when your going looking for mother’s day, on the liner where to begin from.
The RE called the light the functional requirements and the darkness was called quality attributes. And the functional requirements and the quality attributes were the first four months.
Beauty of purchasing on the internet is you are free to discover anything at all the actual gifts, where in a store it may be challenging type on the other hand his / her inventory to discover what’s right. Mothers really like presents that are unique. Attempt to found your own mum using a surprise that may be individualized, as a possible case in point an engagement ring using their brand imprinted in it. Precious metal jewelry lead to great products since they immortalize your mom?¡¥s identify throughout gold. A new precious metal pendant and a durant creates a fantastic presents to your mother, along with items which can be usually overlooked .
Well. when you want to finish this. You should learn it.
As the Apple iphone 4 bumper is taken off the marke, will white iphone 4 available soon?
Sometimes new forms of the production code can exist in the same environment (refactoring).
glad to see you!
glad to see you!
glad
Keep your Contacts and SMS safe! Actually, the contacts and SMS have more values than a cell phone’s own value. You can pay money to buy a new iPhone, but cannot buy your lost contacts and SMS back. So it’s important for you to backup your contacts and SMS in iPhone. And we recommend you backup contacts and SMS regularly. Our backup software can help you take a snapshot for your contacts and SMS. Your important personal information will be never lost.
This is a very intriguing post, I was looking for this knowledge. Just so you know I located your blog page when I was looking around for blogs like mine, so please check out my site sometime and leave me a comment to let me know what you think.
To be, or not to be- that is a question.Whether ipad bag tis nobler in the mind to suffer The slings and Game Controllers arrows of outrageous fortune Or to take arms against a sea of troubles, And USB Gadgets by opposing end them.55555
I like this post. A really good one. Thanks guys. roof nokomis
Just wanted to grant you a shout from the valley of the sun, great information. Much appreciated.
Our company is engaged in the professional manufacturer of damper, air cylinder, oil cylinder, and hydraulic station. The company has many year’s production experience and strong technical power.
i like this article. Thanks…
Gerçek kisilerle sohbet ederek okey oyunu oyna ve internette online oyun oynamanin zevkini çikar.
This solo hd of headset timbre and its appearance style are very alike—again, very thin. beats solo hd voice very open seem a bit too thin, Fabulous Monster Limited Edition GOLD low frequency partial hard, descend not beautiful but speed feeling good. discount solo hd hf performance is good, accurate and not mellow, intermediate frequency performance is regular. Overall Classic Monster Powered Isolatio black voice more features, more suitable for listening to electronic music or part of the pop.
Thanks for give this information . nice 1 artical
very nice blog.. i love sharing opinion.. i really love this site,, i like this post.. and thank you for sharing.
I am sure I’m going to sell it one of these days, check egl_comm_sales ! Thanks
thank uuuuuuu very much ^^
These christian louboutin patent leather pumps are just the same as selling in the franchise store.Or even better. Quite cheap christian louboutin leather platform pumps.I could say this is the best one I have ever ordered online.
The article has been finished.
i really love this site,, i like this post.. and thank you for sharing.door to see my ass, it is embarrassing to make way. I comforted his girlfriend, said never mind, we are familiar, lhigh quality headphones new design headphones
Wonderful Legal Assistant Job Description technology is visible in this blog that Director of Operations Job Description to using the nice services in this blog Accounting Job Description This is really superb info is visible in this blog that to using the great technology in this blog and wonderful technology is visible in this blog Graphic Designer Job Description I had really satisfied by the nice technology in this blog
I fancy that no good ideas upon that campaign will be mentioned at any time that did not receive their share of consideration by General Lee.
i really love your amazing and nice articles
The website looks really cool and funny. I am very glad I signed in. I am sure i will have great time here.
I wanted to thank you for this great read!! I definitely enjoying every little bit of it Smile I have you bookmarked to check out new stuff you post..
Hi… that was great stuff.. I really like reading on this subject Could you tell me more on that… I love to explore
Useful information shared..I am very happy to read this article..thanks for giving us nice info.Fantastic walk-through. I appreciate this post..
This has been great level of information out there
Creationism versus Natural Selection 35 hoo,good article!!I like the post!28
Creationism versus Natural Selection 36 good post161