Yet, few things are not binary!

Tips on programming, architecture, algorithms, project management

How to do manual repetitive tasks successfully

with one comment

When you have to do a repetitive task manually (of course very boring) which involves multiple steps, something like:

1. running update query on client db

2. add new user to windows account

3. schedule a task

for n number of client desktops, and you don’t have time or resources to program it

write down each step, and execute it one after another without failing to note down status of each object.

Okay, wondering why I wrote this silly-looking matter?

I am sitting on a mstsc console and connected to 10+ client machines. I often do tasks parallely, and I often forget where I reached on each machine ;)

Written by Baburaj Balan

February 19, 2009 at 10:05 am

Posted in guidelines

Recession hit? Tips for freelancing

with 2 comments

Are you being laid off? Or recession hit in any other way? Freelancing for small-to-mid size business is the best way out. Well its not always easy to survive the freelancing too. Now you don’t have a Delivery manager aka punch ball. Nor you don’t have any Project Manager to be crucified. You better organize it yourself. If you are a freelancer even working from your dining table, I suggest you to stick a note on to your cookware not to use VB.NET. It is highly unreadable.

  1. Look out for clients, talk with your friends, offer them a decent commission.
  2. When you get a chance to sit face-to-face with your prospect, impress them with your technology. For example most people would call a freelancer for a simple website with static content. Tip them about a dynamic micro CMS which they can fire up and add content anytime. [WordPress to Oxite, you have endless choice to present with.] You can ask for more money if you hit it right.
  3. Ok, you got your first project. And you are not in your office. Wait! DO NOT leave behind any coding practice that your PM were enforcing on you. Unless you know a better alternative. My ex manager with 10+ years of C++ experience use to ask me to prefix every variable with type abbreviation. Which I think is rather cumbersome, and not at all necessary when you got a good IDE like Eclipse or Visual Studio.
  4. Write down a minimum scope document and get it signed by your client. An email acknowledgment would be just fine.
  5. N-tier your project. If you run out of your time in the future or got a new job offer, better prospect you can always resell / or even better outsource your project ;-)
  6. Okay, you started coding for Biggest Small Company, LLC of your city. When you finish writing first line of your code, and if you have forgotten to add your project to a source control, do it right away. Subversion is the best thing you can get for your home development machine.
  7. Its your chance to survive in the time of recession, and its your chance to learn new things and new technologies. Take a risk, if you were programming in ASP.NET in your office switch to ASP.NET MVC. If you were using JSP, get a copy of GWT and spice it up with Ext. Mix your tastes, Get the best fruit.
  8. Never put any business logic in triggers unless you are programming in Postgres SQL or something like that.
  9. For each ASP.NET page you throw away, create a class in Business Facade Layer, that runs all your business logic. Never write any kind of Business logic inside event methods.
  10. It should go without saying, still write unit tests for BFL classes created in the earlier step.
  11. Organize your tables and stored procedure using Schema. dbo should not be a schema attached to your tables and SPROCs.
  12. From the day one follow a single naming convention while creating Classes, SPROCs, tables etc. No matter how much you are tempted later DO NOT follow a different pattern.
  13. DO NOT define Primay keys set as auto incrementing IDENTITY keys if you can formulate a COMPOSITE primary key for your child table.
  14. Always use CSS to style your UI. ALWAYS.
  15. Always use ENUMs and Constants to represent status, states etc. Your code will be highly readable end of the day.
  16. Comment your code generously. You may ask, but why? Okay I agreed there is no code review team, or support department who might be handling AMC for your project. But I bet you will end up reviewing your code after a month or so, checking for possible flaws. And if you don’t comment properly all you gonna is a bunch of spaghetti code.
  17. No matter what size of the project you are dealing with write down every bit of specs that you are developing.
  18. Identify the core modules first. For example,if you are developing a ERP system with Purchase, Sales, Payroll, Finance, Reports modules, design and develop Finance and Reports module first. Or at least write down what data you will have to pump in to get these modules working.
  19. Wrap all the errors neatly, never let them pops out to user space. And log them properly.
  20. Leave place for L10n, and i18n. Your code can go places.
  21. Walk often, drink plenty of water. Stay healthy.

Well, that is a quick writeup. Please leave your comments.

Written by Baburaj Balan

February 9, 2009 at 6:05 pm

Follow

Get every new post delivered to your Inbox.