Update on Grokking Functional Programming

Writing this book has been quite a journey.  Being a personal experiment in user experience design in a non-interactive medium has proven to be quite a challenge.  The constraints are significant from page size, typography and then to consider cognitive overload and leaps from concept to concept.  Yet, at the core I am still aiming for a pairing experience.  I want to create an experience that someone is working with me at the same computer and sheets of paper.

This is what is emerged as a workflow.

  • sketch out a plan for the chapter;
  • focus on what are the main takeaway points;
  • what pre-requisite knowledge is needed for the chapter; and
  • fill in some examples and exercise, pretty much faux-code

The gap that surfaced this week with my editors is that we swirl around the main takeaway points a lot.  The fundamental question that I now ask is “What is the one super power that we receive with this chapter?”.  That’s a hard question to answer and it forces me to ask very abstract and pointed questions about the main concept of the chapter.  Often, the answer is philosophical which forces me to reduce it to something practical.

Sometimes, answering the super power question has left me admitting “Well, that’s pretty unremarkable!”.  Initially, I was disappointed when that happened.  Now, I use that as a feedback to dig further.  It forces me to seek for my own deeper understanding.  The bottom line is that I am still hindered by my own ignorance.  It takes effort to break through ignorance barriers and it is not about pounding on the same door all the time.  It is about circling around and attempting to find tiny cracks to chip into.

In addition, I have now realised is that UX can only be solved after the philosophical and abstract are reduced to concrete.  Having tight UI constraints is actually a blessing for UX.  I now appreciate the limitations as it simply removes options not worth their bandwidth consumption.

Grokking FP JourneyWhere have I taken people on this journey so far?  On the right is what I’ve covered so far.  Next up are algebraic data types and then more in depth coverage of high order functions.  Very surprising for me is that this journey of constraints, user experience challenges, asking super power questions has led me to shifting this chapter on high order functions from being chapter 2 to chapter 7.  That was unexpected.

Keep an eye out for tweets on discounts on the book.  The latest promo from Manning is for 30 October 2014.  Using discount code dotd103014au at http://manning.com/khan will give you 50% off the list price.


A Book is Born

Grokking Functional Programming

Over the last year I have been spending some of my time writing a book on functional programming.  Finally, it is available on Manning’s early access program.  The first three chapters have been published and my commitment is to produce new content every month or sooner.

This has got to be one the most difficult pieces of work that I have ever attempted.  In many ways, this is an experimental book.  It takes my brain on two orthogonal paths.  The first is about the topic of functional programming (FP).  And the second is about cognitive learning.  FP is a difficult subject and large too.  I’ve attempted learning it several times and threw it to one side in frustration.  So this book is my crazy attempt to apply a few aspects of learning to a complex topic.  My hope is that it is an accessible book for most software developers.

Early and gracious thanks must go to the team at Manning for putting their trust in me on this experimental journey.  And to say that my editor has been patient is a gross understatement.

If you are going to read this book, please do provide feedback on the book’s forum.  I really want to know where you got confused, which sections are too fast paced, which pages made you take ridiculously giant mental leaps.

Update: Anybody can get 50% off the book by using the discount code mlkhan at manning.com/khan/.

Hello World with KRS

Khanyisa Real Systems very kindly asked me to contribute an article to their December newsletter.  I happily obliged.  They’ve just started this initiative and I like it already.  Not because they invited me to write, but because the content is original, including the ‘toons.  In a world that is retweet mad, that says a lot to me – someone out there cares enough to create and gather original content and share it.  Read it for yourself, and if you like you can subscribe on their website.
And I’m dead serious about my message in that article!

Top Down SOA: Aligning Business Functions

Yesterday I had a really fun time running a workshop at the IQPC SOA conference on Structuring your SOA Project.  It was interesting to see that SOA is still not clearly understood and that the “silver bullet” answers are a still being sought after by a few.
The heart of my workshop centered on the theme that you cannot steer clear of business or domain knowledge, even if you try to design your services by wrapping existing software assets.  It just has to align to reality in the business, otherwise you will just create another architecture that has a fractured line to the business needs.

The other interesting theme that arose, unintentionally, was that it may well be easier to sneak in SOA by thinking in services and building some solutions covertly.  Once value is delivered and becomes noticeable, then start spreading out to the next cell … almost virally.

I summarised the main thoughts in the article on DZone at http://architects.dzone.com/articles/top-down-soa-aligning-business.

OSGi Article on DZone

An article I wrote which questions the readiness of OSGi for enterprise development has been published in two parts on the EclipseZone at DZone.  Read the first part at http://eclipse.dzone.com/news/there-place-osgitm-enterprise-. Watch out for the hyphen at the end of the URL, it’s significant 🙂

Many thanks to the kind folks at DZone for the publication.

Resurfacing Diversity Challenges

I got a tweet from Clive Seebregts which pointed me to an InfoQ article that made reference to an old Hanselminutes podcast that I did.  It’s nice to see that diversity is not being left in the wilderness and that other people are thinking about it again.  It seems like some people are trying to promote diversity and others are trying to manage the challenges of diversity.  Hmmm, somewhere there is point of brutal contact, but it will be for the good.
BTW, digging around on material diversity in agile teams I came across this video.  I didn’t know it existed at all.  Suddenly, the references to the FIFA 2010 World Cup seem sooooo dated.