Work smart(less), achieve big. After all you are an engineer.

Work smart(less), achieve big. After all you are an engineer.

In the current world, where IT industry is booming, people often miss the bigger picture.Everyone is running, to achieve "something" which they are not sure about.This "something" is usually short term and tend to make people forget what they actually want to do. People are working hard, which is really good, but wait, working hard again to solve the same problem isn't smart. 

Engineers are not born to work hard, they are born to work smart.A problem solved once (manually) should be solved by a program in future.Lets take an example to understand this better :

   "One pleasant day, when you have just completed your work and have nothing to do, your manager comes to you and asks you get some data which is very critical and required urgently."

The day is not pleasant anymore.You have no idea how to get that data.Suddenly you start worrying about all the problems you might face and it's consequences.

How do I get the data?

What if I am not able to get the data on time?

What if the data is wrong ?

and many more........

Here is the problem. Do you think these are right questions to ask ?

Are these questions adding any value to the problem in hand ? I don't think so.These questions will just take you backwards and increase the chances of silly mistakes. So, what are the right questions to ask ?

Who needs this data ? 

What is the expected size of the data?

What output format is expected?

Will this data be required in future ? May be periodically ? 

What is the source of data ? How much load it can handle ?

Such questions will definitely help you understand the bigger picture. Once you understand the bigger picture, you will also be able to find out how quickly you will be able to get the task done.

The first kind of person,will spend a lot of time in writing some program and generate a report. Since this person doesn't understand the bigger picture, he will simple dispose the code once the job is done and leave for the day.But, what happens when the manager comes again after a week to get a similar report.One more pleasant day is ruined and this person will again end up writing some low quality code.

However, the second kind of person will not only complete the basic task (which is to get the data), but additionally he will also do the following:

1) Optimize the code (such that it runs quickly) ,make the code configurable (such that it is re-usable),include proper validations (such that data quality is good) and commit the code in a repository(such that it is not lost).

2) Write test cases to test the data.

3) If possible (and required), create a job which will be scheduled based on the requirements.

4) Additionally, even smarter would be to create a dashboard (eventually) which will make all such requests self-service.

So when the manager comes again, he can simple guide him to the job/tool and the manager can get the report whenever needed.

What do you think ? Which one is smarter ? Obviously, it depends on a lot of other factors, (mainly the deadline) but the idea here is to understand the bigger picture,work smarter. This improves the overall quality of work, you learn a lot even from a simple task and future effort is saved.

"Tasks on hand are completed by everyone, but only good quality engineers take this opportunity to innovate and make the task easier,faster and fun"

"Love what you do, such that people will love what you did." 

Cheers,

Kaivalya 

要查看或添加评论,请登录

Kaivalya Apte的更多文章

  • Crash course on JVM Memory Management:

    Crash course on JVM Memory Management:

    JVM provides automatic memory management. In languages like C, developers manage memory explicitly using functions like…

  • Cassandra 5.0 : ACID Transactions, Vector Search and much more

    Cassandra 5.0 : ACID Transactions, Vector Search and much more

    Introduction In a recent podcast discussion with Patrick McFadin, VP of Developer Relations at DataStax, we delved into…

    5 条评论
  • Capture the Change, you want to see in the database.

    Capture the Change, you want to see in the database.

    Change Data Capture As the name suggests, it is about capturing changes to your data. By capturing, I mean reacting to…

    14 条评论
  • Be Resilient - Humans and Servers

    Be Resilient - Humans and Servers

    What is Resiliency? Ability to recover quickly to a “normal” working state from degradations/problems/failures. Like in…

    4 条评论
  • Functional Programming on the JVM

    Functional Programming on the JVM

    Functional Programming is a programming paradigm which involves breaking down a "giant" functionality into smaller…

    3 条评论
  • Distributing SQL Databases Globally

    Distributing SQL Databases Globally

    There are several reasons, why you would want to distributed your database. Keep your data closer to your customers.

    9 条评论
  • Why is DynamoDB AWSome?

    Why is DynamoDB AWSome?

    What is DynamoDB? A cloud NoSQL database service that guarantees consistent performance at any scale. Consistent…

    4 条评论
  • Designing Instagram, Linkedin, Facebook like applications

    Designing Instagram, Linkedin, Facebook like applications

    Hey Everyone, Welcome to the first article of The GeekNarrator newsletter, I am excited to start this newsletter along…

  • 5 things I learned from Hack-Week

    5 things I learned from Hack-Week

    Last few days we spent on hacking things and building something interesting, useful and which could not be done as part…

  • Readable Code : Just like a fairy tale

    Readable Code : Just like a fairy tale

    Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no…

    7 条评论

社区洞察

其他会员也浏览了