Wednesday, November 14, 2007

WPF, awesome for demo ware

So after a few pretty cool demos with internal folks, we looked into developing a real WPF application for the business. Given the 2005 toolset we decided against it. For the few of that are really into the leading edge of things, we still felt it was clunky to develop. One thing it would definitely do is raise the expectations of the UI design around the organization. That being said, we are also looking at rolling out Dynamics CRM, SharePoint 2007 which at some level is incompatible with the WPF style of building applications. Both from a process, toolset, runtime and user experience.

We still have one application using WPF I hope to make available. Time will tell.

Can someone tell me why I need Blend there is no concept of version control in Blend?

Saturday, August 04, 2007

What’s your perspective?

One of the main reasons I have this written outlet is to provide some insight into how I’m approaching the journey towards Enterprise Architect. I’m beginning to think of the journey as transitioning between perspectives. When I design an application, I’m looking at all of the different perspectives stakeholders could approach a system from. In my history, I’ve been able to represent an end-user, data analyst, database administrator, application architect, technical support manager, infrastructure architect, change management consultant, trainer, developer, specialized application architect, and eventually enterprise architect. I’m approaching the transition to enterprise architect as adding an additional perspective. But first I must make a stop at a different position for a little bit.

How many different jobs have you had in IT? Some of the best developers and architects I’ve worked with were the best because they were able to take many things into account. They had either walked the path of the DBA, been a DBA or worked with enough DBAs to understand the key concerns of the DBA role. They had the DBA and many many more perspectives.

As an EA, I’m now looking for key perspectives I am missing to immerse myself into those roles.

Tuesday, July 24, 2007

MOSS/WSS as infrastructure

As we look ahead as an organization I’m considering different strategies to advance the architecture. One such strategy is to classify collaboration technologies such as MOSS/WSS as key infrastructure components. What is interesting about this approach is that WSS truly is an infrastructure technology. After all you can install it from the Windows install media. From an end-user, list based workflows in WSS is really not much different then BizTalk orchestrations. BizTalk gets systems talking to systems and WSS gets people talking to systems. I’m not proposing and end-around the process, but rather an enlightenment resulting from and understanding of the process itself.

As we begin to work with consulting firms on our SharePoint implementation, I’m curious how they approach the WSS/MOSS discussion. When I was at a large farm bank with WSS 2.0 and SharePoint, we didn’t need any of the features of SharePoint and rolled out WSS 2.0 only. Let me take that back. Our core IT folks saw Single Sign On featured on yet another Microsoft SSO product that wouldn’t work, and turned away. After spending hundreds of hours trying to get SSO working at the bank they shelved the effort. Our current infrastructure isn’t nearly as complicated and the IS staff here doesn’t have the same pain points in the SSO area.

The business doesn’t really care which collaboration technology they get to use as long as it facilitates their processes in a natural way. I believe the question most IS organizations are attempting to answer is whether or not MOSS brings a significant value add over WSS to meet the end-user needs. At the end of the day the end-user will either have an easy to use process or they won’t. Maybe we in IS can put some foundational infrastructure in place that allows them to realize a little more sunshine in their day.

The MOSS feature that really stands out is search. I’m curious how this goes head to head with the Google search appliances we are already using. It may turn out to be that the Google search rocks, but for business continuity planning we go with a software solution we can host in our VI3 infrastructure. Time to contact Google again and see if they plan to offer a virtual search appliance we can host in our VI3 infrastructure.

Thursday, June 14, 2007

Blending in a little WPF

The product I’m most impressed with so far this quarter is Microsoft Expressions Blend. Most importantly, the product is shipping and I don’t have to wait until 2008 to take advantage of the tooling. A developer who is familiar with Photoshop/GIMP/PaintShopPro and Winform/Web development will find this tool pretty useful. To test this out I’ll dogfood this internally in IS. We have a bundle of internal IS applications called Dradis, built on ASP.NET 2.0, AJAX, and SQL Server 2005. At first I was wondering if I could take this web application and move it forward into a Silverlight platform. Then I realized that we all use IE here at work and I really don’t have any cross-browser concerns and I wonder what would happen if I went back to one of my earliest .NET application architectures, but this time try it out with WPF.

Back I the days of .NET 1.0, I proposed a LOB application for IBM Global Services using a Flash front end and web services in the background to do the heavy lifting for the application. I was laughed out of the room and we wound up with a very functional .NET 1.1 auto-deployed WinForm application. I saw this as a real take away from the application. We had a young group of users who were expecting dynamic interfaces and new sorts of collaboration techniques that it was hard to bake into the .NET WinForm without spending most of our development time on writing GDI+ code, or making extensive use of third party control libraries.

Fast-forward to present day. My mission, turn Dradis as a WPF pilot application. Ideally I would break the existing web application into two parts, code and presentation in preparation for the migration, but since these are internal web pages, and they have grown up over the last six months organically. I may just do a port. (Maybe I’ll start with one page at a time.)

FYI, if I ever use organic growth it really means that someone added a feature, followed by a different developer adding a different feature, until we arrive at a place where the code is pretty innovative, but doesn’t necessarily conform to any sort of enterprise standard.

So why would I want to pilot a WPF application? I believe that there is an opportunity for a new class of application that is easily deployed using click-once and has a much richer user interface than we can achieve with a web technology. A major obstacle in building dynamic web applications is that the end-users expect rich application functionality at the client and it costs a lot of resources to code your business logic a few times. One of the major policies we have at our organizations is a push to deliver web based applications. When you drill into the reason why the policy exists, it really has to do with the complexities of deploying Win32 applications in our organization. This problem is significantly reduced with the introduction of Prism for packaged MSI deployments and click-once deployment technologies.

In fact, I would argue that given our current setup, the simplest application to deploy would be a traditional client server application. Our desktop and database deployment processes are solid, repeatable and very testable. We should probably question whether or not that’s the way it should be, but that’s a different post altogether…

Stay tuned to see how this thing pans out.

Tuesday, June 12, 2007

MDC07 announced

If your looking for the same great content you will find at DevConnections, VSLive or TechEd, and your around the Twin Cities, attend mdc07. A great batch of local, regional and national presenters will be diving into technologies that affect your organization. It's very reasonably priced. I attened mdc06, had an excellent time, and did a deep dive into the CAB.

http://mdc.ilmservice.com/

Friday, June 08, 2007

Infrastructure must review Dynamics CRM

How do we create an edge server or VPN for remote users?
Is our AD ready?
How about Exchange?
Are our laptops powerful enough?

Don’t underestimate the amount of infrastructure required to deploy Microsoft Dynamic CRM. I just got out of a presentation at TechEd and if your infrastructure is ready then it's not a big deal. For many people in the audience they had some really creative solutions.

Some people had to upgrade their AD, others found that thier laptops were not powerful enough to run CRM so they rolled out new hardware on Vista. Others found that thier new Exchange 2007 environment doesn't support the 2003 requirements for CRM. Off to the airport.

I met a member!

So our president gets up in front of our company and tells stories about the plan members he meets in out and about. Well here I am at TechEd minding my own business J waiting for some coffee when a .NET Trainer asks me if I really work for the ELCA Board of Pensions. Well after a few short exchanges, he pulls out his pastor card and tells me that he is an interim pastor for the ELCA. He has a part-time job as a Microsoft trainer, but has a second job as an interim pastor. He wanted to know if I knew about the disability thing. I told him that I did indeed know about the disability thing and would have a series of meetings to get that setup for him. He was also glad to know that we were working smart and training people instead of remaining in the backwaters of technology.

So next time we ask who is the member, just think that one of them is a Microsoft MVP Trainer.

Silverlight timing

Q: When is Silverlight right for us?
A: When we adopt Visual Studio 2008. Silverlight provides quite an awesome experience for web applications, but until we have tool support I'm going to hold out.

Thursday, June 07, 2007

Iron architect results…

Of all the submissions here at TechEd and after a series of pretty awesome presentations by some top notch architects I am honored to place 2nd in the Iron Architect competition. Although not quite as spectacular as the first place prize, it was nice to receive the accolades from fellow professionals and a 5.8 Ghz Uniden phone. I really enjoyed the presentation and I would encourage anyone who is qualified for the first place prize to really try out for this. The challenge presented by the Iron Architect challenge has you thinking on your feet. I felt that I learned much more from the entire experience by participating in the challenge than I did just watching the competition go down.

For those of you who are interested, I’m planning on being at TechEd 2008 and I would be interested in having some architecture discussions with folks who would like to enter. Perhaps we can at flush out the problem statement together, brainstorm some ideas, and then come up with individual solutions in a way to still make it competitive.

I look forward to next years challange. I'm just getting started.

It's Iron Architect time

Well it's official, I'm going to compete at the Iron Architect challange this year at TechEd 2007.

If your at TechEd in Orlando, come and see me duke it out with other architects. We'll be in the ARC interactive theater (Blue 9) at 4:30 p.m. I need to keep it down to five minutes. Now I get to go practice in the bathroom.

I'm hoping they don't ask me about exactly how the solution supports a disaster recovery scenario. If they do it will be interesting when I answer with things like VMWare and EMC.

To learn more about the Iron Archtiect challange you can find out more here:
http://blogs.msdn.com/ironarchitect/

Wednesday, June 06, 2007

WF, MOSS, WSS, or BTS meet your workflow needs

I recently heard from our VP that we really don’t have a workflow solution. I disagreed with him up until a few hours ago. I was in a TechEd presentation and they really explained how to interpret the it depends matrix for workflow. Here is a summary:

If you have people involved, you really should think about using WSS/MOSS.
If you have a well defined business process that involves backend systems, then BizTalk is worth thinking about.

If you have an application that really doesn’t need the human workflow interaction and really doesn’t need external interaction then the internal workflow application provided by WF can work for you.

So in sort like all architectural choices the right answer is that it depends. Microsoft really has a solid workflow strategy and depending on what you are going to do, you can pick the right technology for your needs.

Tuesday, June 05, 2007

What does .NET 3.0 mean for me?

Well if you want to code out a bunch of your own stuff it means you can begin to adopt it now. Maybe we can wait until Visual Studio 2008 for .NET 3.5 to really take advantage of .NET 3.0. As I begin to think about this it really makes sense. When a technology has a the word Framework in it it means to me that the technology is available for production use, but might not be ready for me. I’m a lazy developer and have this idea that the tools should leverage the framework. I’m thinking that maybe we can really start to adopt the newer framework technologies once we have tool support. Now I know a few people where I work embrace the opportunity to jump into the pre-tool support arena. But when you look at how you really roll out a technology for your entire group, I think you really need to take a look at tool support. Maybe next year I can go the “How to leverage development tools to do more with the Framework” presentation. Now that would be awesome.

Can Microsoft Dynamics CRM be our application platform?

A few weeks ago I was at the ICSE 2007 and I envisioned an entire enterprise of applications build on top of the Salesforce.com’s APEX platform. I just got out of a TechEd 2007 presentation that demonstrated how to really build diverse applications using the Dynamics CRM as an application platform. I got really jazzed because they would handle the backend upgrades and we could handle the configuration elements we were most concerned with.

Instead of having two choices of build or buy for our organization, perhaps we have a third choice. I’m not sure what a good name is yet for this third option, but it involves leveraging the Dynamics CRMplatform to build out almost custom applications.

I get more excited about this than I did with the APEX platform because I have an existing Microsoft developer base than can really leverage their experience and bring it together inside of unified application architecture. I really like the idea of a unified application infrastructure, maybe because it feels more familiar than a message based SOA infrastructure. With SOA I can isolate key processes and upgrade them individually. With the common infrastructure approach I can quickly see us paying a lot in custom development every few years to reintegrate our new infrastructure.

Perhaps a SaaS application platform is really the way to go, and until we get there we can leverage the existing infrastructure using a SOA as a backend.

LINQ, LINQ, LINQ

LINQ is a technology I’m looking forward to building against as soon as it is delivered. They have a done an awesome job since PDC 2005 to really bring the technology into a compelling tool. With both LINQ and LINQ for entities we are moving into a rich new object focused manipulation of data. I thought moving to OO was going to be difficult, moving to LINQ as a mainstream development tool has some really compelling stories but I’ll have to really work on the dev team and the DBAs to move them towards adopting LINQ.

If you want to learn more about LINQ, I suggest you search on it with your favorite provider. J

Monday, June 04, 2007

Creating a vendor partner ecosystem

One of my pleasures with being a full-timer is the ability to watch the great people I’ve met through the user community partner with other fabulous people in the industry and really create some excellent companies. Then I stumble into a conference like TechEd and see these very same excellent people not only with the enthusiasm for the product that I know them for, but the solid partner story that demonstrates how their organization can really work with our internal staff to strengthen our own team instead of a vendor who can do the work for us.

Of the companies represented here at TechEd, Mindsharp comes to mind as such a vendor partner. Todd Bleeker is the most passionate man I know about any product, and he and Bill English have created a company I would be willing to call a vendor partner. I don’t know how this will all play out, but I feel that whatever I would wager on Mindsharp would be an excellent wager. I look forward to participating in their OnPath program and really learning how SharePoint can be leveraged to create a dynamic organization.

Sharepoint in my mind is one of those organizational changing technologies that helps push the possible collaboration technologies of the web down to the people who can actually use it. Right now I’m on a number of process improvement projects. It would be awesome if I could spin up a team site and have people contribute pervasively in the context of the project and its goals. Having the right vendor partner can help us jumpstart our own vision and maybe even give me some team sites.

IIS 7 deployments

If you are running a web farm with IIS 7 and have the same modules installed on each server, you can store your content and configuration in a UNC share. What is even cooler is that you can stage configuration and content on the web servers and then flip over, then flip back if things don’t go so well. Search for the Staged Deployment feature in IIS 7. For more information http://www.iis.net

MOSS - I'm in but will our culture handle it?

From a technology perspective it fits very nicely with where the rest of the industry is going for collaborative authoring experiences for the organization. MOSS is a key enabling technology behind the dynamic systems stack led by Microsoft.
One key is to focus in on the Intranet as piece of plumbing. You control the pipes, determine where they go, and if necessary, adjust some shutoff valves. If you were to roll out MOSS and keep a centralized deployment team, you are really not taking advantage of enabling dynamic business processes.

Building a SharePoint portal brings a different paradigm than we had with Dreamweaver and Sitecore. It gives the authors yet a third paradigm for creating content. It's not hard, but I'm confident that our end users was freak.

When you combine the cultural changes, paradigm shifts and its ability to really enable a dynamic organization, I can certainly predict doom for this initiative. We have a single department with a very tight hold on content, we sort of does alright cultural changes, but the big driver here is the organization’s tendency to shy away from a dynamic environment. By no means is this a show stopper, and I’m being a bit cynical here, but when we attempt to deploy dynamic technology into the enterprise we really need to understand the cultural considerations of the organization.

BizTalk 2006 as an ESB

Have you ever considered turning BizTalk Server 2006 into an Enterprise Service Bus (ESB), well a couple of folks have. They have actually pulled together a guidance framework with just that goal in mind. At http://www.codeplex.com/esb you can read about my recent TLC presentation at TechEd directed at targeting the ESB with BizTalk 2006. Some of the more interesting aspects of the ESB were its ability to select destination web services by looking them up from a UDDI repository. Two main things the presenter was really jazzed about and that are up on CodePlex, was using BizTalk to handle enterprise exception handling, something we had actually just ripped out of our implementation and BAM, also a core component of BizTalk intentionally turned off.

When I find a presenter at TechEd advocates for a position that you have rejected, I begin to question the differences between the presenters experience and my own. After a brief discussion with him I determined that indeed we had a different set of experiences. We are primarily using BTS as an integration platform and he was implementing an ESB. We do not have key business processes tied to the completion job with people watching the completion of the task. They do.

Windows Vista Compatability

So first of all the System Center Service Manager class was full. Then the SharePoint Services 3.0 Overview was full, so I wound up searching for a room that had some free space available. I wound up in a class where they are discussing Vista application compatibility. One of the big compatibility issues with running applications on Vista is the ability to run under Standard User Mode, something for us to think about when we are testing our existing WinForms applications. Microsoft offers a tool called the Standard User Analyzer.

Standard User Analyzer is a tool that verifies whether or not an application runs in standard user mode. I also learned how Vista introduces hundreds of shims that allow existing applications to run inside of Vista. If your application is not in charge of maintaining machine state, then it doesn’t need to be an administrator.

Perhaps we can add the Run as Standard User to our test plan the next time we run through a test on a WinForms application.

Lunch Time....

TechEd 07 Keynote

Oh no, my IT Pro knows what I can do with Microsoft technologies in development! As Tonja and I watched the keynote, we had a presentation on BizTalk, SQL, SilverLight, and some XAML inside of Microsoft Office 2007. We also looked at the model level integration between SQL Server 2008 and SCOM 2007.

This is totally cool stuff we can begin working on today. What I would give for a business that started driving hard for some usability and integration in a single system and the resources to make it happen. I have a feeling that a lot of our SilverLight, BizTalk and WF enabled applications may be internal IS tools. I’m thinking that the iisdev:100 is a great place to start as a demo site for these new technologies.

Now off to a System Center Service Manager overview.

Sunday, June 03, 2007

SCOM PreCon

I want to know as an EA how System Center Operations Manger 2007 will enable the development group and the operations group work more closely together. What I heard was that I can describe system definition models (SDM) and setup monitoring and dependency information inside of a Management Pack. The things that SCOM had looked far different than the DSI story I had seen before from the VSTS Team. Maybe I can import a SDM from SCOM and use it in VSTS.

So here is my big beef. When it came time to describe the management pack the audience tuned out. They wanted to know how to use the management packs. What I need is for an operations group to tell me if I’m monitoring the right things in my management pack. I think Tom x from Microsoft IT explained that the product group sends the management pack to him, he tunes it and sends it back to the product team. We need this same kind of process in an enterprise LOB application to compete with the management features that Microsoft provides out of the box on their larger applications. More importantly, when I have a LOB application that uses Dynamics CRM, SQL Server, BizTalk, MOSS, AD, and who knows what other Microsoft application we can pull together a management solution for our group of four administrators to really understand this increasingly complex and foreign thing called “Something from development”.

So much for all this pondering, I’m off to party with Palmero http://partywith.palermo.cc



Saturday, June 02, 2007

Ready for TechEd 2007

I’m in the hotel room, ready to get a good night sleep. I’m installing MOSS 2007 so I can play with SharePoint this week. I’m looking for the technology to really improve upon this week at TechEd. I’m going to focus in on System Center, especially around the Dynamic Systems Initiative, SharePoint and who knows what else. I’m a bit disappointed that the Service Desk portion of System Center won’t be out until 2008. I was really looking forward to implementing a Microsoft solution in this space. I may have to settle for some SharePoint Templates around incident, change and problem management. More to come tomorrow. I’ve got a pre-conference on System Center. I hope to do well as a EA in the operations presentation.

Thursday, May 31, 2007

Documenting architecture

How do we document the decisions we use to flush out our architecture?

One of my goals is to be able to leave my current employer and have my work continued by those that follow. I do not intend for the work to be carried out by fiat, but that the principles used to construct our enterprise architecture be understood, challenged, and when enough new information is learned, the architecture evolves.

In our current architecture we have three main platforms and I’m about to introduce a fourth. The first platform is our AS/400 system followed by our .NET 1.1 environment, our .NET 2.0 environment and our new 2008 environment.

Our AS/400 environment was the hub of our universe. It had just about every application we needed as an organization, but as we started to pull pieces out of the system, the system began to lose its position as the hub. We pulled out six major functions and we decided to pull out the last four functions and move to a Windows based infrastructure.

Our .NET 1.1 environment was grounded in quicksand with an enormously expensive, a classic clunky web application. The rumor was that it cost around one million dollars per web page developed, has a backlog of defects, and keeps 2-3 people busy full time with workarounds and fixing data that the application either can’t access or it just corrupts outright. The good news is that we were able to move the largest remaining piece from the AS/400 system. We introduced VMWare into the organization and virtualized just about everything. This caused significant overhead for our SQL Server 2000 infrastructure.

Our .NET 2.0 environment introduced publish and subscribe messaging with BizTalk 2006 at its core. We introduced a common tracing and logging strategy with the introduction of Paul Bunyan, we rolled out a new website based on a web content management system named Sitecore introduced the Microsoft Enterprise Library June 2005 and moved what we could to a new Physical x64 SQL 2005 infrastructure. Most importantly we did it for less than one million dollars per web page and without introducing a bunch of new workarounds and data corruption. Executive confidence in the IS organization improved. The last three pieces are almost implemented and the AS/400 is slated for shutoff at the end of June. We learned that as the technology improved we were now discovering process opportunities that needed to be addressed.

Right now we are in an ackward middle place. We are in the process of improving all sorts of processes. We are learning about ITIL, having some meetings and beginning to discuss what it means to us, and proceeding with a deliberate pace. We hired an Enterprise Business Analyst, who happens to be leading our implementation of the Rational Unified Process (RUP). We have a number of internally named processes specific to the update of software in production Program Change Request (PCR) and we have processes to fix data in production called Program Update Request (PUR). These processes are being evaluated, and re-implemented to meet the current organizational needs. This should keep us busy for the next few years. Maybe I’ll write more on this process stuff. It’s much harder than enterprise architecture. I get to herd cats (easy). Enterprise process improvement is more like building an ark (harder).

Office 2007, Exchange 2007, Communicator, MOSS 2007, System Center 2007, VMWare 3.x promise to be very disruptive technologies for us as we move into 2008.

Now on to our 2008 architecture. Developers really enjoy working with the Paul Bunyan product. It gives us the ability to really trace messages between servers in our organization in real time, but doesn’t really give us an efficient way to aggregate all of the messages on all servers in our environment in a single place. Windows Server 2008 will be out soon and we are beginning to make plans to migrate all of our code on to that platform as soon as it becomes available. This really gives us a solid automated deployment strategy using the web.config file to configure the web server portions of our ASP.NET configuration files. We are moving to the VMWare 3.x platform which gives us a real advantage in the types of devices we can have in our VMWare infrastructure. We are looking at ESX server’s ability to restart machines during hardware failure as an alternative to a server farm for uptime reliability. We are looking into hosting a virtual Google Mini search appliance for DR purposes and hosting a Virtual Network Load Balancers such as the ServerIron XL in a VMWare platform. VMWare has made significant increases in the performance story. With 2.5.x we were really limited to one processor, 4GB ram and 32bit processing. With 3.x the ceiling is much higher. We are now looking at moving Microsoft SQL Server 2005 back into the VMWare infrastructure and improving our Business Continuity Story. Visual Studio Code Named “Orcas” is slated for us some time in 2008. We’ve got some upgrading to do on our Team System Infrastructure.

Then comes the really fun stuff. The giant initiatives in 2008 are:
- Implement Office 2007, MOSS 2007, Communicator, VOIP and CRM
- Create composite applications using a SOA backend
- Implement System Center 2007 and integrate it with domestic and commercial applications
- Integrate TFS with Quality Center and Requisite Pro
- Leverage VMWare
- Integrate RUP, StageGate and Agile into a single view of project governance, management and execution.
- All the other stuff the business wants

Like many things this post is becomming way to long, I'll be back with more later.

Saturday, May 26, 2007

Software Engineering as a Profession

At the recent ICSE 2007 in Minneapolis, Deborah G. Johnson described a framework which professionals have used to define themselves as professionals and differentiate themselves from hired guns. A few in the audience commented on how the UK and Canada had begun to organize their practitioners of software engineering into professional organization. I started to think about what this means for me. I asked myself how would a professional organization help me enjoy work more than I already do?

One of the things I really like about computers is watching people in accounting use spreadsheets. They add macros, complex formulas and really configure the computer to do what they need in order to answer some question. The really fill the need of pseudo programmers.

I really enjoy the speed at which I can build complex systems inside of our SOA ecosystem. I call a bunch of APIs, slap together some code, run it through some compiler and really configure the computer to do what someone has asked me to do with the computer.

Yeah I understand how to talk to the computer at a lower level, but am I practicing software engineering? Did I exercise any sort of social responsibility when putting together that SOA service? Did I really understand the engineering aspects of what I was doing, or was it just a factor more complex than putting together my kid’s Barbie house?

A manager I work with recently told me that “You are not qualified to know or even pretend to know what it’s like for a real person to edit HTML. It is such a part of you that it’s not worth trying to pretend.” I began to wonder….

During the dialogue after the keynote, I heard terms like practitioner and academic. I realize the distinction that the academics are making, but I’m not sure how a bunch of academics, even if they were unified would successfully mount a campaign to turn software engineering into a profession, especially when 90% of the software development community would find it hard to associate with a group of people who claim the developers aren’t really qualified to do what they love.

I see a movement in usability that will really make it easier for regular people who would not dare edit raw HTML to configure computers to do what they want. When I learn about the usability studies that Microsoft is doing specifically in regards to developer productivity I wonder if there aren’t really different types of software developers. I’ve yet to see it work, but I’m sensing that it’s getting easier and easier for non-programmers to program.

At the keynote on Wednesday we saw a presentation that demonstrated how you could configure a system to do what you want. Sure you needed to be tech savvy, but you didn’t need to be a programmer. It made me think that my days as a programmer were coming to a close.

Indeed that might be exactly what is happening. It is entirely possible that Software Engineers will design systems for regular people and the corporate developer falls by the way side.

I look forward to being able to abstract the process to make it cost effective for my co-workers not in IT.

Wednesday, May 23, 2007

ICSE - Day 1

I’m at the ICSE 2007 this week and attempting to discover how to put more science into what I consider to be a mostly artistic and political process called leveraging technology to solve business problems.
For the record this is the first conference since PDC 2005 where I’ve felt like I could really geek out. I’m attending this conference to see if I can learn from the software engineering discipline. What I’m discovering is that the discipline is present in things like aerospace, and there are some truly innovative DSL tools around factory automation, but in general and too my delight I’m finding an artistic side to this discipline. I’m also running into a lot of that “It depends” nonsense. I’m seeking answers not ideas!

Here are a few statements I heard and my reaction:
1. Software is like paint – It’s not about the paint, it’s about what you do with it. Some comments were around educational systems trying to face the challenge of educating software engineers in the art of painting compliers but when they go out into the word and look for a job, the industry is asking for a couple of complier painters, but a bunch of business application painters, etc.

2. “We lose 40% of our software engineering freshman because we try force they way they program” I was in a presentation today that focused around whether or not you should require parameters in the constructor or use the create-set-call pattern. I hope I got that right. They discussed three of the personas that Microsoft uses. I’m not sure what the percentage of each persona is, but I do know that of the programmers I’ve worked with, I can say that programmers work with their own habits, and in their own way. Having only one way of teaching didn’t work for me and I dropped out of my first Fortran class as soon as I found how to register.

3. “How did you become a good architect” – I worked with a few good architects.

4. SaaS is here to deliver the same ease of use functionality you get from Yahoo or Google and bring it to the enterprise space. – As I think about this I’m considering our current decisions around SalesForce.com and Microsoft CRM. I’m torn. On one hand I see a team of developers who know .NET technology, a BA group set on gathering requirements, and a QA group set on testing the changes. It’s how we are growing up and it’s for all the right reasons. I think that once we will go with Microsoft CRM for now but our next round might be with SalesForce.com. I’m thinking that the amount of control our organization would need to give up would not fly with all of the other organizational changes we have going on right now. From a software engineering perspective we would need to expose our internal data externally over secure web services and call to them from SFA.com. This is all very possible, but first we might have to implement something locally like Dynamics CRM, get our web services setup internally, and then migrate over to SFA.com once they get a little better and we get a little smarter. I really like the idea of running on the SFA platform, but I’m not sure I want to introduce SFA programming into our organization right now.

5. Barry Boehem is the reason it took so long for Agile to come about. He published a study that said it was very expensive to fix something in production and very cheap to fix it in design. – Barry commented on this and agreed. He also commented that it depends. The research he did and the data gathered applied to systems where the data could be collected. As soon as you introduce people into the process, how do you accurately gather requirements? Perhaps the principles behind Agile methodologies apply to more people intensive processes. Barry seems like a great guy.

6. Figure out when you should catch defects, classify your testing types and when you find a defect determine whether or not you should have caught it earlier or if you caught it in the right spot. – This is an interesting one. I’m curious to see how we tackle this. When a defect happens in production, we ask the question “Should we have caught this earlier, or is this the right place to catch them?”

Wednesday, February 14, 2007

ITIL Foundations Training - Day 2

So I've figured out a few things about ITIL so far. There is a function called Service Desk that is a single point of contact for all tactical IT needs. There is a group of processes called Service Response primarily responsible for Incident, Problem, Change, Configuration, and Release Management. There is a group of what I consider second level ITIL processes called Service Delivery. These services include Service Level, Financial, Availability, Capacity, and IT Service Continuity Management. Both the function of Service Desk and the processes around Service Response and Service Delivery sit firmly on top of data contained in a configuration management data base CMDB. From the Enterprise Architecture (EA) side of things I'm really excited about how applications can be designed to plug directly into the Service Response side. Application architects need to look closely at ITIL and determine how you can introduce non-functional requirements into your application for the benefit of the entire IT operation. Sometimes this is integrating things like QuickCounters in your applications, sometimes it might be using robust error handling and logging capabilities to create incidents in the Service Desk. There is a control side of me that really looks at financial management and would like to get my head around what it costs to provide IT services to one group over another. I think you could claim in our organization we spend three times more on one group than we do on any other. Being able to back that up with numbers could get you the leverage you need when budget times come around.

I'm not sure how much I'm going to get into ITIL at this point. I see myself primarily focused in on release management and how that overlays with the environment and deployment disciplines in RUP. I do see a significant value in having a CMDB track changes to the development environments and being able to compare the state of a test environment against the state of the test and production environments.

Tuesday, February 13, 2007

How release management could have gone better

One of the challanges I find in bringing a new application online is having the new application support compared with the old applicaiton support. We may be replacing a 20 year old system where the Service Desk has no visibility into what the AS/400 is actually doing, but they have had 20 years of experience to figure out things by intuition at this point. In contrast I'm bringing online a brand new shiny (shiny is key for executive buy in) high performance monster with over 600 CIs (Configuration Items). This new monster uses the latest and greatest development methods, methodology, and we have performance tested the heck out of it. Through observing users activity during testing we have determined that they will be able to accomplish their tasks twice as fast as on the previous system. In fact there is such a buzz around the product that instead of resisting the change, people are beginning to stop IT people and ask them when this software will be available for them to use. The system rolls out and we have one of those mid-morning parties with pastries and congratulate the project team.

Meanwhile the operations folks are scrambling to figure out why some users are experiencing slow response times, and others can't access the application at all. The problems seem remote and not even connected, then the APB comes out, all IT staff must put down thier pastries and go to the big conference room to figure out why this rollout is going so poorly. Apparently there is widespread panic among the user base that we shoudl rollback to the old system and spend another few years until this system is right. We scramble for a few days and detemrine that there were four users affected. One was a VP who had installed something on his machine that was conflicting with the new software. One was a user who's hard drive was full of family photos and MP3s and the software didn't fully install properly. Two users had reset their passwords earlier that day and needed to reboot their computer. It was some cached credentials thing with workstations and Active Directory.

As it turns out the problems were all very managable, but the application suffered some significant loss of face due to circumstances we never tried in test. Because the release plan didn't have a solid Service Desk behind it with a single point of contact for users with issues, we were unable to bring in calls in a uniform manner and deal with them in a meaningful way.

Bottom line here is that if we had a CMDB with auto discovery we would have know that the VP had something on his desktop that conflicted with the application. We would have known about the hard drive running out of space. Then we could work on the reboot your machine and all will be fine issues. Not only that but we would look like we know what we're doing and provide customers with increased uptime.

Monday, February 12, 2007

ITIL Foundations Training - Day 1

I went to my first day of ITIL foundations training as part of attempting to bridge the gap between AppDev and our operations folks. We've got a custom implementation of RUP that I'm really excited about, and I'm not sure how AppDev really works within the ITIL process.

I can't say that I really know the answer, but from an Enterprise Architect perspective I'm beginning to get really excited about the prospect of a CMDB and seeing how to lay out for folks the impact of change.

Up until now, things have made a lot of sense to me. You've got your basic web site calling a few SOA like web services, tied into back end databases and external providers, some over VPN and some using the WS-* stuff. Most of the time we use enteprise library June 2005, but sometimes we use the January 2006 stuff if we are using the new Common logging libraries that drop into our Enterprise Exception handling process tied into ProIT and our new TFS server. I mean how hard can this be?

I mean I've got pictures, deployment diagrams, and even provide operations with a set of MSI files that contain embedded configuration settings. In the event of a disaster all you have to do is go to the file share and double-click.

Maybe it's a training issue and our operations folks just don't get how to run Microsoft operating systems and .NET web applications. Maybe they just don't care.

Well as it turns out it's probably not a training issue at all. And when push comes to shove these guys (gender neutral guys of course) probably would go as far as I would for the organization.

Maybe the stuff I'm packaging up and sending over abstacts them from the issues they are likely to deal with in production.

There is one key take away for me at this training. When AppDev shoves things over the wall to operations I think we'll need to be more considerate of integrating our systems with our ITIL Service Desk and Issue management system, especially around filtering and avoiding a DOS attack on the Service Desk.

SubSonic as a new LLBL

On a project I did a few years ago we used the 1.1 version of LLBLGen to crank out a DAL. Once I converted the project over to .NET 2.0 yesterday I discovered that there was a significant amount of search and replace on the code generated out of LLBL.

It's really too bad. We really liked LLBL. We had investigated a LLBL replacement and after pinging a few friends I was given NHibernate and SubSonic as two options. I had also used DLinq on one of my VMs before but I didn't want to write too much code around a preview release. (Although it delivers most of what we're looking for)

I downloaded NHibernate and took a look at it. It wasn't as intuitive as I would have hoped and decided to keep looking. Then I took a look at SubSonic. It was pretty much spit simple and best of all it came with a sample that worked for me. As I was trying to communicate with others in my group how it could be used, I sent out a link to the 20 minute video podcast which we are calling our training materials for the tool.

We are replacing our current LLBL stuff this week with SubSonic stuff and we'll see how it goes. It's looking promising.