Wednesday, January 27, 2010

BI Happens at the Intersection of Project and Process

You need static structures like policies, processes, roles, artifacts, and departments to be successful. Something must be core. These static structures are the tools that allow you to get things done. They are the platform. Projects on the other hand are the vehicles that do the work. If you do a lot of projects you could see project management as itself a process. But it isn't the only process yet it is a very central one.

Business Intelligence As Feeding the Hungry


The business is hungry for information about their operations and customers. The data that is around the business is not currently very delicious or available. People are picking at scraps all the time but they are definitely not satiated. Business analysts, project, product, and program managers (cooks in my scenario) are hired to prepare data-meals for the very data-hungry executives and managers. The managers are picky eaters and have high expectations of what you put on their plate. The job of the cook/analyst is to gather up the various bits (data-ingredients) and whip them into a lovely broth that the business can enjoyably consume.

Monday, January 25, 2010

What’s the Difference Between a Project and Process

The CEO of Siemens Ultrasound asked me once, "What's the difference between a project and a process?" My answer was, "The process is how and the project is the what." He disagreed and explained to me through an example: "If you have never driven from San Jose to Los Angeles before, that is a project, but if you do it over and over again, then it becomes a process. So a project BECOMES a process over time, with repetition. A project is something you have never done before [or have done infrequently]." I totally disagreed.

What are your thoughts on these differences?

I would say now (and said to him then) that a project is an INSTANCE of a process and that the process is continuously improving and changing (it's the how).

Produce Waste Intentionally in Your System’s Design

As part of the design of a quality system, you will encounter ways to be lean and you will encounter ways to create waste. Part of a you will want to keep everything (hoard) and part of you will want to keep only the things that matter. If you keep only the things that matter to you now, then you are potentially painting yourself into a corner. If, on the other hand, you design such that you have some waste (are not perfectly efficient) such that you can pick up the pieces that you left behind.

The point here is that you have to design systems that have some waste, such that it can be consumed later, by others. Designing perfect systems is impossible and if you were to do it, you'd have others pick and find holes and they'd have a job and you wouldn't. Or you'd be starting over somewhere from scratch. Go agile or go home.

What’s It Take To Be a Senior Developer or Software Leader?

If I were to trumpet my own horn, I would say that I've been building web sites and technology-based human process workflows for the last 13 years. Since I was 19 years old and was using Microsoft FrontPage. At the time my skills were HTML layout, PhotoShop, and CSS. I was mostly a designer. In 1999 I picked up the skill of SQL database development and object-oriented programming. That was a huge leap forward. I was writing server-side scripts in 1999 and did that professionally for about 4 years. Then .NET came out. Then I went back to school and got my Master of Science and MBA in Information Systems. I learned a lot then. In 2002 I learned about and implemented SharePoint and was a CAML developer. I worked with OpenText LiveLink and IDS Scheer ARIS to design enterprise wide SOA and Knowledge Management architecture for Siemens Ultrasound Division. I left there and spent the next few years working with SharePoint Server (MOSS) and did the same: this time for Nordstrom and Microsoft. I became a software development project manager and then started getting back into writing code. The languages of today: C#, SQL Server 2008 (I started on 2000), ASP.NET MVC, SilverLight, JQuery, Drupal, WordPress, and I'm getting into Eclipse.

At any rate, I would say that a senior developer is a person who can:

  • Write code
  • Think of processes and business problems as software systems
  • Can lead software development teams
  • Is highly communicative and understand the software development process
  • Can recruit and is respected by other software developers

Thoughts?

Friday, January 22, 2010

I Know About Collaborative Tools

The infrastructure exists now for any small team to form online and connect and build software and create companies and "communities of practice" for very little money. Only corporations had this infrastructure a few years ago. You just need the knowledge and social / networking skill to do it. So do it!!! (Or ask me how to do it, I'd be happy to help you!)

How I’m Going to Change the World


Two ways:
Through consulting with businesses and organizations and having an hourly wage or retainer from them as a "worker" or resource to them.
Through making software products or creative processes/systems for companies or for myself that I monetize somehow.
All while having fun.

How I Update My Blog, Twitter, and Facebook


I generally assume that I'm going to blog everything (since I'm generally a long winded person and you never know how deep and long-winded a thought is!). I open up a new Word doc as my blog and start writing. If I determine it's just a short statement (or better as a short statement/point), I'll Tweet and/or Facebook update it. I generally tweet nerdy things to Twitter and other silly musings to Facebook; this may change over time but my Facebook is "friends" and my Twitter is more business-minded. If what I'm writing is long, I'll try to write it all out. If it's short enough and concise enough, and what I think to be interesting and/or pertinent enough and that I want to publish it, I'll post it to my blog. If it's too long or boring, or in concise or rambling (like this post? J), I save it, possibly to return to it later (write a book?) or simply round-file it.
It's nice to have these different online communities and audiences and communication modalities of micro-Blogging and real blogging for sharing your thoughts.

Facebook IM Scam. Beware. I sure hope this wasn’t Madhu!

4:31pmMadhu






hi?





4:33pmMadhu





u there?





?





?





4:36pmEric





Hi Madhu.





I am.





4:36pmMadhu





am not good Eric.





4:36pmEric





am not good?





what?





4:37pmMadhu





i'm stuck here in london and i need help with flying back home.





4:37pmEric





Okay. Tell me more. How can I help you?





in what way are you stuck?





4:38pmMadhu





i had to visit a resort in london on vacation and i was robbed at the park close to the hotel where i lodged





4:38pmEric





Okay.





I'm sorry to hear that.





Do you have anything? ID, etc.?





Are you safe now?





4:39pmMadhu





i was mugged at a gun point and all cash on me got stolen including my credit cards and phone.





4:39pmEric





Okay.





Do you have any documentation?





4:40pmMadhu





the good thing is i still have my passport with me.





4:40pmEric





(as in ID, passport, etc.?) have you visited the US Embassy or anything like that? Are you a US citizen?





That is a good thing!! :)





Have you been able to call your credit card companies to cancel them?





4:40pmMadhu





all i need now is help in getting a return flight ticket back home from you.





4:41pmEric





I see.





And when could I expect repayment? :)





4:41pmMadhu





I need $500USD for my return ticket fees.





i will pay you back as soon as am back home.





4:42pmEric





Remind me how we know each other. :)





Madhu?





4:43pmMadhu





if i wasnt the one i wont ask you to wire to my name as we both know i will need some kinda of identification before i get the cash at the bank.





4:43pmEric





Please tell me how you know me specifically.





4:44pmMadhu





we are from the same city.





4:44pmEric





Yes, please tell me more, specifically about you know me. Who am I?





What is the nature of our relationship?





4:45pmMadhu





Look Eric,this is not the time for Question.





i need to leave,if you are not helping me





4:45pmEric





Madhu, what is your profession?





4:47pmMadhu





i need to leave now.





bye





4:47pmEric





Tell me anything about how we know each other and your profession or mine and I'll talk.





4:48pmMadhu





if i wasnt the one i wont ask you to wire to my name as we both know i will need some kinda of identification before i get the cash at the bank.





bye





you are my formal friend





4:49pmEric





I know you are not Madhu and this is a scam and "formal friend" is not a good enough answer. You should be ashamed that you are trying to rip people off. You should go look for a job instead.

Emerging from Your Work and Selling Simple Solutions to Complex Problems

I'm argumentative and hard-headed by nature. That's probably an understatement. Really, I'm pretty much a pain in the butt. But I try to be funny and have a sense of humor. I try to have a good time. I try to be thoughtful. It's my hope that some people will like me, listen to me, and be willing to put up with me for long enough to allow me to tell them what I think about a problem I'm solving. In short want them to buy into me and what I'm selling.

At work, I'm producing a complex analysis of what happens when people log out of Hotmail and use other Microsoft properties. I'm trying to find out some patterns. There are dozens of parameters and variations of the process. I need a simple way to measure it so I can explain it clearly. I've spent about a month working on this now and have been improving my methodology on it. I think I'm getting close to having a robust solution to the problem I've been given.

The next step for me will be to teach people what I did and how they can use it; to promote myself and the product. I want the interested persons to BUY INTO me, my methodology, and product. Only if I've made an elegant solution can I accomplish this. It's not all about personal power, it's about QUALITY. If things appear to be complex or unfinished, people will look the other way.

I'm still in development mode at the moment but I hope to emerge from this state soon in a highly effective and communicative way that allows me to advocate the greatness of my solution.

Wednesday, January 20, 2010

Separate Your Concerns

Build to the bare minimum part that will serve as an input or foundation to some other component. Don't build 'one-size-fits-all' systems that do everything or serve too many functions or purposes. Componentize!!!!!!!!!!!!!!!!!!!

Dividing Up the Work

An important part of being Agile and enjoying your team is efficiently and effectively dividing up the work. This includes figuring out the roles of each team member (as a function of the current work load) and also how they will collaborate with one another and their stakeholders in general. It is also the responsibility of each individual team member to determine how they can best impact and support the team's overall quality and acceleration (velocity over time) ie performance. People need to have autonomy so they can achieve things and learn on their own, but also need to be provided incentives to collaborate and interact with their team for the team to grow stronger over time.

I’d Like to Find the Perfect Work Partners

I want to work, play, and collaborate with people who are:

  • Inquisitive
  • Playful
  • Fun
  • Intelligent
  • Funny
  • Available and willing to give time
  • Thoughtful
  • Curious
  • Courageous and strong
  • Supportive
  • Good coaches
  • Good listeners
  • Creative

It's hard, sometimes, when you're stuck working alone. Our best work is rarely done—if done at all—when we're alone. We have to band together and find others who complement us or lift us up somehow; motivate us, change us. I think there are people out there who can help us with most of our needs, regardless of the task. They are generally playful and fun. We need to seek these people out and create with them.

Tuesday, January 19, 2010

Sprinting at a Sustainable Pace Seems Oxymoronic

I had my primary customer tell me today that my current project should be done by next Friday. I'm fine with that but I have no idea how long it will take. I'm not stressing, either. I told him that I'd sprint on it and give him daily updates, letting him know how it was going. He said, "Don't kill yourself, it's okay [if it slips]." (I have a very kind customer, mind you). The customer must have thought that if I'm sprinting daily, I'm wearing myself out. This isn't true. I'm still having fun and I'm still putting in my standard 8-hour work day. I'm head's down on the project and moving forward as fast and reasonably can. If I determine at some point soon (as fast as possible) that this assignment is mission impossible, I'll tell him, he'll know. My customer's not trying to burn me out and I'm not trying to burn myself out but I'm still trying to dig into the project as it's described as fast as I can and start to move forward so I can determine the velocity of this sprint and if it's tracking with our 1/29 due date. Let's hope it is!

Thursday, January 14, 2010

Things I’ve Learned Since November

  • How to attach to a process in Visual Studio
  • Source Code control with Source Depot
  • Integrating source control with Visual Studio
  • Hosting SVN online
  • The SCOPE Language
  • Running database jobs on a Cluster
  • Processing usage logs
  • Coding through SIPOC logic (Supplier, Input, Process, Output, Consumer)

Code for the Retrospective

Your goal as a developer is to get the job done as fast as you can—to the requirements—and have your retrospective with your developer buddies and the customer. You'll want to bring a few things to the retrospective and be prepared to get the most out of it:

  1. What went well
  2. What didn't go so well
  3. What you'd like to change
  4. Your code base and what you produced as far as diagrams, lessons learned, tips, tricks, etc.

The retrospective may be your only chance to complain a bit, kick up your heals, be thankful that you're finished, learn something, and re-energize yourself for you next task. Enjoy it and plan for it.

Code for the retrospective.

Wednesday, January 13, 2010

It’s Not About You. Keep a Sense of Urgency.



When you're working on a project, you can decide to do things the smart, elegant, research-based way, or you can do them in whichever way is necessary to get the job done. To me, a project is and should be a "forward pass" sprint through the requirements. A project isn't the process. A project isn't fair. It is a single iteration. There will always? be time for more improvement and change later. Maybe you won't get to change what you want to on this project, or learn what you want to, but you can do this next time you have the opportunity. In a project you solve the problem as fast you can and backlog the opportunities for future consideration. You deliver. Maybe the things you didn't do won't be considered, maybe they'll never be done. But you will still always have the idea to apply that thing some other time. Nothing is lost.

I recently ran into a scenario like this at work while trying to "lookup" something against a file. The way the existing code was written, it only worked on one file, but I had two files. And I needed a solution. We determined that since I had just two (and not 300, for example) files, that we could copy the code and make it work. This was the fastest way of doing it and we know we'll try to do something better in the future.

Engineers have to make things work. There is urgency, there are customers, the project is held down every minute you're not solving the key requirements. The world is not about you and your learning, nor is it about an elegant system. Those things are for you, your values, and in your long term, maybe you can achieve them. But for now, it is about getting the job done. The system will take care of innovation, not you now.

Monday, January 11, 2010

My Business Areas of Focus for 2010



I'm going to focus on four main (business related) things in 2010:

1.  Network
I'll network because I have to meet new people and develop a support system of people who know me and what I am doing as well as what my needs are. I am going to do this during the days.

2.  Engineer and Build products in my free time and work with people online
I'll engineer and build new products in my free time because I have to. I want to develop my skills and I want to create new products and services. I want to stay current on the new technologies and be a builder. I want to run the risk / opportunity of making something that is cool, will grow, and is a business. I want to get traffic and make a buck. I won't do much in my free time that is not for business (besides the necessary R&D required to accomplish business objectives).

3.  Make personal income
I'll make personal income and keep a day job. I am going to work for someone. Networking and doing well at my day job will help me accomplish this. My side projects will hopefully help me be good at what I do during the day. Whether I am a 1099 contractor, a W2 employee, a consultant, contractor, or employee, I am going to do well.

4.  Volunteer
I'll volunteer and work on some things for free. Not out of the "kindness of my heart" but out of the desire to learn and connect with people. If I offer things for free, I will learn, I will feel good and I will develop a more flourishing network.

In addition to this stuff, I'll exercise, hang with friends, watch my budget, have fun, read, be outdoors, travel some, relax, spend time with family, and enjoy myself.

That's the plan! Let's get it on.

Friday, January 08, 2010

3 Ways to Value Nothing

Sometimes you want to calculate usage growth rates for people who are brand new. There are three options for doing this. They are:

  1. Throw out these ones and keep the ones where there was previous growth.
  2. Set a standard denominator based on the bottom. (say 1 or 0.1 or 0.8 or something)
  3. Set a dynamic denominator based on the top. (Say new value – 2 or new value – ½ of new value)

These options show that there is ambiguity in how you value new users with possible small amounts of usage.

I'd recommend that you do this in all three ways; changing parameters in the second two and see what you like, given your risks and business purposes.

Wednesday, January 06, 2010

List of Data Visualization Tools

Just got "Now You See It" by Stephen Few.  Here's a  list of the tools he's using to generate good-looking visualizations of data in the book:


Panopticon Explorer


Time Searcher 2

Tableau Software

Inxight's Table Lens

Spotfire

Vizster

JMP Profiler

Trixie Tracker

Google Motion Charts