Archive

Monthly Archives: August 2010

I should come up with an entertaining title for these blog entries about the Seattle Tech Scene.  But that’s for another time, right now I’m going to focus on the events of this last week.

Agile Beer

I guess there is a bit of a history behind Agile Beer, but I wasn’t aware of it when I decided to go to an impromptu Agile Beer Meet Up @ Elysian Brewing on Capital Hill.  At peak there were 7 of us, having a good time chatting about various aspects of Agile.  Next meet up, we’d love to see more people.  This is also were someone could possibly help me out – who exactly organizes Agile Beer, and is there an official shindig related to this?  When I do a Google/Bing Search with just “Agile Beer Seattle” I get a couple different sources of information, but most of it looks like nothing is really going on.  Any word on this?  Anybody?

Amazon Web Services

Amazon Web Services

Seattle AWS User Group (www.sawsug.com)

The Seattle AWS User Group is pretty cool.  This meet we had Jeff Barr (AWS Evangelist) and Jenn Boden (Director of Corporate IT) speak on one of the new security white papers released and general topics.  Jeff & Jenn are pros when it comes to answering the hard ball questions.

The second phase of topics included a talk on Virtual Private Cloud Architecture and another on Multizone RDS.

Hadoop

Hadoop

Hadoop Seattle

The Seattle Hadoop Meet, as usual, rocked too.  I love hearing about the Hadoop and Hadoop related topics.  The big data problem always has a host of, what I consider, very interesting solutions.

I’ve been looking into getting a blog, specifically WordPress, into the cloud.  Of course the first two I take a look at are Windows Azure and AWS.  This is what I’ve found so far.

Windows Azure

Windows Azure is easy enough, sort of, but distinctly limits the control and abilities of the actual blog.  This is primarily because of the way one has to host a blog, and the software just isn’t really built to take advantage of the platform specifically.  In other words, WordPress isn’t really built around horizontal scalability.  Also one has to run WordPress in a CGI Instance, not exactly ideal either.  It works, and really does work well, but there are just options that aren’t available in this situation.

The other issue is that a single running CGI Role is going to run you around $100 bucks a month.  I’ve checked and if you push off the entries into a Windows Azure Table Storage area, that’ll easily break past that $100 bucks into the $110-200 range or higher.  It all really depends on how many transactions and views your site is getting.  If you really necessitate Table Storage vs. a traditional relational data store for your blog, I seriously doubt a couple hundred bucks will be an issue.  In all reality, if you’re using the Table Storage you most likely should be in the traffic range that would run you about $1000 bucks a month or more, in each geographic area.

Amazon Web Services

AWS is however a different beast altogether.  First, running an EC2 instance you can get everything running that you need.  The data store for the entries and also gain access to a level that allows you to add plugins and all the other features of WordPress.

The pricing on Amazon gets a lot better too.  One can get the reserved instance for $350 bucks a year (or $227.50 for Linux/UNIX).  That enables one to install WordPress with total control for about $30 bucks a month.  Considering the redundancy, uptime, and general availability and performance of the cloud that is a really decent price.  Even if one gets some heavy bandwidth usage, the cost for that shouldn’t go above a few dollars.

Summary

At this time, if you want some cloud computing power behind your blog, AWS is the clear winner in price and performance!

A few reference links:

ALT.NET Seattle Meet

This weekend I attended the ALT.NET meet up.  For more information on future meet ups check out these resources:

We covered some great topics around not using IoC (Justin, where were ya!?), REST and what it really is, and lots of things around WCF.  We all adjourned briefly for some burgers at Blue Moon and went right back at it.  If you’re serious about architecture, frameworks, and coding in general (in general in the .NET stack) you should definitely check out this group.  Anyone can come and jump in, easy to participate and everybody is great about helping each other out.

Inaugural Android Mobile Meet Up

This group was great also.  I forget how many exactly, but in excess of 40 people were there, possibly even 60 or so.  The session were great and the organizer did a top notch job of getting the pizza in, introducing the speakers, and getting some appropriate props for F5 Networks for hosting!  Thanks Benn for a job well done.  For more information or to attend the next meet up check out http://www.meetup.com/Seattle-Android-Developers/

Other Meets

This week there are also a number of meet ups that I hope to attend;

Before reading this you should know what the Agile Manifesto is and the Agile Principles are.

I’ve seen it on more than one project in my career and it always seems to happen.  Agile rarely gets credit in this scenario.  People rarely learn what was and was not effective on the project in this scenario.  Those that are Agile Practitioners that know what a truly fast paced, effective, high quality, and successful software project can be know.  What I’d like to know though, especially from those that have successfully dealt with the “Must have big design up front (BDUF) headaches” and transitioned those people to a more Agile style approach.

The scenario generally starts like this…

A project is green-lighted for whatever reason.  Often with some high level manager determining that a project will save or make $X amount of money.  The project is poorly defined or simply not defined at all.  The stakeholders, clients, or others that would prospectively use the software are nowhere to be found and unidentified by management.  There are at least a half dozen external dependencies the project must have completed.  (Take Note Upper Management & Executives:  Six Sigma/Lean Processes can help at this level dramatically)

Waterfall Approach

In a waterfall approach all of these things will have to be documented and nothing initially gets developed.  The people writing the documents, often some sort of business analyst, is forced to basically make up whatever they can come up with.  In addition to that and hypothesis is derived from thin air and someone starts to come up with a more functional, technical, or even concrete UML design documentation.  To summarize, in a waterfall approach a whole bunch of people start documenting all sorts of things about this theoretical application software.  A 6th grader would study this and say, “so they write a bunch of lies right?”

When the actual concrete ideas come to fruition, long hours of the famous death march approach usually start.  Sometimes more and more people are thrown at the application in hopes that somehow it will speed things up, but in reality as a seasoned software developer knows, it only slows them down.  Other issues very common with this approach are horrifying low code quality, a lack of tests, missing ability to regression test, no verification of what done truly means, and a whole host of known issues.

Agile Approach

An Agile approach on the other hand would start finding the clients and consumers of the theoretical software.  These people would be engaged and some paper prototypes or other initial sketches of what the software might do are created.  Maybe sketchflow or some other software is used to create some rapid prototypes to give the clients an idea of what the software would look like and what it might do.  The clients start giving feedback and a more concrete idea is formed around this theoretical software upper management has dictated.  Initial tests and code are written and put into a continuous integration process, with an end product being dropped every few days or weeks.  A 6th grader would study this and say, “you’re building software and having fun?”

What Happens in the End, IF the Waterfall Project is Successful

There seems to be two resolutions that I’ve found that allow Waterfall to actually be successful.  The first is that the project forgoes the charade of Waterfall and starts implementation of more Agile ideals and processes immediately.  This cleans up things and improves morale, all while getting the project back on track.  The second solution is that development/engineering determines they’ll do Agile anyway, and up manage the management.  Management thinks they have a successful Waterfall Project when in reality the proactive developers/programmers took it upon themselves to assure success, and thus moved to an Agile ideals, process, and practices among themselves.

In Summary

These two different models are HUGELY disparate, and yet the aforementioned waterfall model approach is still heavily used.  I suspect, unfortunately, that it is primarily used at a majority of businesses (and especially Government).  Even if the business or Government pretends they’re doing Agile and calls their Waterfall Model Agile something another.  This is something else I’ve seen far too often.  This is a complete misrepresentation of what Agile Ideals and processes are.

The Questions

I’d like to know, what methods do you use to attack and remove the barriers caused by waterfall at large organizations?  Do you subvert the existing management infrastructure and just do things in a more Agile way regardless in order to succeed?  Are there any specific practices, techniques, or otherwise that help you align so that one can keep a project moving along quickly, all while avoiding the damage waterfall models do to the actual underpinning project, code quality, and other such items?

Please leave a comment or three.  :)

I’ve decided to go for it.  I’m going to write a book and today is the day that marks the beginning of this journey.  I’ve read up and asked for advice from writers that have undertaken the technical book effort before.  John Papa, provided some great information in the past, and even wrote a new blog entry related to some of those past efforts More Tips for Writing A Technical Book.  The previous entries are great material too;  10 Things to Consider Before Writing a Book and 6 Great Tools for Writing a Book.  I’ve read through these and am taking heed of the advice John gives.

Another blog entry I’ve come upon recently is by Bart Czernicki titled Technical Book Sales Insight Through Real-Time Amazon Rankings Analytics.

One of the things I’ll be doing, is blogging some of the notes, book sections, and other things to see if ordering, writing, and other bits work according to you the blog readers.  With that in mind, I present my first table of contents.  It’s a rough draft, but what do you think so far?

Title:  Windows Azure Cloud Computing
Subtitle: From Enterprise to Startup, A Clear Path
Chapters:
1. The History & Ideas of Cloud Computing
   a. Literal History of Cloud Computing
      i. Yesterday.
      ii. Today.
      iii. Tomorrow.
   b. Modern Cloud “Services” Focus
      i. SaaS
      ii. PaaS
      iii. IaaS
   c. Why Jump Into The Clouds
      i. First, The Disadvantages
      ii. Now, The Advantages
   d. The 60k Ft. View of Cloud Architecture
      i. Public & Private Clouds
      ii. Enterprise, Startups, and More
      iii. On Premises
2. Starting Windows Azure Development
   a. What you’ll need, what you’ll want.
   b. Other languages; Java, PHP…
   c. Build a Cloud Site & Service with…
      i. C#
      ii. Java
      iii. PHP
3. The Platform Elements of Windows Azure
   a. Web Role
   b. CGI Role
   c. Service Role
   d. Storage
      i. Blob
      ii. Table
      iii. Queue
   e. …OTHER BITS
4. Architectural Patterns for Windows Azure
   a. Queuing Patterns
   b. Storage Patterns
   c. Instance Patterns
   d. Mixed On-Premises or Private and Public Cloud Patterns
   e. Cloud to Cloud Patterns
5. Cloud Security
   a. Physical Security of Facilities
   b. Device & Data Security
   c. Cracker & Social Engineering Security
   d. Strategies for Additional Security
6. Business, Ideas and the Future of Cloud Technology
   a. Super Computing for Anyone
   b. SaaS is Ideal, but PaaS and IaaS are core.
   c. Enterprise, Startups, and the Drivers of Cloud Computing
7. Closing – Summary & Appendixes

Follow

Get every new post delivered to your Inbox.

Join 3,273 other followers