Not So Random Thoughts About NAV

Book Review - Microsoft Dynamics NAV 2009 Application Design

It's been a while since my last blog post. I've been extremely busy with an implementation, writing my own book, and reviewing another book for one of my fellow Mibuso contributors, Mark Brummel.

I've been a NAV Programmer for almost five years now. When I started, I wasn't very good. I didn't understand what NAV was and I didn't know how to find out. As the years went on I slowly figured out where to find information about what I was doing. I'm not one to read long books or articles on the computer so I print them out.


I know it's not the best picture, but that's a portion of my printed documentation. I think I might be responsible for the destruction of an acre of forest somewhere.

I learned a lot from reading those thousands of pages, but I also would have learned a lot if this book had been around when I started. Mark explains the high points from these volumes in a concise, easy to read manner. He uses his many years of experience programming and implementing NAV systems to make the chapters enriching, and just as important, interesting.

One day I hope to have my own solution center, or at the very least lead a team of other techno-functional consultants. When I do this book will be required reading for all of them. It blends application and programming concepts so that someone from either side of the aisle can understand what is happening. I even found myself learning things I had always wondered about. This book is a great read for all levels.

If you want to read 5000 pages of documentation, go for it. Your time would be much better spent reading the 500 pages in this book, though. Check it out here:

https://www.packtpub.com/microsoft-dynamics-nav-2009-application-design/...

You'll be a better consultant for reading it.

Handling Basic Questions on the Forums

As I posted more and more on the forums, I noticed that I was answering the same questions over and over again. I wasn't just answering similar questions, I was answering the same questions. There was a common thread among them, though: they were all basic, beginner questions. It got me to thinking about the mentality behind the posters of these questions. Are they lazy? Smarter than the rest of us? Do they just not know what to do? Or is it some hybrid of all of these?

Let me first say that I do not want to discourage anyone from asking any reasonable question on a forum. Forums are a place for learning. That said, I don't think that they are the FIRST place for learning.

I've been a high school / college tutor for almost a decade and I bring that experience with me when I help users on the forums. My job as a tutor is not to tell people the answer every single time. A tutor is there to supplement the student's own learning. It's up to the student to exhaust the obvious material looking for an answer. For a poster, that includes C/SIDE Help from the client, the Application Designer's Guide, Development Coursework, Forums like Mibuso and DynamicsUser, and even Google. My goal is to empower the student to learn how to find information on their own.
Very rarely will I actually give the code to solve the problem.

Now back to the original questions. Are these posters lazy? I don't think so. I'm not sure. When you're starting out and you find the forums it's a wonderful place where you can ask any question you want and get an answer from someone who actually understands what you do. For an absolute beginner, I don't think this is laziness at all. They have taken the initiative to search for a solution to their problem. They haven't just given up. To me that is not laziness.

Too often, though, the poster is just given the answer. No mention of where or how they could have found the answer themselves. This may solve the problem in the short term, but what about the long term? The forums are their to help, not support. And there is a difference. The forums are not meant to answer every little question. That is the role of senior developers and documentation. Helping users means showing them how to support themselves.

I understand the reverse, though. If you don't need an answer right away, it takes 60 seconds to post a question. It could take much longer to find the answer themselves. I understand this, I don't agree with it. This does not lead to better developers, though. The mentality that the problem can be solved more quickly by the group than the individual does not apply in the early stages of learning NAV. In order to become a contributor to the group and in turn help others, you must first help yourself. When members of that group are gone you may be left alone. And then you'll be in trouble.

I'll close with one of the most overused proverbs: "Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime." When you encounter those very basic questions, remember where you came from and how you got to where you are. Odds are you didn't have everything handed to you on a silver platter, but you probably didn't learn it all on your own either. Try and find that balance when helping others and our communities will only grow stronger.

Should You Get Certified?

I see a lot of posts on the forums about "How do I get certified?" I thought it would be useful to address some of these questions for first time test takers.

So how do you get certified? A badly worded question if you ask me. You don't get certified, you earn a certification. Start here. Understand what the difference is between a Microsoft Business Solutions Specialist (MBSS) and Professional (MBSP). Essentially a specialist has taken an exam in one area while a professional has taken a group of exams in the same area.

There's a link to Prometric at the bottom of the page. They are a global testing site that administers these and other certification exams. You pick a date and time, give your credit card number, and sign up for the test. It's pretty simple. In the US it's about $125 per exam.

But before you go through all that, ask yourself a simple question: Why am I getting certified? There aren't too many possibilities, but let's explore each.

1) Your boss told you to, most likely because they need to keep their partnership or start a new one - This is a bad situation for you to be in. Your employer either can't retain top-level talent (no offense to you) or is branching into unexplored territory and doesn't want to fork over the money for a senior level person. Either way you don't want to be pressured into something you're not ready for. Junior level developers shouldn't be certified in anything.

2) You want to prove your knowledge - That's great...if you've been doing NAV for a while. Anyone can memorize a training manual and maybe pass the exam. But that's not what certification means; it means you understand the product, not know the talking points of the functional areas. Unless you know why things work the way they do you'll have a hard time.

3) You want to make more money - Everyone thinks they should make more money. Certifications can definitely help, but that's not why you should get them. If you've reached the point that you can get certified you should have also reached the point where you are already a valuable asset to your company. Certification is just icing on the cake.

Common question #2: Can you give me the answers to the questions?

NO!! I understand that you want to be certified, but this is not how you do it. There are sites out there that will sell you the answers to every certification exam you can think of. But that's cheating...the kind of thing you get expelled from school for. Honestly, if I found out I had an employee working for me that cheated their way to certification, I would think about letting them go. It speaks very poorly of their character and that's not the type of people I would want working for me.

I understand that some cultures have a different take on that. Share everything; the path of least resistance is the best one. In many cases I agree...development being one of them. Don't reinvent the wheel when there's a perfectly good wheel already out there. Certification is not the same, though. It is an INDIVIDUAL accomplishment, not a group one. That's not to say you shouldn't ask others about their experiences and get help from them, but that help should not be the questions from the exam. When you cheat you make the certification that much less valuable for the people who actually deserve it.

Common question #3: Can you combine certifications from different versions to become an MBSP?

Yes. As long as those versions are supported you will retain your MBSP status. Once they are not supported you will lose MBSP status. However, you will always retain MBSS for those exams on those specific versions. It's like a college transcript, no one can tell you you didn't take that class/test.

Other questions:

Where can I see a list of exams I've taken?

https://mcp.microsoft.com/mcp/Default.mspx

There you'll find your transcript, logos, and everything else about your certifications.

Without meaning to this post kind of turned a little negative. My apologies for that. Just make sure you're getting certified for the right reasons. Remember: Certification is not something you get...you earn it through years of work and understanding your product.

Where to Begin?

When I was new to Navision, I didn't really know where to start. My first employer put be through the Development I e-course from Microsoft. Let me tell you, for someone who spent 4 1/2 years earning a computer science degree and learning how to create variables and write loops in every language imaginable, this was mind-numbingly boring. A good programmer can pick up syntax and an IDE, especially one as simple as C/SIDE, in an hour.

Unfortunately for systems like Navision, and ERP systems in general, knowing syntax and how to write code is not enough. When you don't understand the fundamentals of how a system works as a whole, let alone the functional areas by themselves, you can't write great, or even good code. I couldn't tell you what a G/L Entry was nearly a year into my Navision career. That was a serious problem.

Now I don't want to blame my employers for that (ok, I sort of do), because if I hadn't had that first job I wouldn't know what Navision or ERP were and would probably be just like every other C#/Java/OOP developer. Providing documentation and adequate training materials to all employees, not just new ones, is essential to retaining top talent and training new resources. I didn't know where to get that for my first year and want to share some documents and sites that I have found helpful.

Dev I and II Books
As I said, if you are an experienced programmer, skim the first book. It's pretty boring. Dev II, however, provides a lot of useful knowledge. It takes you through an entire project, step by step, and teaches you the basic work flows in the system. You'll learn how objects should interact with each other and the methods used in the base system. This is a must read.

Application Designer's Guide
This is a deeper dive into everything from the development books. You'll learn about system architecture, development, and even some about the database itself. I do not recommend skipping the development books and going straight to this. Navision is huge...get your feet wet, then jump in.

Functional Documentation
You can't modify sales processes if you don't understand how sales works. The same goes for purchases, financials, manufacturing, and every other functional area in Navision. It was originally an accounting system, so start there. Expand to Trade (Sales, Purchases, Inventory) and then move to specializations like Warehouse Management and Relationship Management. Learn the things that every company uses and you'll be off to a great start.

Logon to CustomerSource or PartnerSource and click on Training and Certification to find these and other manuals. There is also documentation on the product CD.

Take a look at what Amazon has to offer.

Microsoft Learning has courses as well.

And of course don't forget about Mibuso and DynamicsUser.

It's hard to find help sometimes, but it is out there. To all those who are just starting out, keep at it. This sort of development is a great field to get into. If you're willing to put in the work you'll have an amazing career ahead of you. Good luck!

What makes an expert?

Over the past year I've found myself answering more questions than asking them. It wasn't that long ago that I was a recent college grad who couldn't even tell you what ERP stood for. Now I'm the go to guy for a NAV/Navision system with over 100 users in multiple countries. I'm not exactly sure when I made that jump from "Oh my God I just killed your system!" to a NAV architect who knows (for the most part) the specifics of how the system works as a whole, but it got me to thinking about what makes someone an expert in a certain field...and whether or not I was one.

The what is not nearly as important as the why.
Obviously the most important part of being an expert is understanding what you're doing. Don't get that confused with knowing what you're doing. Just because you can perform the lab exercises in the functional and technical manuals with your eyes closed doesn't mean you're an expert. Knowing how to run Adjust Cost, even knowing what it does, is not the same as understanding why it needs to be run.

It's not what you know, it's who you know
If you know what every button, every object, and every line of code in the system does then congratulations. You should either be billing 2000 hours a year and making a six-figure salary or running your own solution center. It's important to remember that in an application as big as NAV you're never going to know it all. Even Microsoft MVPs and senior level professionals have questions sometimes. That's not to say that you shouldn't strive to learn as much as possible, but you should have a place, or better yet, specific people that you can bounce questions off of. Speaking from experience, it's not easy to learn when you don't have anyone to help you. If you need a place to start, I highly recommend www.mibuso.com.

Love what you do
I've developed in my fair share of languages: Basic, C, C++, Java, Jython, C#, SmallTalk, Lisp, just to list the more well known ones. I've built windows applications, web sites, all sorts of things. I have to say, though, that I absolutely love being an ERP developer. If I spent my days writing OS and device driver code I would go insane. Whenever people ask me what I do, it's basically a conversation ender: Computer Programmer (I boil it down to a term they should be familiar with). Little do they know they're missing out on so much fun. I can't imagine doing anything different. If you don't feel the same way about what you do, then you should find something you do love. Don't spend your time trying to become an expert in something you don't want to do.

Transferability
If you can't put the things you know into words (that includes speaking, writing, coding, and anything else that involves knowledge transfer) then you cannot be considered an expert. The purpose of becoming an expert is not just to hoard everything you've learned, but to turn that knowledge into practical, useful tools. More importantly, your knowledge should be used to make other more knowledgeable. Think back to when you were the junior developer, wanting to succeed, but not knowing where to start. The ability to help others will only make you more successful.

So do I think I'm an expert? I guess I'm still undecided. I'm certainly closer to it than I was when I started this journey down the ERP Programmer career path. Hopefully this blog will help others get to the point that I'm at...helping others with their questions and always looking to learn more. I can't guarantee how often I'll post or what my posts will even be about (well, they will all involve NAV in some form), but I hope they'll be interesting enough to keep you coming back.

Syndicate content