Author Archive for Andy

12
Jan

Integrity

Integrity counts. Proportionately, it counts far more than technical skill. And Integrity can even smooth out delivery issues. When you have a problem, and you work with someone with high integrity, you tend to partner with them on a solution rather than place blame and wait for the solution. And when things are going well, they go really well, providing the peace of mind that allows you to sleep at night without taking the work home. I’d like to introduce you to two individuals that I was fortunate to have conversations with this week.

Parminder Saini and I sat down for lunch last week at Mimi’s Cafe in Deerfield Plaza. I’ve known Parminder for about 4 years, and to this day I cannot name another individual with higher integrity. There may be a small handful of folks that could equal his integrity…on a good day. I enjoy my conversations with Parminder as he has the big picture in mind and fully understands how to run a business while partnering with his clients. He’s always looking for the win-win, even if, from an outside perspective, the short term for him might look like a loss.

I’ve had first hand experience working with Parminder on some rather large, 30+ resource, offshore/onshore projects developing shrink-wrapped software products. In this case, I partnered with him on a solution, and he never failed to deliver. Ever. Together we delivered the working product to our client on-budget, on-scope, and on the date projected nearly two years prior. This is all fine and good, but I think about some of the difficult positions I put him in as we developed the solution, and the situations where I might have fired the client, he had enough integrity to work with me and stick through to successful delivery. That takes an individual of significant character.

Erin Schreyer I also had a chance to meet Erin Schreyer for the first time. It took only about 4 minutes to feel like we had known each other for 4 years. Our motivations lined up strongly around helping other people. And Erin proceeded to brief me on her work with Cincinnati Works, an organization that helps folks become self-sufficient by mentoring them, among other things, through the basic skills of interviewing, finding, and retaining employment. They boast an 84% retention rate, and if you get a chance to meet Erin, you’ll know why.

I spent some time recruiting talent for LUCRUM, and I’ve had my fair share of conversations with other recruiters. Erin is the rare individual who chooses to transcend the transactional nature of recruiting, and instead focuses on the big picture. In short, it took me almost no time to develop a position of trust with respect to Erin.

I hope you have an opportunity to work with both Parminder and Erin. They make the IT sector a market worth being in.

- Andy

30
Dec

What’s In Store At the MSDN Developers Conference

When Mark Mydland visited Cincinnati in November to show off VSTS QA Edition, Jennifer Marsman asked me if I’d be willing to produce a video similar to this one to promote MSDNDevCon. It took a couple of weeks for all the details to fall into place, and then I was off to Atlanta to meet a bunch of great people and to take in all that was #MDCAtlanta.

Bob Familiar and Glen Gordon welcomed me to the event as the local organizers. While I was there I got a chance to sit in on Ron Jacobs‘ keynote and talk with a number of the presenters and participants. I had a chance to have some good conversations with Jeff Barnes, Wally McClure, Dana Coffey aka CrazeeGeekChick, Bruce Thomas, Todd Miranda, Alan Stevens, Shawn Wildermuth, Jim Wooley, Mickey Gousset, Murray Gordon, and Chad Brooks.

This is the final version that should be up on the MSDNDevCon site at some point. Take a look at what to expect at the rest of the MSDN DevCon events in 2009.

- Andy

22
Dec

Why You Need To Attend MSDN DevCon In Detroit Jan 22nd

The Microsoft Developer Conference showcases all the new developer initiative out of Redmond. Take a look at what happened in Atlanta and make your plans to be in Detroit January 22nd. Here’s a draft of the vid compiled for the event. The final edition, along with its resting point, will probably change. If you were at the event, leave me some feedback!

- Andy

25
Nov

November CINNUG – Dan Rigsby and REST with WCF

Holy cow! How often do you get a chance to win a piece of $24,000 worth of swag at a user group meeting? November marks the end of the CINNUG membership drive. We’re giving away 2 MSDN subscriptions valued at approximately $11K apiece, and XBOX, year-long access to Safari books, and more. About 50 people in the room gearing up for Dan Rigsby’s talk on REST. And if we’re lucky, Levy will get his Azure app working in time for the end of the talk. Who else was there? The venerable Rob Eberhardt and Joe Wirtley, Phil Japiske from Pinnacle, Rich Rayburn, Mike Wood of SDS, Western Southern Life’s Matt Brewer, Telligent’s Leon Gersing, Peggy Krpata from Cincinnati Financial, Quality Gold’s Clarence Klopfstein, Maggie Longshore of Sogeti, Ellen Steiner, and more. And the pizza’s free! What can I say? CINNUG is really out of this world.

Services in the late 90s were all SOAP representing everything we needed. Then interop reared its ugly head and WS-* became complex. Roy Fielding proposed REST in his 2000 doctorial thesis. Can we build and architecture style on the web? REST is a style, not a standard, so there is no right or wrong way to do it.

4 Tenents of REST

  1. Embrace the URI – URI segments map to domain semantics
  2. HTTP verbs are your methods – GET is special because you do it most of the time
  3. Content-Type is the object model
  4. The status code is the result

HTTP can map to CRUD

  • GET is Read, and cacheable
  • POST is Create
  • PUT is Update
  • DELETE is Delete

High REST is the strict interpretation of REST. Every time you interact wiht a resource you use an HTTP verb. Low REST is not so strict. You might put a method inside the query string. RESTful means that REST is being used.

Why is REST important? MS embraces it. WCF, Azure, ADO.NET, AJAX all depend on REST. REST/POX (Plain Ol’ XML) is much more widely used. Amazon services 85% REST. Google maps all REST based.

What are advantages of REST? Long reach and interoperability, very light weight, scalable applications and cacheable calls, less work on the client, and a URI allows categorization of everything.

But there is no metadata. No WSDL. You need to parse the XML and figure out what it is. Also, no message level security as security is only at the transport level. WS* features don’t exist, but with most simple services it is fine to not have these things. A common standard does not exist. REST is not appropriate with large amounts of data.

So, with SOAP you kindly request formal data with all the platitudes. With REST you tersely order the recipient of the request around. Still, they work together, and all services could be implemented in both SOAP and RESTfully.

WCF added REST support in .NET 3.5 with new namespace System.ServiceModel.Web. The extensible WCF model holds as no existing code needed to change with the addition of REST support.

How WCF handles the Tenant 1 – System.UriTemplate where {} Holes represent the segment that maps to the domain semantic.

Tenant 2 – System.ServiceModel.Web.WebGet assumes GET, and .WebInvoke allows for any HTTP method.

Tenant 3 – didn’t catch this one. sorry.

Tenant 4 – WebOperationContext complements the OperationContext of WCF to set and get the status code.

Dan did 9 demos and showed a lot of code to help drill the concepts for us. DanRigsby.com has all the demo code under his speaking engagements section.

What can we use REST for? Syndication. RSS vs. Atom. Both XML Syndication formats that define distribution. Atom has more features, but RSS more accepted. Atom is growing now, and WCF understands both. So there is a need to create syndication objects independent of format. You can do this with the System.ServiceModel.Syndication.

MS released the WCF REST Starter Kit in October that includes Help, Representations, Caching, HTTP Verbs, Security, Error Handling, Hosting Settings, and Templates features.

After a bunch of demos we broke for pizza. On return, Mike Levy did a great talk on Azure. I mean REALLY Great! Did the code work? Does it really matter? It’s way cool. Eventually it did. Resources include the Azure SDK, Training Kit, and tools for Visual Studio.

Now for the swag.

- Andy

29
Oct

October CINNUG – Silverlight 2

Really informative and engaging CINNUG last night as Matt Casto demo-ed much of his work in Silverlight 2. Of course, with Mike out of town there had to be technical difficulties. We couldn’t get the projector working with Matt’s laptop. With a bit of finageling Tim Apke got Matt setup on his Mac.

A boatload of people attended including Rich Rayburn, Parag, Phil Japikse, Matt Brewer, Joe Wirtley, Nino Benevenuti, Peggy, Maggie Longshore, and Leon Gersing to name a few.

Ryan Cromwell from SDS kicked off the evening once we figured it might take a while to get Matt up and running. Ryan did a quick presentation on the visitor pattern.

Ryan Cromwell - Visitor Pattern

Ryan Cromwell - Visitor Pattern

The bottom line: Don’t muddy entities classes with unrelated logic, get away from single responsibility.

Matt Casto - Silverlight 2

Matt Casto - Silverlight 2

Most of Matt’s presentation was a demo of Silverlight 2, so there isn’t a whole lot to report on. Much of the night we spent modifying XAML and seeing what happens. Yet there were a few nuggets of valuable information.

Silverlight is the Microsoft browser plugin usually likened to Flash. From a developer perspective, the difference is that Silverlight is based on XAML, a declaritive language, to define UI, where Flash uses other descriptors. Silverlight supports vector graphics to ensure a detailed rendering at any resolution.

The XAML standard supports full 3D. Someone commented that perhaps you could load 3D renderings into XAML designer. A team somewhere is developing a Quake port to Silverlight.

WPF, the superset of Silverlight maybe, has a number of new user controls – announced at PDC – that make developing user interfaces in Silverlight a much less tedious process. When you write your own controls in Silverlight you wind up writing the same code over and over. The addition of Visual State Manager allows a developer to define styles that can then be applied to states. This paradigm reduces the amount of customization necessary for each individual control in the UI. Check out codeplex for details.

Expression Blend is the designer oriented tool for WPF and it contains a storyborad editor.

Parag using Expression Blend

Parag using Expression Blend

Other controls include the treeview, doc manager, view panel, auto complete, and others. Again, the code is available on codeplex.

Is Silverlight ready for the enterprise? What’s the standard technology answer? “It depends.” Some enterprises do WPF work now, so the integration of Silverlight may not be a big issue. A problem with Silverlight is that all the stuff resides in the .xap file, so a change requires a full download to the client. There are ways to split this up, but the problem is not solved yet. Also, printing doesn’t work consistently, or even well, across browsers. A kludgey work-around includes implementing a managed bridge to Javascript where you layout  elements in a div in the page the way you would want it printed out. Crappy, but it’s the best solution at the moment.

Can grids compare to the .NET grids? It depends. Silverlight runs in a mini-framework pared down. You don’t get all the functionality of .NET. Yet, it’s a 4.3MB download, so a tiny footprint.

Microsoft is partnering with Novell to develop Moonlight, a Silverlight for Mono implementation that targets non-Microsoft platforms.

The bottom line? Most IT shops don’t blink at Flash as a requirement, so Silverlight may be a targetable platform.

- Andy

29
Oct

October CinArc – Who’s Responsible for Code Quality

There’s something to be said for smaller groups. Around 10 of us had some great discussion about developing efficient processes to move builds from dev to test to prod and about an architect’s responsibility for code quality. Leon Gersing, Mike Levy, Mike Wood, Maggie Longshore, Nino Benvenuti, and some others talked around the table, fishbowl style, at Max Training in Mason.

A quick note about future meetings. The new date will be the 3rd Thursday of each month as Max is consolidating user groups to Thursday evenings. So check the dates of your favorite group. Chances are the date has changed. CINNUG, by far the largest group to meet at Max, is the only exception as it will keep the 4th Tuesday of the month schedule.

I gotta get some exciting announcements out of the way. The 10/28 CINNUG will feature ineta speaker, Matt Casto, talking about controls in Silverlight 2.0 (yeah, I’m publishing on 10/29 – it was a great presentation, though). The 11/25 CINNUG will be the culmination of the membership drive and you’ll want to be there to hook some awesome swag. We’re giving away an xbox 360, a 1-year subscription to Safari Books online, and 1 MSDN premium subscription valued at $10,000 that includes VSTS. You have to be present to win. You get one entry in the give aways for each meeting you attend and for each new friend that comes with you. So you still have Oct CINNUG, Nov CinArc, and Nov CINNUG to earn entries. Bring some people with you.

November 17th will feature a CINNUG special meeting (and, yes, it counts towards entries in the giveaway) where Microsoft’s Mark Mydland will present on VSTS Tester edition. Mark manages the development and QA teams responsible for Visual Studio Team System for Software Testers, and he’ll take us on a deep dive of what to expect in future releases. 6PM at Max Training.

Other odds-n-ends include the next MSDN event on 11/5 that will cover SQL Server 2008. PCD keynotes will stream live this year. Expect announcements and unveiling of Microsoft’s implementations of cloud computing, Oslo, and distributed computing.

Back to CinArc. Our first topic was the process for moving builds from dev to test to prod efficiently. The notes are in raw form below for those who are interested in following along. I’m way behind on posting, and I didn’t have a lot of time to make it all nice and pretty. You can thank Matt Brewer for a great job on the notes.

Creating/Designing Dev-Test-Prod Environments – Handling the differences (Mike Wood)

Topic Synopsis:

  • How do you architect a solution to ease the transition of code artifacts between dev-test-prod environments?
  • How do you handle the differences between these environments?

I’m already late on getting this out, so here’s a raw dump of the notes.

Creating/Designing Dev-Test-Prod Environments – Handling the differences

Topic Synopsis:

  • How do you architect a solution to ease the transition of code artifacts between dev-test-prod environments?
  • How do you handle the differences between these environments?

Discussion:

  • Are Web Apps the answer? Helped to take five deployment steps down to one
  • How to handle Test and Prod when dealing with outsourced/offshored development shops? Hard to prevent code churn.
  • Is there an inherent policy problem?
  • Try to get as close to a “click-to-deploy” as possible via automation
  • Change management Red Tape – grows over time
    • Find an external partner to help define the process – Helps keep politics to a minimum.
  • There is a perception that Change Management process provides throttling which in turn produces quality. “It takes time to do things right”
  • Communication is key
    • Project Management -> Change Management
    • Processes need to align
  • Projects need to bake in time
  • If following an Agile approach –
    • Start to invite the operations folks to stand up when sprint is 75% complete.
    • This gives them time to start on your infrastructure needs
  • Know how to correctly test before moving environments
  • The solutions architect must act as a “Broker” in the process

Key Conclusions:

· Baking in project time to do the change management function

· Communication with operations

· Involving the right people in the project at the right time

o E.g. Inviting Ops to daily scrums at a certain time in the sprint

Moderators Note: This topic obviously went off course from Mike’s original intent. We talked more about the process of change management slowing down time to market than how to architect system to move across environments easily.

Architects Managing Code Quality

Topic Synopsis:

  • Is Quality a last priority?
  • Where does Quality fit in the software development lifecycle?
  • Quality as defined by Leon: Reducing Cyclomatic Complexity, Following good OO principles (SOLID)
    • It is not just following coding standards

Discussion:

  • Code Reviews with everyone involved
    • Maintain a wiki of the reviews
    • Frequency: once a week starting out, taper off over time to specified intervals – be consistent
  • How do you fight the “If it runs, it’s good enough” mentality?
  • Code review need to be done on everything – including patches
  • There needs to be leads (architects) that are constantly training/retraining devs on the process
  • Book from Parasoft CEO (link needed)
  • Creating a culture of shared responsibility for quality
    • Lean Manufacturing – “Pulling the Rope”
  • Having the proper tooling for a team code review is very important
    • Helps streamline the process
  • Explicitly ranking quality
    • Where does quality fall in the Time – Features – Cost triangle?

Key Conclusions:

· Quality is fostered through a process of code reviews with architects at the lead

· Everyone on the team must be involved review the code

· Collective ownership of code helps to drive quality

Mike had a number of great reads to give away including

The Enterprise and Scrum

I. M. Wright’s Hard Code (Best Practices)

- Andy

16
Oct

Bangalore Traffic

I came across this email from a friend, Brian Smith, that he wrote to me a few years back. If you’ve been to Bangalore then this will ring hilariously true. If not, it’s a real description of what you can expect on the streets. I’ve lived it. I thought I’d share it with you.

- Andy

DRIVING IN INDIA

It has been an experience driving in Bangalore, as well as between Hyderabad and Kakinada (a 10.5 hour road trip). At times it has been hilariously funny; at times it has been pretty intense; there were a couple of times that I was actually scared for my life. But what a riot it is to drive in India.

Because of the trip that I have taken to Kakinada, I have discovered that there are two different styles of driving: Urban driving and rural driving.

URBAN DRIVING

The best way that I can describe how the traffic flows in Bangalore is like an active river with boulders in the flow. The water of the stream is constantly shifting this way and that, rolling around the boulders without giving them much notice, carrying along with it all types of leaves and twigs and bubbles.

Yes, I know there are lines painted on the road. I don’t know why the government spends money painting those lines; they don’t mean anything. The river just flows…

Except instead of hearing the gentle gurgle of the water, you are hearing the constant chatter of horns. All kinds of horns. Small horns on mopeds all the way up to the large (and very intimidating) air horns on the large trucks. It is amazing how much can be said with the delicate toot on the horn, or a long, constant blast of the horn. The horn is used to communicate many things, such as:

“Hey buddy, I’m right off your back bumper so don’t slam on your brakes.”
“Hey buddy, you are veering close to my car. Try veering the other way.”
“Hey buddy, the light is about to turn green. Get ready.”
“Hey buddy, we’re all stopped in traffic. Isn’t it a lovely day?”
“Hey buddy, I’m coming around the corner so if you’re in the street you better get out of the way.”
“Hey buddy, I would like to take that space in front of you, please.”
“Hey buddy, it’s OK for you to take that space in front of me. Have a good day.”
“Hey buddy, I’m going to pass you because you are slow and I am zippy fast.”
“Hey buddy, I see that you are passing me. Have a nice day.”
“Hey buddy, that maneuver you just pulled was stupid. You should have looked in your mirrors.”

Oh yeah, mirrors. Mirrors are sooo over-used in America. You see, you just have to flow with the river. If you want to pass the person in front of you, just start veering to the right and give him a courteous toot to let him know. If there is a person on your other side who does not approve, he will let you know. If you want to turn onto a new road that is very busy, you don’t need to look and merge – you just turn; the river will flow around you. You don’t need to look where everyone is; you just need to listen to the sound of the horn. These ears of ours hear very well in three dimensions. I suppose instead of vision tests, they get hearing tests over here (that was a joke).

It is not unusual for the side mirrors to be removed (either with tools or the blunt force of another object hitting it). A large number of vehicles have some type of visible damage from minor accidents. For that matter, most traffic equipment (signs, gates, curbs, poles, trees lining the streets, etc.) shows evidence of being abused by the passing stream of traffic. I was surprised to learn that the concept of car insurance does exist in India, and the rates are actually quite cheap. The downside is, of course, that it is difficult to get a
payout from your insurance company, so it is not even worth the time to pursue claims for small repairs.

Regardless of the size or condition of the road, it is shared by all. Any time between 6:00 am and 12:00 am, there will always be traffic, and achieving speeds higher than 60 kph is difficult and short-lived. Every road will at all times simultaneously have the following travelers: Pedestrians, dogs, goats, cows, bicycles, bicycle
rickshaws, bicycle carts, auto rickshaws, mopeds, motorcycles, cargo rickshaws, all types of cars and small vans, carts pulled by oxen, farm tractors pulling a load, lorries (a cargo truck smaller than a US semi truck), construction vehicles, and large buses.

It is not unusual for a driver to suddenly make a decision to turn across multiple lanes of traffic. It is not unusual for brake lights to not be functioning correctly. It is unusual for a driver to use a blinker to indicate a turn or lane change ahead of time. A driver must stay constantly alert for how the river is flowing and plan
accordingly ahead of time. Somehow, even with all of this variety and chaos, only a few people (and maybe a couple of animals) are killed a day.

It is amazing to see what can be transported on a head or bicycle or motorcycle. Bunches of bananas, mounds of mangos, round bags of rice, piles of pans, loads of laundry baskets… Truly, it is an amazing
feat in some cases to strap on the cargo and travel all the way to the destination without losing the load, crushing the driver, or breaking the vehicle. In fact, it is rather common to see a standard motorcycle
carrying mom, dad, and two small children. It is common to see an auto rickshaw carrying four passengers. Truly, truly amazing.

Most busy intersections have traffic signals. Most travelers obey the traffic signals most of the time. If the intersection is regulated by a traffic officer, the travelers obey his commands for fear of having to “negotiate” the price of an infraction.There are certain busy intersections that don’t have traffic signals,
but should. In those cases, you’ve just got to push into the cars in front of you or you’ll never get across the street. Don’t worry that the cars in front of you are traveling perpendicular to the direction that you are going, and they are pushing into you to get across the street in their direction; with a little chatter via the horn, everything will be just fine.

Almost all vehicles are driven by men, but every once in a while you see a woman driving a more feminine-looking motorcycle or scooter. If a woman is a passenger on a motorcycle, most of the time she will sit
side saddle, but sometimes she will be sitting normal; it depends on the type of clothes she is wearing, since most women wear the equivalent of a dress.

RURAL DRIVING

There are large roads that are the equivalent of a nice four-lane divided highway in the US with a posted speed limit of up to 80 kph. The traffic thins out a bit out in the country, yielding the tempting
possibility of actually using 5th gear. There is no concept of getting a speeding ticket, so if the driver if bold enough they may have the ability to reach upwards of 120 kph.

Unfortunately, as stated previously, the road is shared equally by all. Even if you get a nice stretch of open road where you can kick it up above 100, you never know when there will be a farm tractor or a herd of buffalo just around the next corner. This forces a natural speed limit on the driver that is often less than the posted speed limit, and this tension between high-speed and low-speed travelers is very abusive to the horn, the high-beams, the brakes, and the nerves.

It seems that many drivers can’t seem to fathom why the government built two roads that exactly parallel each other. I mean, two entire lanes going in a single direction?! What a waste of good pavement. So it is very common for cars to actually turn the “divided highway” into “two parallel roads” by driving in the wrong direction for the lane.

The phenomenon of completely ignoring painted lines is apparently relegated only to the city of Bangalore; drivers outside of Bangalore did maintain better lane discipline, but are still much more loose about passing on the other side of the street than us tight Americans.

Hitch-hikers are very common. There are many men who need to travel (mostly for work) but cannot afford a vehicle or a bus ride. The lorries seem friendly enough to pick up these people, and it is common to see upwards of six people riding on top of the load of a truck (20 feet up, open air, no seat belt).

Paved roads are in good condition most of the time. If a road is not paved, however, you must travel very slowly. The roads of a village are usually not paved. Nearly all city roads are paved. With the notable exception of how travelers actually use them, the roads themselves are equivalent to the highway system (not the Interstate system) in America.

Conclusion: It is best to say your prayers and be right with God before leaving for your destination.

A motorcycle with a fairly light load

A motorcycle with a fairly light load

Waiting at the "bus stop". Notice the guy on the left going the wrong way

Waiting at the bus stop - Notice the guy on the left going the wrong way

An excellent example of an auto rickshaw - these two-cycle engines belch smoky exhaust

An excellent example of an auto rickshaw - these two-cycle engines belch smoky exhaust

An excellent example of a bicycle rickshaw - they were all in this same condition

An excellent example of a bicycle rickshaw - they were all in this same condition

A woman sitting side-saddle

A woman sitting side-saddle

A typical view of the street showing a variety of vehicles. Notice the guy on the left going the wrong way

A typical view of the street showing a variety of vehicles. Notice the guy on the left going the wrong way

Riding on a lorry - 5 passengers hoping there isn't a bump in the road

Riding on a lorry - 5 passengers hoping there isn

Bunches of bananas on a bicycle

Bunches of bananas on a bicycle

An ox-drawn carriage

An ox-drawn carriage

Riding on a lorry - 7 passengers hoping no one bumps from behind. There were probably an additional four or five passengers in the cab

Riding on a lorry - 7 passengers hoping no one bumps from behind. There were probably an additional four or five passengers in the cab

15
Oct

UC Dept Of IT And A Pretty Amazing Story

For the last 8 years a consensus has begun forming around IT Education. Where CS focuses on theory and mathematics and IS on the big picture, IT Education sits somewhere between the two at an implementation level of integration, security, and management. UC’s IT department has a long history of influence in shaping what an IT focused education should require. To that end, the international ACM SIGITE conference (Association for Computing Machinery Special Interest Group IT Education) will be hosted by UC’s IT program and held at the Millenium Hotel in downtown Cincinnati this Thursday, October 16th through Saturday, October 18th.

I bring this to your attention because if you’ve followed my work, you know how much respect I have for both UC’s IT program, hosted in the College of Applied Science (CAS), and their students. Each year I’m amazed at the quality of the senior design projects and the collaboration between faculty, staff, and the community to make a real difference with the projects they choose. The outcome of senior design and the quality of student is no coincidence. The program design as well as its alignment with the real world set the graduating seniors up for great opportunities and well-paying, interesting jobs at graduation.

Browse through the conference link above and take a look at what our education community is doing to create a strong technology foundation in the research-development-application triangle. For UC to host this international conference is a great honor, and I have no doubt that other university programs will walk away with a high level of respect for what UC has compiled. Out of the ACM SIGITE Accrediting Board for Engineering and Technology, the UC IT program is one of the first 10 programs in the nation to receive accreditation.

Great job! Kudos to department head, Hazem Said, for putting together a great team!

- Andy

14
Oct

October ArcReady – Architecting Modern Distributed Apps

Brian Prince, the regional MS enterprise architect evangelist, presented October’s ArcReady event at the Mason Microsoft offices. Brian noted that the PDC keynotes will stream live this year, so pay attention and listen in for all the big MS announcements. The Q2 ArcReady event on December 2nd will focus on some of the soft skills of architecting your career. It’s a FREE event, and you can register here.

This month’s meeting focused on architecting distributed applications. Surprisingly, a lot of references to Salesforce.com, a platform I’m fairly intimately familiar with at LUCRUM. We use SFDC and have been able to do some pretty amazing things with it in very short amounts of time.

Trends in distributed app architecture certainly include SOA and the promise of reuse to drive IT agility. The goal with SOA being the ability to respond in, say, less than 9 months to the business users’ requests. SaaS, another delivery model and the Salesforce way, brings scalablity to single instance/multi tenancy to services delivery. And you get to offload the infrastructure to someone who cares. Web 2.0 is the framework that exposes and builds into applications collaboration and the network affect. As an aside here, if you ever get the, ehem, priveledge of working with any Blackbaud products, they would be the opposite of Web 2.0. Rich Internet Apps is another trend harnessing the UI power of Javascript and interesting design to create compelling user interfaces. And finally, cloud computing brings the utility model to computing with services such as Amazon’s S3 where you can spin up Linux servers as the need arises.

Options available to architects need to balance the tension between control and economy of scale where combinations include

  1. On premesis hosted in your own data center
  2. Hosted solutions running your own code on someone else’s infrastructure
  3. Running your own bits on the cloud
  4. Purchasing or leasing a vendor supplied app in the SaaS model

Build vs. Buy becomes your next choice as you need to balance strategic value against control based on each of the above scenarios.

Build vs. Buy

Build vs. Buy

Brian shared with us the Microsoft blueprint for distributed architecture.

Architectural Blueprints

Architectural Blueprints

Take a look at the presentation to understand the available permeations and how your business needs map to the available architectures. Then decompose one of your systems or business processes and map to a specific architecture. Rinse and repeat with two or three more systems/processes. Finally settle on the three or four architectures that your organization will support and work within those parameters from a governance structure. From a reference perspective, the presentation will also map the logical architecture to the Microsoft product line.

Brian also covered Zermatt in session 2. Zermatt is the MS framework for implementing claims-based identity management. Unfortunately I had to attend a real work meeting, so I had to cut out early. You can find both presentations at the presentation link above.

- Andy

11
Oct

October ART – Squeak

Pushing the envelope as usual, this month’s Agile Round Table broke some new ground. But new ground is not unusual here, so maybe it’s just broke ground. While cyclical, with the latest toolset being Rails, between macro cycles the group explores and experiments with other technology. Of note lately have been the deep dives into Javascript and exploring its native OO capabilities. Last week the group wrote an implementation that created triangles in a smalltalk web app framework from Seaside called Squeak.

Now I’m not going to pretend that I understood it all. In fact, I spent the first half of the day at ArcReady, the second half at this quarter’s MSDN Event, so by the third half I was basically spent and didn’t have much left. Still, the subject matter is fascinating, and it’s such a growth experience to spend time around folks who don’t like to be comfortable within a skill set.

What I did gather, if I caught it all correctly, is that we were writing code in a browser-based development environment. The usual crowd was in attendance: @dougalcorn, @jimweirich, @esumerfd, @objwind, and others. So here are the links. If you have an evening, give Squeak a try.

Seaside Homepage

Seaside Image Download

Seaside Tutorials

Silent Seaside screen cast and here

and transcription

Steve Wessels has a tutorial and here

Squeak documentation

Resources

Seaside Book

Installing the GemStone/S Web Edition on Mac OS X Leopard

- Andy