Month: August 2013

Home / 2013 / August

Focus your Efforts

Well, with any small business, everyone wears many hats.  Now the problem with that is that it is impossible to do everything.  If you’re read some of my other recent posts, you know that I’m struggling with that fact.  I try to put in 3 hours or more every night after I work a full day at my consulting job, and put my toddler and infant to bed.  I’m finding this isn’t even close to the time I want to be putting into my business.

Now the  real question is priority.  What is the most important?  what is the best use of my time?  Damn, I wish I had a better answer to this question, and I struggle with it daily.  Part of the reason I still blog daily is just force myself to think.  Of course, it’s also to cultivate more potential second customers, but it helps me work out my thoughts as well.

So, my dilemma, I’m a developer, and I’m the only developer in our software company.  At the same time, I’ve been spending a lot of time learning marketing…  but obviously, it’s not my specialty.  Now, the challenge comes in that my partner is not a developer.  He writes great specs, but doesn’t code.  I’m also way ahead of him in my learning of marketing.  All that being said, we are a team…  so what matters most?  the software or the marketing…  I’m leaning toward the marketing, but at the same time, I have major development work to improve Rapier (not to mention the creation of our Field Service Engineer product).

So, I’d love to hear from anyone out there…  is it better to hand off the marketing to my partner, even though I’ve been spending more time learning it and focus on development?  or do I focus on getting the customers/sales, and then develop when it starts coming in?

Thanks for reading,


Variant Configuration – Configurable Assemblies Only

Today I learned a simple lesson, but frankly, I should’ve known a long time ago, but never ran into this scenario.  In my current assignment, we ran into an issue in testing where an item was sales relevant was showing on the sales BOM, but wasn’t exploding it’s BOM (think of it like a kit).  Naturally, my first instinct is look into the item category and item category assignment.  Everything was on the up and up there.  Finally one of my colleagues tried the Configurable Assemblies Only check box on the configuration profile, and it magically solved our issues.

All this time, I thought that check mark only controlled what BOM VC spit out.  Until today, I never realized that the check box for configurable assemblies only also controlled how the Sales order would explode out components.  Just one more reason to never assume you know how something works, or everything it impacts.  I learned a new lesson today.  Thanks to Pat.  I must admit, I feel dumb for not finding this myself, but even the best of us have things to learn.

Thanks for reading,

Variant Configuration – Simplify your Dependencies

Now today’s post is just  simple reminder to keep your variant configuration dependencies simple.  Lately I’ve seen a lot of dependencies that work just fine, but the logic is more complex than needed.  So here’s a couple of pointers I’ve noticed lately that should help to simplify your dependency code.

1.  If you’re using SET_PRICING_FACTOR, and it should be applied if the condition exists (for example, it’s always a factor of 2 or 4 if the condition exist), don’t add any additional logic beyond that.  The pricing factor can only be applied if the condition exists in the configuration.  You don’t need an if statement unless the pricing factor doesn’t always apply to the variant condition.

Before: (psuedo code, sorry)

$SET_PRICING_FACTOR($SELF, VAR_COND_1, 2) IF ….  (same logic that sets VAR_COND_1).
should be:

2.  If you set a default, you don’t have to delete that default if you are setting the value for that characteristic.  $DEL_DEFAULT only needs to be used if you want to remove the default and you aren’t explicitly setting the value.

3.  If your if statement has CSTIC = X, you don’t need to add if CSTIC SPECIFIED AND CSTIC = X.  It will be true if the cstic is specified already.

There’s just a few examples of ways to simplify your code and make it easier to read and maybe even improve performance.

Thanks for reading,

Adwords – Testing a new Product Idea

I’m sure I’ve mentioned it before, but it is incredibly easy to waste days, weeks, months or even years on a good idea that no one is interested in.  Believe, I know from experience (in case you haven’t noticed the name of my blog.  ha ha ha).  So needless to say, I’m always looking for tricks to make sure I don’t make the same mistakes again.

I recently came across a great idea from my Google Adwords book.  The idea is so simple, that it’s worth all the money spent on the book =)  Here’s the idea…  when you come across that great idea, before you spend 100’s of hours creating it, you go down a different path first.  You spend a couple hours building a web page to “promote” your idea.  You can even sell it like it already exists.  Then, go set yourself up a google adwords campaign (if you haven’t already).  Then, just create some ads for your new idea.  Like every good ad, make it compelling and sell the idea.

Now, you can get real world feedback on your idea.  First check your clicks and see if anyone is interested in the idea.  Then you can see if anyone is willing to take the next step to contact you.  Then you really know you have a winner.  If it doesn’t take on the first try, remember to tweak your ads for a while.  Also, tweak your website for new ideas or variations on the theme.  When your idea is “mature” enough, you’ll be getting clicks in your campaign.  That’s when you know it’s worth investing the time.  If despite all your best efforts, you get few clicks or no interest, you know that idea wasn’t what the market was looking for.  It doesn’t mean it was a dud…  maybe just ahead of it’s time, or maybe just needs a different spin.  Shelf it for a while, and if you still love it, try again.

Thanks for reading.

Feedback – Don’t be Afraid of it

On my vacation, I had a chance to do a lot self reflection.  One of thing I recently learned is that despite my best efforts, I still have a dominating feel of rejection.  Looking at it in an objective light, it’s completely irrational, however logic doesn’t always rule our thoughts, now does it?

I’ve spent nearly 6 years building infrastructure, building my first product, refining my first product…  and NOT selling my first product.  Is there anything wrong with my product, did I not build a good enough item?  or have I subconsciously spent all my time building, rather than marketing?  Now don’t get me wrong, I’m no marketing genius, but I’m realizing that I didn’t invest in marketing my grand idea because I was afraid it wasn’t good enough.  I was afraid people wouldn’t like it, would tell me it looks like crap…  you get the idea =)

What I came to realize is that fear stood in my way for long enough.  Don’t get me wrong.  Development is far easier to me, and more interesting, but development doesn’t pay the bills.  Sales and Marketing is the only way to make my business work.  So now my number one goal needs to be sales and marketing.  The bad news is that means development needs to take a backseat for a while.  So don’t be surprised to see more posts on Adwords, email campaigns, or any other marketing system I can figure out =)

Today’s lesson to walk away with, is believe in yourself.  Believe in your ideas.  Feedback is the best way to improve an idea.  Even “negative” feedback can make your ideas stronger.  Don’t be afraid of it…  seek it out…  It’s what I’m attempting right now =)

Thanks for reading.


Variant Configuration – Mixing Constraints and Procedures

Well, I recently ran into a glitch that forced me to do some investigating, so I figured I’d post it here.  For my VC guru’s out there, you already know this, but obviously, I forgot =)  The order of execution tends to be very important, especially when you mix constraints and procedures.  Let me start by laying out what I found, so it might make more sense to you.
I have a model that is primarily driven by constraints.  I’m heavily using variant tables in order to restrict my values.  There are also a handful of reference characteristics, along with some procedures to set things as INVISIBLE or NOENTRY, or setting defaults.  Now, everything worked just fine in CU50, but as soon as we started sales order testing, we started running into issues with the INVISIBLE characteristics (dynamic of course) not working properly.
So, like any good modeler, I looked at my rules and they all seemed fine in CU50.  Therefore, I’m “SURE” it must have been a user error.  ha ha.  Then I took it to the sales order and found that indeed, it was broken.  So, I went back to my old friend, trace.  This is what lead me to this post =)  When you start looking at the detailed trace, you see that a LOT happens for a constraint, and unfortunately, it’s not always intuitive.  What I was happening was a value was being set, then unset, then the procedure ran (unfortunately, dependent on the value), and then finally it was set again.  So I did some homework…  and short story was that there really wasn’t any around this “behavior”. The reason it behaved differently in CU50 vs. VA01 is because we had to manually enter a value for the reference characteristics.  When you enter a value, the execution works a little different behind the scenes.  This is why the issue only shows up in the sales.

So, the solution we came up with was to move the INVISIBLE and NOENTRY to a constraint.  What this accomplished for us was to make sure that everything kept getting re-executed to get the proper behavior.  Now, this still won’t solve all the issues…  since you can’t use SET_DEFAULT, or SPECIFIED in a constraint.  This will force you to use procedures if you must use this functionality.

The morale of today’s story, try to as much as you can in either the constraint or the procedures.  The more you mix these 2 technologies, the more testing you should expect to do in the sales order.  Happy modeling =)


Getting on the same page

Well, it seems like I’m in a touchy feely place after my vacation, so I’m going to talk about another soft skill that I have to improve on.  Making sure you’re on the same page with expectations.  Now, this applies to all aspects of your life, but I’m going to talk about it from the perspective of my business.  If you’ve read my blog for any length of time, you realize that I have two sides of my business.  Paper Street Enterprises, which is my consulting business and JaveLLin Solutions which is my software business.  Right now, 90% of my revenue is from Paper Street.  But my goal is to have 100% from JaveLLin in the next couple of years.  In order to help me achieve that goal, I partnered up with a colleague and friend.

Now, I had been working the software aspect since 2006.  And if you’ve noticed the title, I’ve been learning things the hard way ever since (well, to be honest, I’ve been doing it all my life.  ha ha ha).  When I partnered up, I thought my life would get easier and in certain aspects it has.  For the first time I have someone to bounce ideas off of, someone to validate my crazy ideas and someone to share in the rather large expense of launching this endeavor.  Now, the challenge has been that my partner doesn’t bring in a lot of the skillsets we need, rather he brings a lot of what I already have.  This is a double edged sword.  We are both engineers, so we have a great problem solving mindset, but neither of us have any experience in sales or marketing (with the exception of us both being independent consultants we know how to sell ourselves).

So, what does this mean?  well, if you read my post yesterday, you know that I’m obsessive about this software business.  It also means I expect to everyone to live up to this same ethic.  My partner and I both have a family, both have young kids and both have a lot of stuff going on in life.  So that means we need to use our time wisely.  Any wasted effort can cost us weeks or even months in our dream to do JaveLLin full time.  The problem that I realized is that we’ve been playing it too fast and loose in our scheduling and priorities.

Initially, I thought implementing a CRM system would help…  but it really hasn’t.  So it’s on to the next idea.  I’ll talk again soon about how it’s going.  But phase one will be to document all the irons we currently have in the fire.  Once we have the list, we need to assign priorities, and approximate time/level of effort, and finally we need to divide up those tasks.  I currently am the only developer, so it’s very hard for me to step away from the ABAP side of things, however, I’ve come to realize that we need marketing more than anything.  Without the marketing, we don’t get leads, without leads, no sales, and without sales, all this effort is for nothing.  So…  that’s all for now.  I’m sure I’ll be blogging again soon about this =)


Managing Expectations – Both for yourself and for you partners

Well, if there’s one thing I came to realize during my vacation is that I have a strong tendency toward unrealistic expectations.  And I tend to have this problem for both myself and everyone around me.  In general, it can be very toxic.  Let me explain a little more about my “issue” and I hope you can treat this as a cautionary tale.

For those of you that know me personally, you know that I might be a “tad” on the driven side.  I work my ass off night after night for my dream of being able to focus solely on my software business.  I love doing it and I also want the ability to work almost exclusively from home so I can see my kids grow up and not be stuck on the road.  So, this drives me relentlessly, so that I work from the time the kids go to daycare until they come home.  Then as soon as they go to bed until I can no longer think straight, then I repeat this process, day after day.  Now, I’m realizing this might be borderline obsessive behavior.  Now it’s healthier than booze or gambling…  but potentially a problem.  However, the real problem I’ve discovered inside of myself is that I expect others to have this attitude.  It applies to both my personal and my professional life.

I often expect too much of my wife.  I expect her to have the same “motivation” as me, and when she doesn’t, or more to the point, doesn’t live up to my ideals, I get frustrated and withdrawn, and end up working even harder.  This isn’t fair to anyone.  I build up these expectations in my head, and it causes trouble in my life.  Now I’m noticing that I’m doing the same thing in my business life.  The really stupid part is that instead of talking about the issue, I just bury it and expect people to get better magically.

I guess realization is the first step to fixing the solutions…  step two is learning to express myself better in the first place.  So, learn from my mistakes…  keep your expectations realistic (for yourself and everyone in your life) and communicate those expectations.  Good luck



Service Management – How Many DIEN Materials do you need?

Now, it’s been a while since I’ve talked about SM, so i thought I’d pull one out of the archives.  Well, at least my archives =)  Now when you set up your service business business, one of the questions you always begin with is how many DIEN materials do you need to run your business?  Now there are the obvious ones:
Return and Repair
Field Service
Service ExchangeNow, you can even break this down further by warranty or some other breakdown your organization needs.  My person take is to avoid going any deeper than the level I have above.  The further down you break things at this level will likely lead to confusion/mistakes when entering in the orders/notifications.  I typically encourage any further breakdown to be handled at a level that can change (like the accounting indicator).  If you use warranty as an example, once this is on the sales order, it’s very difficult to reverse.  So I encourage you to keep things like that out of the “rough cut”.
Once you have the main processes defined, you need to take a look at the next level.  Now, this is the  parts where things become more convoluted is if you begin to use resource related billing.  Now the trick with resource related billing (RRB) is knowing what you need to report on.  One of these days I’ll go into more details on RRB, but before you can do that, you need to understand what your goals are.  Now you can go simple, and just say labor and materials.  But what about subcontract costs?  do you need to break out travel costs?  or maybe even certain materials (ROH’s vs. HALB’s).  Keep in mind that much of your design will be based on your customer needs, but some of it should be based on what you plan to track as a business as well.

The short story is to have a plan.  You can add more in the future, but in order to handle Resource Related billing, you really need to figure out this part first.  When I talk more about RRB you’ll understand why.

Thanks for reading.


Variant Configuration – Save Temporarily Revisited

An old friend of mine recently emailed me about how to get the Save Temporarily feature to work in a sales order.  It had been a while since I touched that feature of VC, so I had to go back and play with it.  I remember the Save Temporarily being very “touchy”, but today I found out it was even touchier than remembered.

I’m going to keep this short, but if anyone can give me more details on exactly how this works, I’d love to hear it.  What I discovered is that I can’t seem to make the Save Temporarily work, unless the sales order already exists.  So, let me walk you through the steps I used that finally worked.

1.  Create the new sales order.  Be sure to enter everything (including the KMAT you want to populate) and then save.
2.  Go to the sales order/CU50 screen with the configuration you want to copy and open it up.
3.  Use the menu path:  Value Assignment–>Save Temporarily–>Save as
4.  Enter in a name (remember, if you have multiple levels that need to be populated, you must do a save as for each nested KMAT)
4-a.  Not sure if this is needed, but I’ve got in the habit of Value Assignment–>Save Temporarily–>Overview, just to make sure it saved it.
5.  Save the sales order. (if you are copying from a sales order/line item).  I don’t know why this seems to make a difference, but it works.
6.  Go to VA02, go to the configuration of the item you want to configure.  Use the menu:  Value Assignment–>Save Temporarily–>Overview.  Select the one you want to copy.  It should be there.

I couldn’t make this work when i used VA01, so if anyone can speak to that, let me know.  Otherwise, this approach seems to work.  Hope this helps.

Thanks for reading.