![]() |
|
Spaces home Max Guernsey, IIIProfileFriendsBlogMore ![]() | ![]() |
|
Products of Note
|
Max Guernsey, IIIManaging Member, Hexagon Software LLC
May 07 Almost but not QuiteSo, I took a stab at some of this "short short" fiction. It's not so much like designing a single class. I think that, maybe, a single paragraph is akin to a class. It seems like "short short" fiction is more like one of those "write a game under 5k" contests. April 29 Good writing is good designI like to think that I am a decent writer. Many who know me find my fiction to be... uncomfortable. That's okay. The alternative would be for my friends and family to be totally unaffected by my writing - that would be much worse, in my opinion. Recently I was considering writing a piece of “flash fiction” to enter a few contests... sort of a first step on the long journey of trying to get a novel published. The limit for a lot of them is five-hundred words (about two pages). That got me thinking: "how am I going to tell a story in so few words?" After a while, the process came to me. As I went through the steps of building a micro-story, I had a mini-epiphany. Writing a story is just like designing a system of classes. Software, after all, is the export of concepts using language and so is a good story. I have to partially credit my brother and a discussion of the number line for this, too. While we were talking, it really got me thinking about ideas and how they fit together. Take the concept of numbers and of pseudo-numbers (such as i or infinity). Numbers fit together in a prescribed set of ways. Pseudo-numbers can stand in for a real number at certain times but not at others. That strikes me as the same thing as objects which implement many interfaces. All of these little ideas can be stuck into expressions, so they all fit the Expression interface. The ones that can be added together or multiplied (real numbers, i, and the like) all fit the BasicArithmeticElement interface. You probably get the idea. So, if this is true, then writing a short story might be akin to a subsystem. It’s part of a bigger story. You need to leave hooks to the “outside world…” things which entice the reader’s imagination into action. Following that line of reasoning, flash-fiction might be like a single class; or, perhaps, a small number of related ones. You focus in on a few powerful ideas and explore them in-depth, defining only the interfaces of notions which lie outside the scope of your story. I’m going to give you a shot and we’ll see how it goes. April 17 Review of Emergent DesignI just finished Emergent Design. It is an awesome tour of everything it takes to become a professional software developer. I believe this book to be distinguished from other technical books in the way that great works of fiction are different from genre books. It defines a category rather than just being a part of one.
It is a call to arms for all of us who consider ourselves professionals to band together into a true profession. Simultaneously, it is a tour of all those things that we as a proto-profession have identified as important and valuable. Practices, patterns, principles, disciplines, tools... Bain shows how all of these things work together. He goes one step further, though: he shows how they can coalesce into the basis for our occupation's transcendence into a profession.
If you have not been introduced to these concepts – if you work in a heavily waterfall environment with brittle code and death-marches at the end of long release cycles – this book is your way out. Read it. The most you will have lost is the time it takes you to read a three hundred page book and you have everything to gain. Emergent Design will show you that there is a better way. A way to make software that gets easier to maintain over time, not the other way around.
If you are familiar with these concepts, as I believed myself to be, then you will enjoy seeing everything come together in one book. You will probably gain some valuable insights along the way. I certainly did. You will also find that it is powerful recommended reading for those around you. Scott Bain's writing is clear, concise, friendly, funny... oh yeah: and very persuasive. Having read this book will give you and those whom you coach, teach, or work-with a common frame of reference; even more-so than Design Patterns.
I truly believe that this book is going to be at the center of a series of discussions, debates, and decisions which will ultimately lead to the formalization of software development as a real profession. It would be easy to characterize your choice as “buy it or don’t buy it” but that would not be accurate. The real choice before you is this one:
You can either be an informed participant in the formation of our profession or you can just be governed by it.
I trust you to do the math from there. March 31 SPOILER ALERT: 10,000 b.c. (it was good)I really liked it. I'm sure a lot of people did not. I also bet most of the people who watched it just thought it was some adventure movie.
There clearly was more to it than that...
I think it was about the Big Event to which all the great monuments (the mounds, Angkor Wat, temples near the Pyramids at Giza, et cetera). Either there was an amazing coincidence, or the makers of this movie really did their research. Watch it and look for the details. If you've studied this subject, I think you'll enjoy this movie. March 29 Oh yeah......and, if you are listening, Microsoft, can you PLEASE add a throwable interface (or something like it) so that we don't have to couple to inflexible taxonomies of exceptions?
...and one more thing... can you PLEASE make exceptions a lot faster. I don't have any trouble with the time they take to throw but some people do and it is difficult to get them to use exceptions properly because they cannot see past the (admittedly irrelevant) cost.
|
|||||||||
|
|