I have enjoyed catching up on the banter on a number of differnt blogs (even if the discussion may be a little too personal and vindictive at times). Thought I’d add my 2 cents

First of all let me day that I agree that the P&P stuff is heavily bloated. (Though, I have looked into several of the products only in passing and I have not implemented any yet.)

I have a markedly Agile mentality, even if I have yet to work on a team that that uses any of the agile approaches. And if I were to pick a side, it would definitely not be with the more Agile approach – its nice to see MS moving that direction no matter how little or how poorly implemented we may believe they are doing it. The fact that they are showing some movement is a victory in the legitimacy of the approach.

But, let me play devils advocate and turn the table. There are a couple of other frameworks out there that the same argument may be applied to. For example, why use NHibernate? Many of the features may never be used in a project, so why not apply YAGNI and (re)write these features it as you need them?

I guess what I’m saying is that bloat is not necessarily the main thing that is wrong with a given framework. If the bloat is well thought out and useful, and more importantly, if the client implementation of the framework allows you to use just what you need in an appropriate manner (simple implementation, simple API, and quick learning curve;  more complicated implementation, more complicated API, and quick learning curve), then use the framework – be it an MS framework or OSS.

25 May 2007

I’m still here.

Sorry for the drop off. Man, its hard to find the time. I hope to post the next installment this weekend. In the mean time check out the other interst that has been eating all my time.

www.imagesmith.aminus3.com

www.imagesmith.wordpress.com

Before I let you all in on the project I’ll be starting with, let me tell you about the tools I will be using.

I will be developing in C# 2.0 and will be using Visual Studio 2005 Standard Edition. My copy of VS2005 was the result of a promotion Microsoft put on about a year ago. All I had to do was listen to 3 pod-casts they put out.

Another promotional windfall was the telerik windows forms controls. These were won by downloading a demo copy, watching a screen cast and playing with them for a bit. Then I answered a little on-line quiz. Voila! I now own a licenced version. I am not sure if I will be using them, but I will definitely try them out.

The moral of these stories? Keep your eye out for promotional giveaways.

The other portion of the formula is SQL Server Express. When a database is required, this will be the one I will use. However, for this first project I think I will be using XML serialization.

And now for the big reveal.

One of the projects that I have been thinking about is a blogging content management system (CMS).

I know, I know. There are already all kinds of free blogging engines and portal frameworks out there for me to use, why re-invent the wheel? Well first of all, this idea has been in the back of my mind for some time, back to when the list of simple and free CMSs was fairly small. It seemed that every other web development company had their own version. Back then, I worked with a couple and thought, “These products suck, I can do better!”

Not only has this project been in the back of mind for some time, the purpose of this project is not nessecarilly to produce a marketable product. It is to learn. To develop using the methodologies and best practices I think I should be following at my day job.

So the blogging CMS is a front runner.

Another project I keep threatening to write is a classroom curriculum manager. My wife works for a children’s music school. As apart of her work she needs to prepare lesson plans and take attendance. The school tracks the children, the class the children are in, the teacher of each class as well as the curriculum of the class. All this information is nicely stored on hand written sheets of paper. My job is to take these class lists and import the data in to access just so I can produce certificates for the children.

My wife is, also, the head of children’s ministry at our church. The solution created for the music school could be developed to meet the needs that any school or classroom may encounter. This solution could end up being on the scale of an enterprise application solution. A little bigger with more possibilities for a variety of development patterns.

So the classroom/school manager is also a front runner.

But the winner goes to…

… a smaller and therefore a solution that should be quicker to develop. My initial project is going to be a poker application. This application will manage games, players, statistics and will run during a tournament (or game) to inform the players of level increments, the blinds for the new level as well as, the potential new game that is to start.

Currently, I use a third party alarm that notifies us of level changes during a game.

This works fine for basic information on level changes, however, I would like to have more control. My solution will allow me to enter all the details required for a game. Level intervals(with the possibility’s of having variable intervals), blind amounts at each level, game payouts, players, and player rankings. There may be more end user criteria that I am forgetting about or that we will realize as a result of feedback from the development process, but this is the way it is in the real world, so we’ll use this as a starting point.

So whats next?

  • We’ll have to setup the our CI environment.
  • Create an initial design for our first iteration.
    • we need to look at the design processes and methodologies we will follow
    • look at coding methodologies
  • Start coding

So,
Until next time.

Hello World!

4 May 2007

Well I have finally done it. I have broken down and started a blog.

Actually, I have signed up for many a blog since about 2001 or 2002, but this time I am really going to do it.

The reason? Well lets just say that my job – as a software developer – leaves much to be desired. I am less a software developer as I am a software maintainer and bug fixer. Of course to keep a job as a bug fixer, I have to also be a bug introducer, but that is another topic – one on proper methodologies and best practices.

Don’t get me wrong, although my working environment is not perfect, I know that most software developers are in the same boat I’m in. That is why most software projects fail.

The goal of this blog is to allow me to vent. To allow me to expand my repertoire and arsenal of software development weapons. To allow me to grow as a software developer, as a communicator and as a member of a larger community.

My goal is not to teach. My goal is not to be a resource of knowledge. There are many other great software bloggers out there who are in a totally different league than I am (Scott Hanselman, Jeff Atwood, Roy Osheroves, the ThoughtBloggers, … the list goes on).

As a matter of fact, it was an interview with Jeff Atwood on .Net Rocks! that finally pushed me into the blogosphere. So this blog will be a means of learning to communicate, to network and maybe even to be an online reference for my resume.

Anyway let me finish up this introductory blog with a bit of what you can expect.

As a software developer, I am in the dot net camp. On the job, most of my work is done in VB6, COM+ and ASP. There is no layering or any kind of user interface in any of the applications I routinely work in. These applications started as an excel sheet with added VBA code and grew into the big ball of mud that they are today. There is all kinds of room for improvements but no time alotted to do any of them. New feature deadlines are not months or even weeks away. They are today or yesterday. As a matter of fact, many of the features that I have implemented have been developed while we had someone on site doing an installation or customer training.

Needless to say, some of the issues that I come up against on the job will make it into this blog.

However, to help keep me sane, I thought that I’d start a new project. This new project(s) will be the main subject of this blog. I will look at design, coding, and testing issues as I am working through them. I will also talk about methodologies and best practices.

I haven’t decided on the project itself yet – though I have a couple ideas brewing, but:

  • I do know that the coding will be done in C#.
  • There will be an up front design of some sort but not BUFD, and the coding will be done using TDD.
  • I will set up my development environment with Continuous Integration using NAnt, NUnit and Cruise Control.
  • I have not decided if I will use NHibernate or roll out a custom DAL.
  • A couple of the other key practices and procedures will be refactoring and design patterns.
  • And then there is security, logging, user interface design … the list goes on.
  • I will try and post regularly, though life -read wife and two preteen daughters- may have its own say on the time line.

    Until next time.