Daniel Harfleet

Delivering user-centric applications on the Adobe Flash Platform using Flex and AIR

Five Books to help you successfully deliver a Flex application

with 4 comments

Here are my recommendations on essential reading for the successful delivery of any serious Flex project.

Clean Code: A Handbook of Agile Software Craftsmanship

“Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way”

I think the opening line of this book’s description about sums it up for me. Not only does readable code aid debugging, maintenance and on-boarding, but it’s discipline also forces the developer to think about the architectural design of the code he is writing. Coding by intent makes you think about every line of code you write, what value it is adding to the implementation, is it in the right place and is contributing to what the surrounding function or class claims is its motivation.

Refactoring: Improving the Design of Existing Code Although I suspect “when to refactor” is a much more hotly debated topic on most projects than how to refactor, when everyone is agreed on the “when” this book is surely the definitive reference on the “how and what” to refactor. Glue this book to Clean Code and you have the ultimate book on Software Craftsmanship

xUnit Test Patterns: Refactoring Test Code I am a big advocate of Test Driven Design and this book is a great reference book for unit testing. When pair-coding on unit tests, I often find that an approach can be less immediately agreed upon than with implementation code. In addition, I have found that developers vocabulary is more vague around various unit testing patterns or approaches. I find the author of this book has almost always tackled the unit test problem I am facing on a particular day and also defines a range of different unit test patterns which I find myself saying “oh that is what you call it”. If you want to take your Flex Unit skills to the next level then reading about “Test Doubles”, “Mocks”, “Stubs”, “inline fixture setup”, “Test Spies” and “behavioral vs. state verification” will help you. A very readable book.

Agile Estimating and Planning Agile is not the only way to deliver Flex applications, I know of several very successful high profile Flex applications which have been delivered using a waterfall approach. However, I feel that on the whole, in the fast paced world of business today, agile gives me the confidence that I am delivering what the customer needs on their launch date, not what they needed at the start of the project. Agile is the perfect way to keep close to the rawness of return on investment. As an aside, agile actually plays very well into the hands of user-centric application design. For me this book is a great introduction and ongoing reference to agile, particularly around the aspects of project management rather than developer skills ( such as TDD, pair-coding, etc ). If you are wondering how to manage scope on an agile project, how to track progress, how to motivate your team or how to capture requirements then this book is well worth the investment.

Domain-Driven Design: Tackling Complexity in the Heart of Software When I first started out in Flex development, approaches to client-side architecture (i.e. architecture of the Flex code) were very immature, as time went by and developers started migrating from other languages, which were more established such as Java, they found the need to organise their codebase in a better way and separate out concerns. Naturally people gravitated towards architectural patterns they were most familiar with, such as the J2EE and .NET patterns. Although this book is primarily about matching the design of the implementation to the domain, for me the most interesting bit is the definition of the various architectural patterns and strategies. I feel they are much more language/technology stack neutral and in many ways more appropriate to Flex than the J2EE patterns. In recent years a lot of emphasis in the Flex community has been put on various patterns around the presentation layer, such as MVC, presentation model, etc. Although these patterns are completely valid to discuss in the context of Flex development, I feel the downside of the emphasis on presentation layer is that the other ‘layers’ within the application are overlooked (e.g. domain and infrastructure). If you are not ready to invest in the book, there is a very readable free download which summarizes the fundamentals here

None of the books above even mention Adobe Flex, but that really is my point. Although an understanding of the technology stack is a very important factor in project success, in my opinion it comes nowhere near the importance of the people, processes and engineering disciplines that are in place.

Advertisements

Written by dharfleet

August 26, 2010 at 14:08

Posted in Books

Tagged with , , ,

4 Responses

Subscribe to comments with RSS.

  1. Delivering Flex (or any other type) applications is not just about coding. While clean code is very valuable, it can’t possibly outweigh the value of a great User Experience. From a user’s perspective, an application can be built from well-written code, poorly-written code or globs of anti-matter… it just doesn’t matter to them. So it is important to remember what makes software great from the consumer/user perspective too. For that reason, I would add “About Face – The Essentials of Interaction Design” to your list.

    Rob McKeown

    August 26, 2010 at 15:41

  2. Rob, thanks for your reply.

    I absolutely agree with your point and would assert that experience design and its associated disciplines (interaction design, ethnography, information architecture, etc) are a major influencing factor on the success of a Flex application, in my experience at least.

    From a personal perspective, making applications more usable was a driving factor in my getting into software engineering in the first place ( https://dharfleet.wordpress.com/about/ ). Fortunately the projects I get involved with nowadays always have one or more XD professionals involved from the start. Seeing the process they go through and the results of their work really make me enthusiastic about my work (development).
    I guess I should have qualified the post with “from an engineering perspective”, as this is the area that I feel qualified to comment on. Hopefully my post didn’t indicate that they are the only books you should ever look at ;-)
    Thanks for your book recommend, I will take a look.
    Out of interest, you may want to check out Steven Webster’s blog entry http://blogs.adobe.com/swebster/2010/08/design-is-on-the-enterprise-agenda.php#more I think it sums things up nicely.

    dharfleet

    August 26, 2010 at 17:30

  3. […] reading here: Five Books to help you successfully deliver a Flex application … Related Posts:Available Flex 4 Books — Workflow: FlashFlex 4 Books “Effortless Flex 4 […]

  4. Reblogged this on Daniel Harfleet.

    dharfleet

    July 17, 2012 at 12:39


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: