You Don't Know What You Don't Know Until You Take the Next Step 58
I was teaching our brand new Principles, Patterns, and Practices course recently (https://objectmentor.com/omTraining/course_ood_java_programmers.html) and I was starting the section on The Single Responsibility Principle.
I had this UML class diagram projected on the screen:
Employee
+ calculatePay()
+ save()
+ printReport()
I asked the class, “How many responsibilities does this class have?” Those students who had the courage to answer a question out loud (sadly, a rare subset of students) all mumbled, “Three.” I guess that makes sense, three methods means three responsibilities. My friend and colleague Dean Wampler would call this a first-order answer (he’s a physicist and that’s how he talks ;-) ). The number will increase as we dig into details. I held one finger in the air and said, “It knows the business rules for how to calculate its pay.” I put up a second finger and said, “It knows how to save its fields to some persistence store.”
“I happen to know that you folks use JDBC to talk to your Oracle database.” Another finger for, “It knows the SQL to save its data.” Another finger for, “It knows how to establish a database connection.” My entire hand is held up for, “It knows how to map its fields to SQLStatement parameters.” I start working on my other hand with, “It knows the content of the report.” Another finger for, “It knows the formatting of the report.” If this example was a real class from this company’s code base I knew I’d be taking off my shoes and socks.
Not that my answer was any better than the students’ answer, given the information at hand there can’t be a right answer because I didn’t provide any context for my question. I found our different answers interesting though. This particular company would have a design phase for a project where UML diagrams would be produced and discussed. How can any reviewer know if a class diagram is “rightâ€?
I have this belief (hang-up?) that you don’t really know what you don’t know, until you take the next step and actually use what you currently have. Looking at UML, we can’t really say that it’s going to work or that it satisfies the Principles of Object Oriented Design, until we take the next step, i.e., write some code and see whether it works or not. The devil is in the details and those devilish dirty details just can’t be seen in a picture.
Let’s take a step back. Before there is UML specifying a design, there must have been requirements stating a problem that the design addresses. Have we captured all of the requirements? Are they complete? Are they accurate? Are they unambiguous? How do you know? I believe that you don’t know, and worse, you don’t even know what you don’t know. You don’t know until you take that next step and try to design a solution. It’s only during design that phrases like, “What’s supposed to happen here,” or, “That doesn’t seem to have been addressed in the spec,” are heard. You don’t know what you don’t know until you take that next step.
It is very easy for everybody on a project to believe that they are doing good work and that the project is going according to plan. If we don’t know what we don’t know, it’s hard to know if we’re on the right track. During requirements gathering, business analysts can crank out user stories, use cases, functional requirements, or whatever artifacts the process du jour dictates they produce. Meetings can be scheduled and documents can be approved once every last detail has been captured, discussed to death, and revised to everybody’s liking. Unfortunately, until solutions for these requirements are designed, they are but a dream. There is no way to predict how long implementation will take so project plans are really interpretations of dreams.
The same danger exists during design. Architects can be cranking out UML class diagrams, sequence diagrams, and state transition diagrams. Abstractions are captured, Design Patterns are applied, and the size of the project documentation archive grows. Good work must be happening. But are the abstractions “rightâ€? Can the code be made to do what our diagrams require? Is the design flexible, maintainable, extensible, testable (add a few more of your favorite -able’s)? You just don’t know.
The problem with Waterfall, or at least the problem with the way most companies implement it, is that there either isn’t a feedback mechanism or the feedback loop is way too long. Projects are divided into phases and people feel that they aren’t allowed to take that crucial next step because the next step isn’t scheduled until next quarter on somebody’s PERT chart. If you don’t know what you don’t know until you use what you currently have, and the process doesn’t allow you to take the next step (more likely somebody’s interpretation of the process doesn’t let you take the next step), then we don’t have a very efficient process in place.
In order to not delude myself that I am on the right track when in reality I’m heading down a blind alley, I would like to know the error of my ways as quickly as possible. Rapid feedback is a characteristic of all of the Agile methodologies. By learning what’s missing or wrong with what I’m currently doing, I can make corrections before too much time is wasted going in the wrong direction. A short feedback loop minimizes the amount of work that I must throw away and do again.
I’m currently working with a client who wants to adopt Extreme Programming (XP) as their development methodology. What makes this difficult is that they are enhancing legacy code and the project members are geographically distributed. The legacy code aspect means that we have to figure out how we’re going to write tests and hook them into the existing code. The fact that we’re not all sitting in the same room means that we have to have more written documentation. We don’t know the nature of the test points in the system, nor do we know what to document and how much detail to provide in documentation. We can’t rely mostly on verbal communication but we don’t want to go back to writing detailed functional specs either. There are many unknowns and what makes this relevant to this discussion is, we don’t even know all of the unknowns. Rapid feedback has to be our modus operandi.
An XP project is driven by User Stories developed by the Customer Team, composed of Business Analysts and QA people. A User Story, by definition, must be sized so that the developers can complete it within an iteration. I have a sense how much work that I personally can do in a two week iteration, but I’m not the one doing the work and I don’t know how much of an obstacle the existing code is going to be. The Customer Team could go off and blindly write stories, but that would lead to a high probability that we’d have to rewrite, rework, split, and join once the developers saw the stories and gave us their estimates. To minimize the amount of rework, I suggested that the Customer Team write about twenty or so stories and then meet with the developers to go over the stories and allow them to give estimates.
My plan to get a feedback loop going on user story development worked quite well. The Customer Team actually erred on the side of stories that were too small. The developers wanted to put estimates of 0.5 on some of the stories (I have my teams estimate on a scale of 1-5. I’ll write up a blog entry on the estimation process I’ve been using.) so we combined a few of them and rewrote others to tackle a larger scope. We took the next step in our process, learned what we didn’t know, took corrective action, and moved forward.
Writing Customer Acceptance Tests didn’t go quite as smoothly, but it is yet another example of learning what didn’t work and making corrections. I advise my clients to write tests for their business logic and to specifically not write business tests through the user interface. Well guess where a lot of business logic resided – yep, in the user interface. We ran into the situation where the acceptance tests passed, but when the application was actually used through the user interface, it failed to satisfy the requirements. I’m very happy that we had a short feedback loop in place that revealed that our tests weren’t really testing anything interesting before the Customer Team had written too many FitNesse tests and the Development Team had written too many test fixtures.
Feedback is good. Rapid feedback is better. Seek it whenever you can. Learn what you don’t know, make corrections, and proceed.
I actually classify information about a project as follows:
1. Things we know (and know we know) 2. Things we know we don’t know 3. Things we think we know, but don’t (i.e. things we’re wrong about) 4. Things we don’t know we don’t know
Of course, you can’t know what goes into 3 and 4 (if you could, it wouldn’t be there!), but I believe you can make educated guesses about how much is in each category for a given project, and that this “ignorance estimate” can be valuable in planning and executing your project.
I’ve written more about this on my blog: http://simplyagile.blogspot.com/2007/10/classifying-information-or-what-we-know.html
@Nathan Henkel
I think Nathan Henkel is an alias for Donald Rumsfeld.
...
“There are known unknowns … [and] there are unknown unknowns”
Welcome to Freshstyleshop, the hottest urban clothing site on the net! We offer great products from Gucci sneakers, prada sneakers, LV shoes, True Religion Jeans and many more! Our selection of products are always increasing for the fact that we have new items added weekly to our selection. All products on our site are already marked down 40-60% off retail price. Freshstyleshop also backs all its orders with a 110% satisfaction guarantee, making sure that our customers are left satisfied with the hottest products on the net.
Employee + calculatePay() + save() + printReport()
Note that the responsibilities are all orthogonal – business, persistence and reporting. The three methods belong in different layers of the application.
Un, yes. Many times, we do not know how to do until we do it. You r right.
Well , the view of the passage is totally correct gucci mens ,your details is really reasonable gucci belt for men and you guy give us valuable informative post, size11 gucci sneakers I totally agree the standpoint of upstairs. I often discount gucci jeans surfing on this forum classic gucci wallets when I m free and I find there are so much good information we can learn in this forum!
How to convert AVI to iPad with best iPad Video Converter – AVI to iPad Best AVI to iPad Converter a professional iPad converter to convert avi files into iPad mp4 format, of course it can easily convert almost 100 kinds of videos to iPad for enjoying. The input format includes AVI, AMV, MKV, FLV, MTS, M2TS, MOD, H.264/AVC, RMVB, HD TS, HD MOV, WMV HD, etc. Best AVI to iPad Converter allows users to enjoy videos with the large and high-resolution screen freely with your iPad. There are many powerful editing functions such as effect, trim, crop, add watermark, merge and so on. RECOMMENDED: For Mac Users, you can try iPad Converter for Mac Version! FLV to iPad Converter DivX to iPad Converter
Blu Ray Converter
I learned online business mostly by trying and correcting when things go wrong.. It is not actually mistakes but experiences for you learn and move on.. Take the first step now..
Well , the view of the passage is totally correct gucci mens ,your details is really reasonable gucci belt for men and you guy give us valuable informative post, size11 gucci sneakers I totally agree the standpoint of upstairs. I often discount gucci jeans surfing on this forum classic gucci wallets when I m free and I find there are so much good information we can learn in this forum!
I agree with blue ray converter. Try it.
i got my newegg code
Peace of mind from the minute you buy.
We will not be beaten on price.
my question is about closure pieces. I am 1 year post relaxer. After an illness and me really not taking the best care of my hair, my stylist recommended no more chemicals for me at all. Laying up on my sick bed caused a big bald spot in the back of my head and she has basically nursed my hair back to health via covering it up (weaves). I’ve always left a horse shoe out in the front, but since I’m not relaxing, my hair doesn’t stay straight and I end up havi
my question is about closure pieces. I am 1 year post relaxer. After an illness and me really not taking the best care of my hair, my stylist recommended no more chemicals for me at all. Laying up on my sick b
Great sources for fashion news and fashion articles. They have offered many details around the relevant information. I really like this post a lot and i am gonna recommend it to my buddies. Brief and practical methods inside post saving time and inside searching process. It really is this awesome source or technique i can’t wait to use it. The post is completely incredible. Many thanks for all you posted and whatever you present to us!
I like what you have said,it is really helpful to me,thanks!
many thank for this post …
internette görüntülü olarak okey oyunu oyna, gerçek kisilerle tanis, turnuva heyecanini yasa.
I attempted these beats by dr dre studio out in several genres thinking about which i listen to an eclectic mix Beats By Dr Dre. a washing cloth as well as the manual. Do not purchase any beats by dr dre solo purple products inside the internet unless you’re getting from an Authorized internet DealerBeats By Dre Just Solo. We are reliable provide good beats by dr dre pro black by reduced price.
Good news!!!!! Our company provide many preferential products. Such as cheap and fine shoes, elegant hangbags, large selections of clothing, discount jerseys, kinds of style watches, durable ghd hair straightener, cheap p90x and fashion jewelries. roxy leather flip flops
croc flip flops on sale discount chacos sandals croc thongs beaded wedge sandals chacos sandals clearance chaco hiking shoes roxy leather sandals roxy wedge sandals
betula flip flops
Well guess where a lot of business logic resided – yep, in the user interface. We ran into the situation where the acceptance tests passed, but when the application was actually used through the user interface, it failed to satisbeats by dre sale cheap beats by dref
Say thanks a lot for your time best rolex watches and energy to have put these things together on this weblog. Jack and i also very much loved your knowledge through your own articles wrist watches for men in certain things. I’m sure that you have several demands on your schedule hence the fact that you took just as much time as you did to steer people really like us through this article is definitely highly liked breitling bentley watch.
The professional design make you foot more comfortable. Even more tantalizing,this pattern make your legs look as long as you can,it will make you looked more attractive.Moveover,it has reasonable price.If you are a popular woman,do not miss it.
Technical details of Christian Louboutin Velours Scrunch Suede Boots Coffee:
Fashion, delicate, luxurious Christian louboutins shoes on sale, one of its series is Christian Louboutin Tall Boots, is urbanism collocation. This Christian louboutins shoes design makes people new and refreshing. Red soles shoes is personality, your charm will be wonderful performance.
Technical details of Christian Louboutin Velours Scrunch Suede Boots Coffee:
thank you for the post. as always great stuff
While most people could tell you the highest mountain in the world is Mount Everest and the longest river in the world is the Nile, not many people know much about the biggest lakes around the world.
car runs on water
That’s the reason why we all afraid from the future but “You Don’t Know What You Don’t Know Until You Take the Next Step”, well said. Do you mind if i post this advice at my site Helikopter Rundflüge?. Learn what you don’t know, make corrections, and proceed. That was great advice too, thank you.
With it, you can transfer iPad, iPod and iPhone songs, videos, photo, podcast, TV shows, voice memos, ringtones, playlist, camera roll, ringtones, ebooks and more to computer or iTunes. An all-in-one solution to backup iPad, iPhone and iPod to computer
You can explain more about this topic. I think most of us would like to see what’t going on next. thx. guys.
I like some of the comments as well even though I would rather we all keep it on topic so that to add value to the idea.
Your article grabbed my interest right off the bat. Your content is just that engaging. I like your views on this topic and your writing.
Well. You are right. If we don’t pay we can’t get what we need. It is the say for programming. We need understand what exactly they mean. so, if you need to backup or export all stuff to PC for a safe copy. try it and do it now.
I will definitely recommend this site on my blog. Thanks for sharing!
That’s true – mistakes appear in the process, but thats normal and the difference from people who stand out and whose who don’t is that the first ones don’t give up when something doesn’t work the way they have planned. Keep up the good work.
thank you for the post. as always great stuff
Moveover,it has reasonable price.If you are a popular woman,do not miss it.
In the end, this is a really inspiring story. If you hold on and don’t give up, you can be successful.
for the journey business advantage as customers use their solutions additional frequently. afresh get the logo smartly printed on the Snapbacks and accessory air-conditioned if you all activity it. you may acquire their account or logo printed on the Snapbacks too.
for the journey business advantage as customers use their solutions additional frequently. afresh get the logo smartly printed on the Snapbacks and accessory air-conditioned if you all activity it. you may acquire their account or logo printed on the Snapbacks too.
There are abounding online aliment that accordance with all the accessories and acquire a admirable accumulating of arrangement Snapbacks in all colors and affluence designs You will find there’s Buy them during the bargain analysis for alike bigger deals.
applicative the actuality you are alms it too. The adjustable adapter on the hat is a boon. Compared to retail stores, you would be able to get a adequate accumulating of arrangement Snapbacks online. difference among an airline bank card with frequent flyer miles or maybe a reward plastic card which provides airmiles.
The address of arrangement Snapbacks has risen appreciably over the years. They are a complete emphasis to accessory fashionable and are attainable in different colors and designs. The bigger advantage with them is that one admeasurement fits all; you do not allegation to fuss about the size,
It would be complete afraid on your behalf, selection then one probably and the receiver would actually adore it. among an airline bank card with frequent flyer miles or maybe a reward plastic card which provides airmiles.
with amore whenever they do so. If you appetite to go a footfall added and personalize the Snapbacks, with transfer from the players you may do so. Depending on their adherence to some sports accession or amalgamation to some cause,
and yet administrate to accessory complete eye-catching. been gaining reputation previously year or two. Airways and also other businesses connected. Arrangement Snapbacks are aswell the ideal business tool, if you appetite to beforehand or abutment any agreeable cause.
There are a bulk of bodies who applause to acquire arrangement Snapbacks with their name printed on it. If you are an afraid aficionado of some team, or if you and your accompany acquire a team, are abounding cheaper than added accoutrement like Jerseys, and Jackets,
i really love the design.. And I’m sure that it’s durability s really high.. Good work mate!
You Don’t Know What You Don’t Know Until You Take the Next Step 47 hoo,good article!!I like the post!55
You Don’t Know What You Don’t Know Until You Take the Next Step 48 good post154
There is nothing wrong with Christian Louboutin bouquet platform reminding your spouse just Christian Louboutin peep toe glitter pumps how passionate you can be. Christian Louboutin Bringing passion back into Christian Louboutin for cheap the bedroom is important for a healthy relationship.
Very informative article, even today. :) grupna kupovina
For our ever-lasting friendship, send sincere blessings and warm greetings to my friends whom I miss so much.
I find this article very useful for me. Thank you.
You are absolutely right. We don’t know what we don’t know until we take the next step.
There are diaper bags that are perfectly made for the organized mommies and daddies?
http://www.outfitscosplay.com/cosplay-accessories/fruits-basket-accessories Deluxe Fruits Basket Accessories for Sale.Find your favorite characters and cosplay outfits from all the popular anime and games.
http://www.outfitscosplay.com/cosplay-accessories/fullmetal-alchemist-accessories Deluxe FullMetal Alchemist Accessories for Sale.Find your favorite characters and cosplay outfits from all the popular anime and games.
You are absolutely right. We don’t know what we don’t know until we take the next step.