You probably know a lot of programming languages, frameworks, you code faster and the best of all, your code works! And you could think: -I’m a good software engineer.
So yes, that is great, there are some machines that are learning to code even faster than you do, but that is not what a professional software engineer is.
Have you ever heard about Robert C. Martin and his famous books? If not, I encourage you to read them, I’ll share some useful tips that could help you in your professional career based on the “The Clean Coder: A Code of Conduct for Professional Programmers” book.
The book is not about code function and design, this is more of day to day conduct that differentiate a regular software developer from a professional software developer.
Professionalism
Professionalism is all about taking responsibility.
- Do no harm the code: don’t create bugs, make sure you code is tested.
- It is unprofessional in the extreme to send code that you know to be faulty to QA.
- Your career is your responsibility: It is not your employer’s responsibility to train you, or to send you to conferences, or to buy you books.
- Know your field if you want to be a professional, learn design patterns and principles, methods, disciplines.
- Practice, practice, and more practice: True professionals work hard to keep their skills sharp and ready.
Saying No and Saying Yes
Professionals have the courage to say no to their managers. They work hard to find creative ways to make the “yes” possible.
- Your manager is counting on you to defend your objectives as aggressively as he defends his. Both you and your manager need to get to the best possible outcome through negotiation.
- Professionals pursue and defend their objectives as aggressively as they can.
- Recognize lack of commitment phrases: “hope”, “Let’s see if we can get this done...”.
- A sincere commitment sounds like “I will do something… by this certain date…”
- Bring up blockers or red flags as soon as they come up — communicate.
Coding
Coding is an intellectually challenging and exhausting activity.
- If you are tired, worried or distracted, do not code: Code will have bugs, a wrong structure.
- Spend personal time before work trying to resolve or mitigate personal issues or demands so you can focus your mental energy on being a productive problem solver at work.
- Be prepared to be interrupted and help someone — it’s the professional thing to do.
- Ask for help and ask to give help (mentor).
Test Driven Development
Writing your tests first
- Good tests function like good documentation.
- TDD is a discipline that enhances certainty, courage, defect reduction, documentation, and design.
Practicing
When performance matters, professionals practice
- All professionals practice their art by engaging in skill-sharpening exercises.
- Doing anything quickly requires practice: It’s not always wise to go that fast, but sometimes is better do it as fast as possible and is highly productive.
- Practice coding outside of work by doing kata.
- Open source: Take on some pro-bono work by contributing to an open-source project.
Testing Strategies
Every professional development team need is a good testing strategy.
- Test pyramid
Time Management
What strategy can you use to ensure that you don’t waste the time you have?
- Meetings are necessary and huge time wasters.
- You do not have to attend every meeting — be careful about which ones you decline and choose to attend.
- Pomodoro Technique.
- Professionals evaluate the priority of each task, disregarding their personal fears and desires, and execute those tasks in priority order.
Estimation
Estimation is one of the simplest, yet most frightening activities that software professionals face.
- Professionals know the difference between estimates and commitments.
- A commitment is something you must achieve; an estimate is a guess.
- Learn methods to get a better estimate like PERT.
- Estimating methods: flying fingers, planning poker.
- Always include error bars with their estimates so that the business understands the uncertainty.
- Professionals don’t make commitments unless they know they can achieve them.
Pressure
The professional developer is calm and decisive under pressure.
- Under pressure? Be sure to manage your commitments, follow disciplines, and keep code clean, communicate, and ask for help.
- Professionals do not succumb to the temptation to create a mess in order to move quickly.
Collaboration
Programming is all about working with people. It is unprofessional to be a loner or a recluse on a team.
- Programmers have difficulty working closely with other programmers. That’s no excuse, though. Being a developer means working with people.
- Meet the needs: Collaborate with your managers, business analysts, testers, and other team members to deeply understand the business goals.
- Pairing is a great way to share knowledge with each other, best way to review code.
Teams and Projects
Strive to have a “gelled” team.
- A gelled team is one that forms relationships, collaborates, and learn each other’s quirks and strengths.
- Teams are harder to build than projects: It’s better to form persistent teams that move together from one project to the next and can take on more than one project at a time.
Mentoring, Apprenticeship, and Craftsmanship
Software development industry has gotten the idea that programmers are programmers, and that once you graduate you can code.
- Software apprenticeship can be a three steps journey: starting from apprentice and moving to journeyman before becoming a master.
- Be a craftsman: someone who works quickly, but without rushing, provides reasonable estimates and meets commitments. Knows when to say no but tries hard to say yes.
- If craftsmanship is your way of life keep in mind that you cannot force other programmers to become craftsmen.
Conclusion
It is a dream to realize all those tips that Robert C. Martin suggests, in the real world some situations can be out of you, but we can try to follow as much as we can.
I read this book a couple of years ago, and I can honestly say that I’ve improve my skills faster than I thought, I’m more confident on my job, my team trust me on giving me higher responsibilities and challenges, I’m still learning and applying the advices the better I can and when is possible.
Start by small changes, remember that being a professional software engineer take years, so enjoy your career, enjoy the journey to becoming a craftsmanship.




No hay comentarios:
Publicar un comentario