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

11/08/2009

Review of Managing Software Maniacs: Finding, Managing, and Rewarding a Winning Development Team (Paperback)

Ken's insights proved very useful in my research (we reference it in our latest AntiPatterns book).I especially enjoyed Ken's take on the popular "cubicles" versus offices debate. I recommend this as one of the many bookssoftware managers should read.

Product Description
Using a humorous yet practical style, it offers excellent advice on every aspect of programmer management. Topics range from finding software developers, rewarding them and building an effective team.

Click Here to see more reviews about: Managing Software Maniacs: Finding, Managing, and Rewarding a Winning Development Team (Paperback)

10/17/2009

Review of Software Development on a Leash (Expert's Voice) (Paperback)

I have mixed feelings about this book. The main idea of it (as far as I understand) is achieving high degree of reuse by separating the software from its concrete application and expressing this application in "structural and behavioral metadata". Moreover, in your application, you must get rid of any dependecties on things that you do not control by wrapping it in your software layer and exposing it to the application as very abstract ("metamorphic") object model. The author provides some interesting examples for this and presents the basic building blocks of a software framework built around these ideas. As much as it might sound compelling this concept is not really new. What is worse is that methods and advice presented in the book are sometimes simply wrong or often have serious drawbacks which the author doesn't talk about.

For example the author really hates strong typing and recommends reducing the interface of _all_ your classes to just 3 members: "Item", "Ref" and "Action". This is bizarre. The view of strong typing as an enemy of the programmer is completely wrong; it was actually introduced to help control side-effects of changes to class interfaces. Another example is the virtual database layer the author proposes: while it is true that it lets the programmer switch the underlying database engine very easily it is based on relatively low-level SQL concepts and suffers from the least common denominator syndrome. I would say that for many, if not most, application a better way is to design a higher-level database abstraction layer that takes advantage of the engine capabilities. Usually it is not much more code and the performance difference might be enormous.

Finally there is the cost aspect. You cannot really adopt the method partially; either you are in or out. And you must really have almost unlimited resources to develop this kind of framework yourself. Which makes you think that it would be reasonable to get the framework developed by the author already. Which is just what the author wants and which is strongly reinforced with the last chapter of the book that literally sounds like a Ginzu knife sales pitch. Is it worth it? You have to decide yourself. For me the extreme programming advice: "Always build the simplest thing that works" has worked very well so far...

Product Description
<p><i>Software Development on a Leash</i> is designed as a roadmap for experienced developers and architects who are interested in implementing a turbocharged software development process that encourages reuse and innovation. Author David Birmingham's products have been successfully deployed in a variety of venues, including highly complex desktop environments, with rapid turnaround and high-intensity delivery deadlines.</p><p>This book contrasts the application-centric development approach to the architecture-centric development approach, introducing the concept of the <i>metamorphic superpattern</i>&emdash;the capability of a software program to dynamically adapt to changing application requirements without rebuilding the binary executable.</p><p>Birmingham invites the reader to deploy reusable structural and behavioral building blocks, along with some powerful frameworks to gain immediate traction in any setting. He includes a high-speed multidimensional toolkit to organize and deploy the building blocks, essentially weaving the application together at run-time rather than being hard-wired in program code.</p><p>Birmingham then ties the building blocks together with structural and behavioral metadata, allowing simple, interpreted macros to drive everything from database access, screen layouts, and many aspects of software development normally embedded directly into the software program&emdash;and reused! The rapid deployment effect this creates allows developers to perform simple surgical application changes or rapid, sweeping rework/enhancement&emdash;without changing compiled software.</p>

Click Here to see more reviews about: Software Development on a Leash (Expert's Voice) (Paperback)

Review of Framework-Based Software Development in C++ (Paperback)

This book is intended for those who already know C++ but also want to be exposed to the future trends of applying STL integrating with Object Oriented Database Systems and CORBA. Although STL, ODMG-93 and CORBA arecovered in an introductory manner, their relationship with the process offramework design is very appropriate.

Rogers writes well and the presentshis topics in an organized manner.After reading it completely, I enjoyedrereading individual chapters in a random order to glean more of hisinsight. I recommend the book to those programmers that want to look intothe future of effectively designing their products to be used in adistibuted environment.

Product Description
The first book that presents a software development methodology for building C++ class frameworks using emerging object standards: CORBA, STL, and ODMG-93. It may be viewed as a software developers handbook, one that explains how to use Object-Oriented Design the way in which it was originally intended.

Click Here to see more reviews about: Framework-Based Software Development in C++ (Paperback)