Friday, February 19, 2010

Find Ways to Tell Your Story to the People You Want, the Way You Want

If you're ever feeling frustrated, stuck, depressed, etc. don't get too down. Sometimes we feel like we're in a rut or mire that we can't escape and want to isolate ourselves from others, make decisions to protect ourselves and avoid interaction with people so we don't have to tell them a sad story or show them how bad or disappointed we feel on the inside.

As far as I can tell, people and activities are our best means for getting out of ruts. Find your believers and keep engaging them. Seek new believers, really anyone who will listen or share themselves. Keep talking, keep laughing, keep meeting people. Eventually you'll get to tell your story to the person or people you want in the way you want and you will feel very happy!

Wednesday, February 17, 2010

Punt the shit you can’t do well now

If you don't know how to do something now, don't do it. Do the bare minimum and put in a placeholder or wedge so you can move onto the next more important thing. If you are truly good at the rest of what you do (your trade) and getting the job (as you can do it, on time), you will attract supporters, followers, and believers. These people will be able to help you later and provide you with the time and support you need to complete the product or project on time, on quality and to your mutual enjoyment. Done is when everyone's happy, not when you're tired.

Incrementalism

Word of the day for me. It matters. Maybe more important than pragmatism? Do things in bites; bite-sized chunks. Remember your goal but focus on the near-term and task ahead. I'd rather do things small and incrementally (take baby steps and solve problems that are "bite-sized") than feel like I was eating an elephant. As long as we have enough time to break and breathe between bites of the elephant of life and our ambitions, we'll be fine. The elephant in fact is really the aggregation of all of the bites we are able to take of it. The elephant is fictitious to us and of a potentially infinite size. But don't make it so. Figure out how you can eat the elephant faster and more tastefully and who knows how many elephants you'll be able to eat!?

Sure, it's also great to have a vision and ambition and an appetite for eating lots of elephants and boiling many oceans, but you need to be able to (regardless of how large your challenge is…thank god you're not President of a nation or something ridiculous like that) do the next thing, take the next step, figure out what you CAN do next, successfully.

Tuesday, February 16, 2010

“Instrumented Reality”

We seem to want things to throw off data. We want to measure and see our world visually. Not just as they appear but with augmented reality; data overlays. We want to want to measure (in a computer system) what is going on around us.

Instrumented systems (see New Camera System that Takes the Guesswork Out of Baseball Stats http://www.popsci.com/technology/article/2010-01/taking-guesswork-out-baseball-stats) are our new databases. Many systems are now database information systems. They are organic and constantly changing yet digitized and software-enabled. We can present their data and rethink them however we want.

The world is apparently not good enough. What's up with that!?

What’s an Architect?

The first person on the scene. The solver. The guy who can do it. The guy who can create the solution. The doctor, the lawyer, the dentist. The main man. The most knowledgeable person about a topic. Similar to an analyst but this guy knows how to actually create the thing. An analyst might know how to do this but this is the guy that can actually do it and does it. He probably directs other developers to do stuff. He has the keys to the kingdom and can ride the fence between business needs and requirements and pragmatism / practicality in solution and design.

Chartering Should Primarily Come from the Customer

As I said before, hack around…things don't have to be perfect. Once you have a user, a stakeholder, a second on-looker to your work, integrate their suggestions and turn their needs and requirements into the best product possible. You should be hacking less and working on important stuff more when there are customers and users.

Putter ‘til you find a Project

Putter around, fix stuff, it doesn't have to be pretty or perfect or solve "root cause". Just fix things up, be busy, get tidy and eventually you'll stumble upon an important project that's worth tackling.

Demonstrate a Wealth of Options but Have One in Mind

It's great to show coworkers and customers everything that is possible but if you don't have a clue which one to use, which one is best, what your preference is, etc., you're clueless. Get a clue.

What’s an Analyst?

Someone who can think. Someone who can analyze. They can look at data clearly and solve problems. They don't easily get frustrated. They seek solutions. They can clearly and concisely identify blocking issues and impediments to progress. They know what the current largest problems are. They have a forward direction in mind; they have goals. They are someone who knows that there are usually several next steps that could be taken and are capable of advising you on what the next steps are. They may get distracted easily while swimming in a sea of information. Once a decision is made or action is taken, they create a new world view and context from which they continue to analyze. They seek knowledge above information. They are likely good teachers. They are definitely learners and probably doers. They can observe what is going on and determine opportunities for improvement.

Authorization is Odd

Who is authorized? Who can do this? Who is in charge here? There's a lot of confusion in the world. Sometimes we don't feel authorized to do what we need to do. We perceive many rules and go along with what we think to be the status quo. But is that really the status quo? Maybe the status quo is change, chaos, and disorder. There are rules and there are ways around the rules. Be bold and more forward!

Monday, February 15, 2010

How to feel consistent while searching for work

If you're on a short contract, stay until the end.  In the meanwhile, plan for the end and move onto the next thing but keep doing well at what you're currently doing.  Maybe it'll get better!  Don't be a slacker.  If you're on a longer contract or in a permanent job, it's harder to leave and give notice.  Be strong, give two weeks and move on.  Don't look back.  Be thankful for what you have, your relationships, and the people you've worked with.

The Application Layer is All That Matters

I think that this layer is the only layer that matters.  It is the business process, it is the interaction between the user and the computer.  It is workflow and the movement of data.  It is all about the purpose for which the computer exists in the first place.  It is instrumented, it is intelligent.

How Does Business and Economic Development Work?

It's all about trust in my opinion. You should do your own, it'd be nice if you could have someone to do it for you, but that has a potential cost. How do you think we need to grow the economic pie?

Where does work velocity come from?

Accountability of individuals and between team members.

The Tools of Programming

You need some pretty basic stuff: a data store (place to keep the data also called "model", not to be confused with the overall system model / concept), a transformation / business logic layer (this is the thing that takes user input and converts it to and from the data store (these are also your "controller"), and a UI / front-end. The UI need not be graphical, it could be a phone, text message, whatever, you just have to be aware of the interactions with the system that you create and handle the user input and output of different views / screens to the user. This is also called the "View". Happy programming!

Saturday, February 13, 2010

No Really, Show Value as Fast as You Can, Dammit!

I've probably said this before and I'll say it again, but the goal—I think ALWAYS—is to show value as fast as you can. This means that you could have had an agreement and understanding with someone before but it was most likely based on unlimited information and a "gentleman's agreement". Once you get down to doing the work and delivering, the real goal is to indeed (as I'm saying here) SHOW. VALUE. AS FAST. AS YOU CAN (and repeatedly for that matter). This is huge!!

I'm working on a pro-bono project for a friend of mine now and even on this, I'm following this principle. I just got his data loaded into the database and the next thing I am going to do is to spit out a bunch of sample data to the screen to show him that I'm making headway. I want to make sure he's engaged, involved, committed, and excited for what I'm building and the best way to do so is through DEMONSTRATION. This principle applies in most (all?) fields.

Wednesday, February 10, 2010

Crazy Making

So much for my great ideas about bridging the gap from back end to front-end. I'm now way back in the back end, creating some extremely old school hack because the middle tier wasn't working right. BOOOOOOOOOOOOOOOOOOOOO! Here's how to have an OUTPUT from a Stored Procedure that uses Dynamic SQL.

CREATE
PROCEDURE Myproc

@parm varchar(10),

@parm1OUT varchar(30) OUTPUT,

@parm2OUT varchar(30) OUTPUT


AS


SELECT @parm1OUT='parm 1' + @parm


SELECT @parm2OUT='parm 2' + @parm

GO


 

DECLARE @SQLString NVARCHAR(500)

DECLARE @ParmDefinition NVARCHAR(500)

DECLARE @parmIN VARCHAR(10)

DECLARE @parmRET1 VARCHAR(30)

DECLARE @parmRET2 VARCHAR(30)


 

SET @parmIN=' returned'

SET @SQLString=N'EXEC Myproc @parm,

@parm1OUT OUTPUT, @parm2OUT OUTPUT'

SET @ParmDefinition=N'@parm varchar(10),

@parm1OUT varchar(30) OUTPUT,

@parm2OUT varchar(30) OUTPUT'


 

EXECUTE
sp_executesql


@SQLString,

@ParmDefinition,

@parm=@parmIN,

@parm1OUT=@parmRET1 OUTPUT,@parm2OUT=@parmRET2 OUTPUT


 

SELECT @parmRET1 AS "parameter 1", @parmRET2 AS "parameter 2"

go

drop
procedure Myproc

Close the Gap Between the Database and UI

This is no small feat to overcome and to do it means that you can build an entire software application by yourself; all tiers! Not relying on the DBA, Designer, and Coder roles, but on you as the focus in the role(s) of Architect/Manager/Producer. I wrote years ago about "top heavy" applications that repeat logic in the model, views, and controllers. I'm hoping that today we're closer to having the Model Driven Architecture gap bridged: the holy land of software!

Going with the Flow and Being Flexible

Say you create something really great and people like it. You show it to them and they want more. They want to help you build it and work on it. You may have started as "that guy" who was doing some random thing, but depending on how you play your cards, you could become "THE guy" who is at the center of it all. Follow your products and creations around; see where they take you!

In Software, You Can Harden and Tighten Your Design Later

I said it earlier, but don't be a perfectionist in what you create. Don't make the first product you produce perfectly right and tight the first time. Leave some room for enhancement and improvement. Get a working product in their hands as fast as you can and fix what's broken later.