Monday, June 7, 2010

How about a simpler Functional language? Maybe AppIgnite?


I think nearly every programmer has written a game. Why? Because dev's tend to be gamers...they are "game domain experts." What a Dev knows is easiest for them to program. Like my friend, who released a time tracker app, he was a contract programmer and he needed a time tracking solution so he wrote it and sold it to others. It was written because it was in his head.

Think of all the niche apps out there that could be written, but will never be written because the "domain expert" is not a programmer. Ideally, there would be a "functional" language intuitive enough for anyone to get started, right-out-of-the-box.

And when I say "functional" I'm not referring to the myriad of expressive languages that have emerged, I envision something visual, less syntactic, but still extensible, so that the idea-man could mock up a working app and possibly team-up with others to extend the solution.

I'm really excited to hear more about AppIgnite. Although it's not yet ready for prime-time I think Jason is on the right track. I learned about AppIngine on Techzing (an outstanding Podacast, where Jason and Justin share everything of interest from the world of entrepreneurial dev's). They both have home-grown commercial apps and share their daily thoughts and experiences through the Podcast.

I know the dream of a "programmer-less-programming-language" has come and gone in many forms, but listening to Jason expound on AppIgnite's design I'm really looking forward to getting my hands on it. This has the potential to be a productivity "game-changer" for everybody who has an idea for an app, but nowhere to start.

Sunday, February 28, 2010

What If Congress Adopted the Agile Manifesto?


I wish Congress was full of Agile Practitioners (Poppendieck for Senate!). Thinking about this I wondered how the process of passing Heath Care would look when judged through the lens of the Agile Manifesto. Below is my retrospective of HR3200.

The Agile
Legislative Manifesto:

1) Our highest priority is to satisfy the customer through early and continuous delivery of valuable legislation.

...9 months and 2074 pages, ummm I don't think so...


2) Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

...Congress did implement some "competitve advantages" for customers like Louisiana ($100M in exemptions), California ($300M in Medicare payments), AARP received $18M in stimulus money and the Unions got an exemption for "Cadillac" health plans. However these "advantages" inure to the benefit of constituencies, some stakeholders may disagree.

3) Deliver working legislation frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

...Fail


4) All Parties must work together daily throughout the project.

...Fail again, 'nuff said


5) Build legislation around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

...There have certainly been a lot of "motivated individuals" working on this but not a lot of "trust" and "support."


6) The most efficient and effective method of conveying information to and within a legislative team is face-to-face conversation.

...There appear to have been many closed-door "face-to-face conversations," unfortunately many essential stakeholders were excluded, the entire process could have benefited with some transparency, courtesy of C-span.


7) Working legislation is the primary measure of progress.

...No measurable velocity yet.


8) Agile processes promote sustainable development of legislation. The sponsors, legislators, and users should be able to maintain a constant pace indefinitely.

...The political machine has chewed up and spit out everybody involved. "Sustainable development"
has yet to be achieved.

9) Continuous attention to legislative excellence and good design enhances agility.

...Maybe this can be included in a future iteration

.
10) Simplicity--the art of maximizing the amount of work not done--is essential.

...I think Congress skipped this step. Oh well, it was the only "essential" step.


11) The best architectures, requirements, and designs emerge from self-organizing teams.

...All teams were "self-organized" unfortunately they organized down party lines.


12) At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

...Mid-term elections could make for an interesting retrospective.