This post is consists of the things which I learnt from a lecture which conducted by Robert.C.Martin(UncleBob)
|
Everybody says Software Engineering is a profession, But is it 100% true?
|
As a programmer what's the biggest problem which lies right underneath us but we didn't care much about it...??
The answer is ,We do not have a profession.
What we have is a job, tasks . But nothing about ethics, best practices. There for we can't say we have a profession because there's nothing we "profess".
What is this Software even mean. It consist of word Soft-ware, means that this is a soft thing.it means that it will softly change according to the requirement. But what we design is can’t be called as software because flexibility of the piece of code that we write is far below than soft.It’s hard to respond to the requirement of change.we made it hard to change.it means that we build a hardware instead of software.
When you recruit as a new developer you may be assigned to a task which got the required delivery date is far less than required. Being the new one and with the interest of showing off, you will work harder and faster on the piece of coding will be able to deliver before the given deadline.
And most of the people appreciates you . But think of two years of time working in the same company. Can work as you did at the start. Absolutely You can't (Compare a Race of a Marathon and a 100 meters sprint). So when starting a new carrier always plan out the rest of your path in the company.
Practise the Test driven development from the start of the career and will benefits you from a great deal in future.When concerning about the Test Driven development What percent of the code should be covered by the test, is it 20%,50%,75% ??
No, It should be 100%
By doing that so Passing of the test tells you nothing,but Its should allow you to make decisions that you would not made otherwise
Apart from these things Uncle Bob suggested few things highlighted which the Professional Software Engineer must follow.
We should not ship "SHIT"
we will not knowingly ship shit code that is,
Because you were hired because of your knowledge(because you know how to ship good code). This is not some thing you need to permission to do because it's expected of you(do not need to ask from the boss that if it's OK).
Know one will expect you to violate basic standards of work .So just try to do a good job on each and every day.
We will always be ready
what should be the task of the programmer at the end of the each iteration .Is the answer is done Because the Word "done" means not a Boolean variable of our world hence it got a variety of explanation .
We will not dump in our QA
When Software team dump the load in the QA, and mostly QA will find nothing.Because usually the development team delays the load of production and expect the QA to find the bugs in a shorter time. Will that procedure may output quality results? Because being the developers be late on it doesn't change the release date.
And actually as a developer , do we really values the bugs??. But from a QA perspective their motivation will be “We want more bugs, We want more bugs….//”.Did we ever think about why this conflict caused?
Automation
Manual testing always ends with losing the tasks(EG: TIME RUNS OUT,most important vs least) Why don't we automate it, because we are programmers QA should move to the front end of the product to figuring out what sort of tests to be run and they do not need to run those tests, programmers are to run those tests Some testings can’t be automated(eg: testing of creative energy)
Nothing Fragile
Don’t expect any fragile module in the system,if any fix those immediately.
Cover for each other
“It’s your responsibility to make sure that some one can cover for you”(eg:pair programming, reviews).That’s how a team works!
Honest Estimates
"Society does not understand how really important we are,but they are beginning to learn"
Fearless Competence
If you fear about a code which any person written you couldn't clear it.That's the main reason behind, why our code getting worse every day. When you no longer the master of what you created it starts to Dominate you.
Frameworks
Framework designers does a great job by producing a code which is free to use for the entire world. But there's a common behavior which can be identified on all of the framework designers."Every Framework Author want the Couple the code of the user". They want to intertwine your code with theirs.Because they know when we done that we will never be able to get away.
Uncle Bobs Words :
"I will Decouple my Business Rules from a framework to keep my company safe.Because I may want to change it in future."
Comments
Post a Comment