December 12th, 2009 by Moti Karmona | מוטי קרמונה · 2 Comments
This is my recommended check-list for high level design review.
*********************************************************************** *** keep it simple and make sure it answers all the requirements ***
***********************************************************************
Reverify your Requirements
Functional specification, use cases and requirements are clear and publicly documented
August 10th, 2009 by Moti Karmona | מוטי קרמונה · No Comments
Recently, I have encountered an interesting paper (2006) about Chubby – Google’s (Paxos based) distributed lock service.
I was especially amazed by the observations made on the Google engineering capabilities and mindset inside a “formal” research publication.
Although one can easily get into a cynical state of mind reading this paper… I feel that this “pragmatic view” which combines a deep architectural and algorithmic know-how with keen understanding of the social factor in software development is exactly the key to create legendary software.
Anyway, very well written – highly recommended reading…
“Our developers sometimes do not plan for high availability in the way one would wish. Often their systems start as prototypes with little load and loose availability guarantees; invariably the code has not been specially structured for use with a consensus protocol. As the service matures and gains clients, availability becomes more important; replication and primary election are then added to an existing design.”
“Developers are often unable to predict how their services will be used in the future, and how use will grow. A module written by one team may be reused a year later by another team with disastrous results … Other developers may be less aware of the cost of an RPC.”
“Despite attempts at education, our developers regularly write loops that retry indefinitely when a file is not present, or poll a file by opening it and closing it repeatedly when one might expect they would open the file just once.”
“Developers rarely consider availability. We find that our developers rarely think about failure probabilities.“
“Developers also fail to appreciate the difference between a service being up, and that service being available to their applications.“
“Unfortunately, many developers chose to crash their applications on receiving [a failover] event, thus decreasing the availability of their systems substantially”
August 10th, 2009 by Moti Karmona | מוטי קרמונה · No Comments
“In the future everything will be augmented reality!”
I might be getting a little too old, visionless, pragmatic or pessimistic for this but I find it very hard to travel to the promised lala land, Gartner’s calls “peak of inflated expectations”.
When I encounter a new “Technology Triggers”, I skip right to the “Trough of Disillusionment” without really passing through the promising “peak”…
June 23rd, 2009 by Moti Karmona | מוטי קרמונה · 3 Comments
Preview
* Gemba (現場) in Japanese means “the actual place” or “the real place”
* Kaizen (改善) in Japanese means “improvement”
In business, Gemba refers to the place where value is created and the general notion is that the best improvement ideas will come simply from going to the Gemba (‘bottom-up’ vs. ‘top-down’)
The ‘Gemba Walk’ is an activity that takes management to the front lines to look for waste and opportunities a.k.a. to practice Gemba Kaizen which is similar to the “western” concept of MBWA (Management by Walking Around)
My view
As I have posted before “To master (/control) a software project you must be able to breathe the project – inhale the chaotic butterfly movements around you and exhale with the needed adjustments…” (The Software Chaos | Feb. 2008)
Although we wish it will be different… the best optimizations are “simply” very deep into the details and I have found out that a daily practice of ‘Gemba Walk’ can be very helpful to your project “well-being” (and I must admit that it took me several years to find out that my weird walk actually had a Japanese name/theory ;)
“less important than a gnat’s toot in a hurricane” :)
Seven tips for an healthy ‘Gemba Walk’ / MBWA
Visit everyone
Go alone – Daily standup meetings aren’t enough
Don’t bypass middle management e.g. don’t change priorities, requirements or design
Observe, ask and LISTEN
Be genuine, have fun and strive to catch your engineers doing something right and not something wrong (you are not the “fun-police” ;)
Share your dreams and vision
Don’t “disturb” the Gemba – Timing is everything…
What next?
Correlate the Gemba / ‘bottom-up’ observations with your ‘top-down’ understanding
June 22nd, 2009 by Moti Karmona | מוטי קרמונה · No Comments
Ken Schwaber was quoted giving this mind-blowing Scrum / mother-in-law allegory:
“imagine that your mother-in-law believed her daughter could do better… and then imagine that she moved in with you… that’s what Scrum is like”
Think about it…
Assuming we shouldn’t aim to completely avoid all errors in software development (since this is an inherent part of any human creation) but rather to spot them as quickly as possible before they become real problems.
And… since Scrum is indeed a very good “tool” to bring the problems in-your-face without any mercy in a daily manner.
So without even getting into the continuous improvement possibilities with mother-in-laws, I really liked the Mother-In-Law allegory :)
By the way, with great anticipation I have proudly joined the Haiku contest @ the famous Ktorium – Wish me luck! :)
* Speed!!!
* Theme Browser and Installer
* Ability to add Custom Headers
* New drag-and-drop widgets admin interface and new Widgets API
* New ways to customize dashboard widgets
* Syntax highlighting and function lookup built into plugin and theme editors
* Configurable Views on Management Pages
* Faster Loading Admin Pages