Showing posts with label software engineering. Show all posts
Showing posts with label software engineering. Show all posts

Becoming Agile: ...in an imperfect world Review

Becoming Agile: ...in an imperfect world
Average Reviews:

(More customer reviews)
Are you looking to buy Becoming Agile: ...in an imperfect world? Here is the right place to find the great deals. we can offer discounts of up to 90% on Becoming Agile: ...in an imperfect world. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Becoming Agile: ...in an imperfect world ReviewBecoming Agile by Greg Smith and Ahmed Sidky describes how to start your journey to start agile development. The target audience for this book are people who are just starting to look at Agile development and currently have issues. However, personally, I would not recommend this book. The book contains recommendations that I would personally not follow (I'm not that they wouldn't work) and a better alternative might be Mike Cohns new book "Succeeding with Agile" which will be published later this year.
The book contains eight parts and it follows one case study of "Acme Media" throughout the book. Acme media is implementing a small pilot project using agile development. The first chapter of the book describes agile development, the agile manifesto and introduces the background of the case study. The second chapter in the book covers the start, that is the preparation work that the authors recommend. Chapter 4 in this part discusses a assessment test for assessing your agility. The authors recommend to use the test and based on that decide what practices to start with. Chapter 6 describes one of the their key recommendations, which is to form a "core team" which defines the agile process to be used by the organization.
Part three describes the real kick-off of the development. Chapter 10 covers a feasibility phase where the a smaller team will assess if the project is even feasible and after that will be a "gate" or a go/no-go moment so that the project can be killed early. It suggests creating a feasibility study guide to do your feasibility and the authors provide some examples. Chapter 11 talks about creating the initial agile pilot team.
Part four is called "populating the product backlog" where the authors start describing their variant on user stories called "feature cards." It wasn't clear to me why the authors decided to re-invent or rename other agile practices. The chapter describes creating the feature cards and putting them in the product backlog. Chapter 13 discusses the prioritization and chapter 14 the estimation of the features (which seems to be the wrong order to me, but the authors insist on not wasting estimation time). The chapter explains planning poker and story point (wonder why they are not called feature points...)
Part five then discusses the planning (or scheduling) of the project and fills all the requirements to the iterations. Chapter sixteen then starts with the iteration planning of the first iteration. The authors suggest first some modeling and than task breakdown and already doing task assignments. They not that people often recommend differently, but then they assume that it because in these teams "everyone can do everything." It feels like the authors think it is either pre-assigning all tasks OR everyone can do everything... and there is no middle way.
Part six discusses the iteration itself and covers some of the agile engineering practices, but only on a somewhat shallow level. The part starts with chapter 17 which still recommends to run an iteration 0 (even though their project has only 2 iterations!!) Part seven discusses change and adaptation. Chapter 20 describes the adaptations of Acme and why they did it. Interestingly enough, the authors suggest a "adapt week" between their iterations. Then chapter 21 describes the final delivery.
Part eight, the final part, describes how the core group can take the result of the pilot and try to roll out agile in the whole company.
Why I wouldn't recommend the book? There are two main reasons for this. The first is that the book doesn't feel well researched at all and the language is somewhat too 'popular.' For example: page 6 about the Agile manifesto talks about "a group of authors writing a document." Unless you interpret 'authors' very broadly, this is just not true. On page 33 the authors describe weaknesses of Scrum. I'm probably not the most neutral person about this, but still the sentence "Scrum doesn't want specialists" seems like a really odd conclusion and seems to me simply untrue. Another example, on page 248 the authors equate exploratory testing to "company-wide bug stomp." They claim "exploratory testing tries to make sure the software doesn't accidentally do things it isn't supposed to do." If I simply google the internet, then the definitions of exploratory testing are quite different. As a final example, in chapter 22 on retrospectives, the authors do not at all refer to any of the retrospectives techniques described in other places (like the popular "Agile Retrospectives" book).
The second reason why I wouldn't recommend the book is because I personally disagree with a lot of the recommendations done by the authors. These are too numerous to all mention, but to just pick a couple. Having a separate team define the 'process' for the Agile team seems odd to me. Doing a pilot project with only 2 iterations is somewhat short from my perspective. Especially as things like velocity aren't that useful on projects like that. The iteration 0 and the adapt week are things I wouldn't recommend and certainly not on a 2 iteration project. The description of retrospectives are certainly not how I would do them myself. The focus on engineering practices is somewhat shallow. And the list goes on and on. Fair enough, this might be just my opinion against their opinion, but because of this, I would personally not recommend this book.
I decided to go for two stars. Three stars would mean the book does what it is suppose to do, and I don't think it does. One star would be too low as the idea of the book is good. Also, I like the way the authors have build up their case study and the way they describe a project based on their own experiences. The book is not all bad or useless, just not the book I would recommend. Therefore decided to go for two stars.
Becoming Agile: ...in an imperfect world OverviewMany books discuss Agile from a theoretical or academic perspective. Becoming Agile takes a different approach and focuses on explaining Agile from a case-study perspective. Agile principles are discussed, explained, and then demonstrated in the context of a case study that flows throughout the book. The case study is based on a mixture of the author's real-world experiences.
Becoming Agile also focuses on the importance of adapting Agile principles to the realities of your environment. In the early days of Agile, there was a general belief that Agile had to be used in all phases of a project, and that it had to be used in its purest form. Over the last few years, reputable Agile authorities have begun questioning this belief: We're finding that the best deployments of Agile are customized to the realities of a given company.

Becoming Agile discusses the cultural realities of deploying Agile and how to deal with the needs of executives, managers, and the development team during migration. The author discusses employee motivation and establishing incentives that reward support of Agile techniques.


Want to learn more information about Becoming Agile: ...in an imperfect world?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly)) Review

Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly))
Average Reviews:

(More customer reviews)
Are you looking to buy Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly))? Here is the right place to find the great deals. we can offer discounts of up to 90% on Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly)). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly)) ReviewThe idea of this book is that thirty software developers and/or researchers (respectable ones, no doubt there), had to find the most beautiful piece of code and present its study. Each of them then writes a chapter and there you have it - a volume of "beautiful code" ! Simple as that.
If there was somebody to fully support the idea of such book, it would be me - I believe that the software industry already spent too much time and effort neglecting the art-and-craft in programming, pretending that it all can be reduced to hard math. Didn't work so far, did it ? Then I very welcome books like this one. But not exactly the one.
Let me put it this way - I couldn't say anything good about this book except that I adore the concept and found may be ten of thirty three chapters interesting (not necessarily beautiful). Beauty is in the eye of the beholder they say, but this lame excuse is the last good thing I could say for this book.
It was supposed to be pedagogical. Did not happen. Rather than making it timeless reference for the readers, the book made a tribune for the authors to talk about, uhm, just about anything. We know how programmers love to talk about what they do, and it's ok. But we also know that they often mumble instead of talking and it's very difficult for us to understand one another, no matter friendly or hostile. This is not to mention that there are no commonality in topics or style or language (programming or English) or anything. The editor had simply glued it together.
Not so bad you say, a good assortment is fine you say ? Let me tell you more, and it's all downhill.
It's as though you expected an album of paintings but instead got a book of random excerpts from chemical specifications for producing paints.
Exemplary conventional antimicrobial, antimildew, or antialgae agent includes 3-iodo-2-propynyl butylcarbamate, diiodomethyl-p-tolylsulfone, 1,2-benzoisothiazolin-3-one, 2-methylthio-4-tert-butylamino-6-cyclopropylamino-s-triazine, 2-(4-thiocyanomethylthio) benzothiazole and the mixtures thereof.
See how beautiful it is that can be painted with that ?
If you ask me, a book like this ought to have structure. Remember the classic one by Gamma et al - they also presented abstract things from different areas or levels, but they kept the information stylistically uniform and structured against a clear taxonomy. Not the case here.
Each chapter is about different matter, presented in a different way. One author presents a performance hack in which he compiles code on the fly. The chapter will then contain several pages of dynamic assembly. The other will show an interesting approach to syntax parsing. This one will have 50 short snippets of something JavaScript-like. Yet another will tell you how to automate debugging by automatically mutating the application. This one won't have code at all. Yet another will show a slick algorithm for counting bits in a word. This one will have a lot of bitwise arithmetic.
And I just loved the one that has NASA in it's title. There - "A Highly Reliable Enterprise System For NASA's Mars Rover Mission". Wow ! How promising ! Want to know what it says ? It says - "In NASA they love their software reliable, even a web-based file server, and so we present you a web-based file server built with JavaBeans in three-tier architecture". Ahem, Mars Rover anyone ?
Don't get me wrong, some of the chapters are reasonably interesting. Interesting ! Not beautiful !
With a little exception, the authors don't even mention the word "beautiful" in their texts. They allure with "There, we have this system, it works like this..." . What exactly the author finds beatiful about it and why - remains secret.
The most impressive standout was the chapter written by Yukihiro Matsumoto, the creator of Ruby. Three pages in which he simply speaks about what he believes a beautiful code is. He explains to you his understanding of a beautiful code. This is what the book is all about !
Instead, many chapters just demonstrate a few pages (!) of code and conclude - it is beautiful, see !
Many times I wasn't unable to grasp the problem - what was it that required that so called beauty to emerge ? I couldn't see the whole picture, but the authors sort of presume I do and so my possible appreciation of beauty requires deep understanding. What if I show you a magnified fragment of Mona Lisa's background, some 3x3 blackish pixels ? No doubt, Leonardo had to paint them too. But what was that beauty again ?
Only a few authors were wise enough to use a pseudocode. Something that anyone can read, no matter from which camp. Otherwise it's just weird when the authors present their beatiful code in Ruby or Perl or LISP. Look, I didn't touch Ruby yet, I hate Perl and I can't imagine using LISP in practice. Nevertheless the authors repeatedly say something like "It's easy, I'll show you, this bracket does this and that character does something else. Now you see how beautiful it is ?". They literally show you a piece of poetry in foreign language and ask you to appreciate it.
A classical example of awful poetry in Russian is (transliterated)
Ya poet, zovus' Neznajka,
ot menya vam balalajka.
Can you tell whether it's good or bad and why ? What if I told you it's beatiful ? Would you believe ? Does it appeal to your sense of beauty ? Same thing about this entire book.
Awful implementation of an idea that I fully adore. In fact, implementations like this undermine the idea, that's why I rate this book so low and put it away with disgust.
Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly)) OverviewHow do the experts solve difficult problems in software development? In this unique and insightful book, leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions to high-profile projects. You will be able to look over the shoulder of major coding and design experts to see problems through their eyes. This is not simply another design patterns book, or another software engineering treatise on the right and wrong way to do things. The authors think aloud as they work through their project's architecture, the tradeoffs made in its construction, and when it was important to break rules. Beautiful Code is an opportunity for master coders to tell their story. All author royalties will be donated to Amnesty International. tion.

Want to learn more information about Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O'Reilly))?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...