Tuesday, October 30, 2007

Agile

After reflecting on the direction of my career, I realized that I am not fit to be a programmer or a hardware engineer. I studied to be a hardware designer (firmware, chip level, and board level), but quickly became discouraged because there were only software jobs. I learned how to write software better, and that's what I've done ever since. Now I'm at a point where I have experience...but guess what. All of that Linux and Solaris (even being a T.A. in a C Programming class on Solaris boxes)....they all think I know too much about Windows.

Well, I realized that I'm fit to be a manager instead. Not a project manager, but a department head. Someone that develops other managers and provides resources for them to perform their job effectively.

Wait. But how do I get there? I'm just a Development Manager right now, working undercover as a Development Engineer.

Well, I have a feeling I'm not getting the right experience for my new goal. So my new job and outlook for jobs will be to look for project management positions and tell them I know how to lead a group and Agile and all that.

But I want to tell the truth...like I always do in interviews. Humble Ben never getting job offers due to his extreme modesty.

So, I found Scrum. I found that you can become a Certified ScrumMaster for only $1200. I'm determined to covert this ancient systems development group into a modern product driven research machine, which pumps out quality products that will ensure our future, and force management to get on the horse and sell this shit. I'm sick of waiting for the next job, when we have no sales team, no integration team, we have a part time quote writer and a part time micromanager.... it's time for change.

I'm going to set up a product backlog for my personal work on the intranet's wiki. Then, I'll have daily meetings with my mind to tell it what it will be doing for the rest of the day (no excuses). I'll set monthly goals based on this backlog. When I decide that it's good to go, I'll present it to the team, and we'll convert our software shop from pre-Waterfall into Scrum-3000.

Until then. It's time to work.

Thursday, October 25, 2007

Software Development Manager

For almost a year, now, I've been titled "Software Development Manager" at my job. Now that I've been talking with other companies, I'm really at a loss as far as what this means.

The company I work for is in the business that some mechanical engineers dream of. Huge cranes and ships with 100,000HP that have 3 foot diameter pistons. I was hired as the 6th person to a new group that did systems research. We were all Computer and Electrical Engineers. But, since I had some experience with software, they had me write a few apps in VB. After I cleaned up the vomit, I wrote them in VB, then C++, then Python. When I asked for help when we got a few more projects, we hired a few more people. I needed business cards. My boss said "you can be VP of software if you want". I told him that my position is not fitting for that title. He said "ok, how about Software Development Manager"? I agreed.

Right away, I got into developing our software base. I bought 15 books for the library (mainly O'Reilly Python, C#, and C++ books). I upgraded all servers to Windows 2003, and got Visual Studio 2005 copies for developers. No one wanted Linux at all...even our customers...even though it's cheaper...so I set up two linux servers to do all of the SVN, Bugzilla, Wiki, external support, FTP, and cron jobs we needed. Then I started to run bi-weekly software meetings to complement our specific project meetings that happened every Wednesday. I wanted to make sure we were all working together, sharing our code base, and working on similar projects together and not against each other. Our firmware become componentized (Dynamic C for Rabbits). We collaborated on Windows service installation and remote debugging. We learned Embedded Windows, ASP, and AJAX as a group. Although we're all working on different projects, we're doing it with respect to everyone else.

So I don't really have to manage anyone. I've been on the hunt to understand what a manager actually does. They develop their employees and let them grow. But I spend most of my time writing code and figuring out new technologies...and projects that will make us money and gain some more patents. We already have one in the last few months...how about this other idea I had, boss?

Anyway. I started concentrating on the "software development" and the "development manager" more so than the "software manager" ideal. So, I'm developing software. One of two goals is checked. It's great because people still like it because it works efficiently. It's documented, customers like our APIs, etc etc. The "development manager" seems also to be my role. Whenever I install some new service, everyone gets excited like it's a new Nintendo, and it's Christmas 1986. But, most important to my personal development at this position, I've learned that a manager really doesn't do anything other than direct. The best directors are the ones who get a good script, wrap their head around their own vision, and convince actors to do what they're thinking. When they get in there and say "you're hand is in the wrong spot...say it louder...don't smirk when you move your legs...lose some weight" etc etc...they lose it and it becomes Hollywood garbage.

So, too, must a "development manager" find tools and lay groundwork for "software development" to take place more efficiently, with more grace and with more entertainment value...it's not really work...it's what you like to do!

Monday, October 22, 2007

Old School Programming

Thanks to JP Calderone in the [Twisted-Python] listserv, I was lead to twisted.internet.serialport.py

Now, I know what you're all saying: "But my computer doesn't even come with a COM port anymore!!!" That's a.) where you're wrong, and b.) where computer manufacturers are wrong. Serial ports used to be the easiest way to communicate with an external device. There may have been some custom protocol to follow (in the case of triggered laser speed detectors from Omron, for example), but normally, you verify the baud rate, data bits, stop bits and parity, plug in your device, and write some simple bitwise code in C or (EEEEK) VB or something similar, and you have a working application.

You're wrong about the serial interface, because when you get down to it, there is potential to hack your MOBO and install a COM connection on an existing port. They exist on your chip, and therefore, you can allocate IRQ, I/O Range and Memory Range for input and output buffers, spoof the Windows kernel (by using a different kernel like Linux or BSD) and tada! You have a hacked COM port.

What can you use it for now? How about communicating with a modem? Or using twisted on two computers to sync data? As long as they're on, you don't have to use the network, so hackers won't be listening. You could use it to populate a media server (it would take a long effing time to populate)...endless possibilities for the average consumer.

Tuesday, October 16, 2007

Using Craigslist

I got a new apartment this month. I moved to the Bay Area a little over a year ago. Since I came with no furniture, building a house out of cheap Craigslist (CL) furniture is a daunting task for someone with style in mind. I thought I would list the categories and the pros and cons of each.
  1. Individual sellers
    1. Pros
      1. Cheap
      2. Personal (you usually get a history)
      3. Price is always negotiable.
    2. Cons
      1. Never have dimensions
      2. Often, there is no image or a stock image
  2. Scams
    1. Pros
      1. You get to beat someone up for free!
      2. You don't get the merch, but you get a free opportunity to utilize some adrenaline.
    2. Cons
      1. Sometimes there's more than one, so fighting them with a Nerf (r) gun is a daunting task
      2. Sometimes there's too many of them, and they take your money and beat you up.
  3. Companies using the free advertising CL offers
    1. Pros
      1. It's convenient and they post hours, pictures, and prices.
      2. Usually greater selection
    2. Cons
      1. Overpriced
      2. Usually poor quality for the price range of a 20-something
      3. Not the point of a community list
      4. Lot's of spam
Now, I've found some great deals on Craigslist, such as a free Cherry wood desk from Bombay furniture, and a $100 solid mahogany desk that is HUGE and real. This is way under priced.

But now, I'm looking for a couch and a television. Kitchen table and chairs, and yard furniture is also on the list of things to get. I sure do need a bedside table and some new living room furniture. How about an entertainment center for the TV, stereo equipment and records that I already have?

Well, I have a lot of work to do on the CL (as someone who says "The Google" would say), so I better get to it.

Friday, October 05, 2007

PyMag has released their first issue for free. The fact that it's free doesn't impress me. The fact that there is finally a Python magazine with lessons and tips is what impresses me. I'm a subscriber automatically. I should get the Sony Reader and download them so that I can read while riding the BART to work after selling my car.

Now it's time to read...

Thursday, October 04, 2007

Microsoft OS.NET

Developers at Microsoft have announced that they will open source .NET3.5 (comes with Visual Studio 2008), including the basic .NET libraries, Linq, ADO.NET, ASP.NET, and a few others, under Ms-RL.

The problem is, we won't be able to modify the code. We will be able to see it in a debugger, just so we can understand what's going on. It's for reference. Hence, the name "Microsoft Reference License".

Which, to me, is fine. I'm glad that they're taking this step. It means, that, for the first time in Microsoft's history, we will get to see the man behind the mask. We will finally be able to figure some basic building blocks of the Windows operating system that previously would have been reverse engineered. Since they're keeping comments in the source code, they can instruct how to use that specific function/class/interface.

I'm excited, because for the first time, we can see MSDN content integrated within the source code. Think PyDoc.

I probably won't be an early adopter to .NET3.5 (although I've already used it for a project) with Visual Studio 2008 (formerly Orcas), but I can't wait to use Linq and XLinq to query me some data. I'm excited!