RSS

New year, new horizons, and an old video…

As I promised when I started this blog… I’ve been working on a series of videos about the History of Programming.  The overall video has been done for a very long time, almost 6 months, but with some of the limitations on size of uploads to YouTube, I’ve had to break the video up into a 6 part series.

So without further delay, here is Part 1 of the History of Programming:

Be on the lookout for parts 2 – 6 in the coming days.

Mike

More to come…

 
2 Comments

Posted by on January 3, 2012 in Opinion

 

Finally, I feel vindicated, sort-of…

Have a safe and wonderful holiday season

Happy Holidays

As many of you know that have viewed and consumed my writings over the years, I have some very specific ideas about software development and delivery.  If you watched my latest blog on The Great Methodology Paradox, you know that I’m not a huge fan of the agile approach or the Lean-Agile approach as the beat-all, end-all, of project methodologies.  At the end of the day, people are what make projects succeed; the process is only an overlay, in my opinion.

However, I know all of us have talked to that one developer that states something like:

Me:  So what does the Application do?

Developer:  Well we are using the latest in database technology with a backend that is supported by Oracle using the most current release and we are fronting that database with Cassandra because we needed “big-data” and we will need well over 1,000,000 writes per-second.  Heck, we helped Apache debug the product because we needed to work.  Then we have it tied together with the latest Spring server using the latest JDK 7 and we even support the new Java project Coin because we needed the enhanced Exception handling process, and using the latest in both whitebox and blackbox testing methodologies for zero regressions.  Plus, as you can imagine we are using the latest in browser technology for the front-end, because we believe in HTML 5 and we are so cutting edge.  Of course this is using the latest Jira for issue management, and we are using the latest in UML for internal documentation and explanation to management, it is the bomb!

Me:  Again, what does the application do?

Developer:  It calculates interest on used car prices on a general loan as an estimator.

Me:  How many calculations can it do?

Developer:  Well, right now it is not working…

Me: Ohhhh!

As most of you know the only thing in my book that matters when it comes to software is that it works!  Period!  That is it, nothing else, if it doesn’t work, it is useless.

When training new developers I will ask that question; “what is the most important thing the software you are writing must do or have?”

The answers are staggering; good comments, great requirements, good architecture, clean code, object-oriented, java, Delphi, x-language(s), must have unit testing, must have audits, metrics, must be optimized, and the list goes on and on and on.

Nobody ever says:  It has to work!  Actually they usually say everything but that, so I was overjoyed today to read in my latest IEEE Software magazine (Jan/Feb 2012) issue that one of the people I have followed in my career stated the same thing.  The great article is “The Professional Architect” written by Grady Booch, where he states in context:

“This may sound like heresy, but for each of these [medical] systems, the raw, running, naked code is the most important artifact.  Everything else – models, requirements documents, test cases, you name it – is secondary or even tertiary.”

He does go on to say that those extra things help manage the project and can help the developers develop better code, but the most important thing is that the code that we produce, works.

On one hand I’m glad to have a “heavy hitter” like Grady coming to the same conclusion I came to many years back, but I’m sad at the way he had to come to realize it.  You will need to find that article and read it, but it may have taken death to stare him in the face before he realized the ultimate truth of what we do when creating software and what the ultimate need really is.

That software must work!

I’m sure we have all met this developer:

Me:  Whatcha doing?

Developer:  I hacked together this quick Apache module that calculates the interest on used car prices for a general loan estimator.

Me:  How does it work?

Developer:  It’s working.  Our site is being hit by about 10,000 hits per minute and it seems to be holding up.  Maybe in the next release we will give the option to do different types of loans, but we will see, users seem happy with it.

Me:  Cool.

Mike

More to come…

 
3 Comments

Posted by on December 22, 2011 in Opinion

 

What’s next?

That of course is an interesting question, especially right now.

Next up on the Blog horizon, is my History of Programming, which is a 7 part series and that is coming in the next couple of days… then the infamous 2012 Predictions.

Plus, I’m toying with the idea of the 12 Metrics of Christmas, where I breakdown 1 metric per day and try to show you how to use it.

I would love some feedback on the 12 Metrics of Christmas because I would love to know what Metrics you would like to see with regards to Programming.

We will be talking soon,

Mike

More to come…

 
Leave a comment

Posted by on December 8, 2011 in Opinion, Uncategorized

 

Tags:

The Great Methodology Paradox

Hello All,

It has been a busy couple of weeks and I have not got to post things as fast as I would have liked.  This new presentation is on one of my favorite subjects… Methodologies.  More specifically… Agile.

I’m not sure how this opinion will be treated or recieved, but I’m very excited to here from all of you about my thinking on the subject.

This video is a little longer than some… around 38 minutes, so set some time aside and enjoy!  I did have to break the video up into 3 parts.

Part 1:

 

Part 2:

 

Part 3:

 

More to come…

Mike

 
6 Comments

Posted by on December 7, 2011 in Opinion

 

Tags: , , , ,

Is Windows 7 Phone… Dead?

Scary

The shock, the horror... not really!

From what I can tell the answer (wait for it) is… Yes!

If Microsoft continues to proceed with the preview of Windows 8, and makes no major changes to the approach it is taking with the proposed new OS, it does not appear to have room for either Silverlight or Zune APIs, which pretty much kills the application building approach suggested and supported by Microsoft for that mobile device.

Another little interesting tidbit was what I got in my inbox from XBox Live today:

XBox and Zune

Does this mean Zune is not far behind?

So add it up… Silverlight appears to be dead in Windows 8, and maybe Zune APIs is now dead, and you pretty much just killed Microsoft Windows 7 Phone.  That is even more curious as to Zune now being part of it.  Will Microsoft now push that the Zune desktop application be on Metro GUI?  Furthermore, Metro will not run on Windows XP and you can see how Microsoft appears to be pushing the issue that Windows 8 is the future of all things Microsoft, and it also appears in my mind, the end of XP, Vista, Win7, and especially Windows Phone 7.

Mike

More to come…

 
6 Comments

Posted by on October 7, 2011 in Opinion, Technology

 

Tags: , , , , , ,

Warning – It is all about to change – Windows 8

Here is my new opinion piece on the preview of Windows 8.

Please check out the 15 minute video presentation on SlideShare here:

Feedback is always welcome and expected, so let me know what you think.
Mike
More to come…
 
7 Comments

Posted by on September 28, 2011 in Opinion, Technology

 

Tags: , , ,

Question: When is it time to rewrite?

I don’t know how many of you have read the following post:  Things You Should Never Do, Part I, by Joel Spolsky, but if you have not, you should.  He raises some very interesting points about making the mistake that we as developers often take part in, “we have to scrap this thing and get a new one… it is old, it does not work, and it needs to be rewritten.”  I’m sure we have all either said or if you have developed for more than 2 days, you have heard someone say something to that effect.

I must say, I agree with his article, a lot!  However, this leads me to a question; “when is it time to rewrite?”  Couple this question with my last article on “Future Proof,” and I fear that I may be becoming “the old guy in the room.”  Since I’ve already (in my mind) proved beyond a shadow of a doubt that there is no such thing as “Future Proof” and I have to say I agree with Joel’s points in his post… I also have to say that on many projects that I’ve been on, I too have stated, “this thing is unbelievable and needs to be rewritten.”  I will give you an example of a product I was working on for a startup in CA and how not making the move to a new approach seriously wasted lots of money, resources, and time.

The product that we were building would be considered collaboration software today, but it was a virtual meeting software product, kind of like WebEx or GoToMeeting.  The team that I had assembled had some great ideas of where a product like that needed to go and we thought we would be able to do it.  However, when I came into the organization the current “selling” product was based on a very old technology that the investors had purchased from another country, we had NO developers from the original code and the product code was to do virtual classroom with avatars for higher learning institutions.

In a time before I joined, the original developers changed the product to be a more simple “meeting” software but only they really understood the underlying code and structure.  To make matters even worse, I found out that we did not get all of the code and that the underlying engine had not been compiled since 1998 and it was 2006.  By the way, that was the first thing that I had to fix and it was because we were shipping a product on it (it was originally compiled for Windows NT).  The story goes on from there, but as you can imagine, everything we touched, tried to add, or even fixed, broke other pieces of the code and to make matters even more exciting we had no testing code.  Wow, writing this really makes me cringe.

Now also keep in mind that the investors wanted to take advantage of the investment in a “killer piece of code, which could do anything.”  Being a startup, we had plans for a new platform to handle what we knew we needed for the next generation of collaboration software, however we were stilled tied to the “shipping” product to help offset the investment.  By the way, I did do my concept of Software Archeology to try to better understand the code and have a better approach and it did help, but it did not give the team enough underlying knowledge to build a great system using the old technology.

So this leads to my top 3 things that kind of balance Joel’s thinking a little.

¨     Knowledge;  The underlying platform is unknown to the team and it is not possible to quickly get an understanding of the technology through normal methods and the team does not have the killer skills for that technology.

  • Could we have gotten the knowledge?  IMO, no.  The code was too convoluted and cryptic to be picked up, plus the software was being used as something it was not designed to be used for in the first place.

¨     Out and out technology limitation;  This one is more difficult, as the tech being used on any existing product is always limited or needs replaced to fix limitations.

  • What do you mean?  This may be something like a 32-bit implementation and it needs to be a 64-bit implementation or you are on the iOS and you need to be on Android.  Now if you are using a good development language and environment, then moving to 64-bit does not require a complete rewrite… hmm, I wonder what product I may be thinking of… anybody?

¨     Direction change;  This was much more evident when a majority of companies and programmers moved to Java from something else.  This usually causes a new product to be written in the new language or direction.

  • Can’t you wrap the existing?  Maybe, but in most cases the developers will make the case that having a limited number of things to support is a good thing and that the whole reason for moving to a new platform or direction is because it will give an advantage and wrapping the old tech will be more of the same.

Do you use a set of questions or criteria to figure out what you have and how to go forward?  Do you have strict guidelines that you have used that helps with this question?

Let me know you thoughts.

Mike

More to come…

 
3 Comments

Posted by on September 16, 2011 in Opinion, Technology