Getting too caught up with what's hot in software can be detrimental to a developer's career, some experts say. Programming languages come and go, but there are certain skills and attributes that can be honed that will lead to a prosperous career.
Unified modeling language (UML) is a commonly used notation in software development, but is it essential to know, especially for those early in their career?
In this excerpt Q&A, three industry insiders offer advice for working with UML and discuss the skills developers need to stay relevant in the evolving field of technology. They are Cory Casanave, CEO of Model Driven Solutions; Steve Cook, architect at Microsoft; and Ed Seidewitz, consultant at Ivar Jacobson International.
What advice do you have for someone working with unified modeling language?
Ed Seidewitz: I'd first say, understand why you are doing modeling and then understand how UML as a standard language can support you to do that, to be more effective as you go forward in your career. Rather than deciding to learn UML, decide that you want to learn how to use model-based approaches in your career. I believe that is going to be increasingly important to be used with Agile approaches and with Lean approaches and with the new kinds of things that are coming up in terms of new architectures.
There are all sorts of things that happen in our profession, and we tend to do things and throw them out and say, 'UML isn't hot anymore and Agile is hot now.' In a few years Agile won't be hot. The fact is there are some really good techniques around using model-based approaches that can help you be more effective. Once you understand that, then UML is just one of the tools that supports that.
Steve Cook: Don't expect UML to give you a development process. It doesn't. Make sure you have a development process that works and understand whether and how UML might fit into it.
Cory Casanave: I think the fundamental message is not to get too tied up in the technology and to really focus on what systems are supposed to do and how they're supposed to work together. You can certainly get an expertise in whatever the latest language is. Even Java is considered old right now.
It's not that those things [languages] aren't valuable, they are, and they're valuable to learn, but what we don't want to do is get the design of our systems, our algorithms caught up in that. If you get everything caught up in the technology of the day and then you have to work with a different technology, you are out of luck.
You really need to have what we call a systems thinking, in the way you approach solutions. Think about how the whole system works together to solve problems. If you can get a systems approach and understand how the system works together and how it solves problems, you are going to be working at a higher level and a higher pay scale and solving bigger problems than if you can just write some code. The ability to solve problems is always going to be valuable.
Editor's note: Responses have been edited for clarity and brevity.
Maxine Giza is the associate site editor for SearchSOA and can be reached at email@example.com.