LAST Thursday, Ivar Jacobson came to the École des Mines de Nantes invited by the AtlanMod team TO give a talk in the Jeudi des Modèles series of talks. No need to remind this but, just in case, Ivar is one of the three founders OF the UML language together with Grady Booch and James Rumbaugh (for his current thoughts on UML see this older blog post )

The talk, titled What they don’t teach you about software at school: Be smart , was a huge success and I can assure you that we all left the room “smarter” than before. For those of you that could not attend I’ll try to summarize some of the key ideas he emphasized during the talk. Visit his company web page for more information. Remember that this is my personal summary and thus, this is not necessarily a faithful transcription OF Ivar’s ideas (even if I’ve tried my best TO do so).

He started by saying that the goal of software development has not changed during the last 50 years. We want to develop good software, quickly and with low cost. What has changed it is how to attain this goal. We are a fashion industry, e.g. some of the fashions and fads we have embraced in the last decades are: OO, UML, CMMI, XP,… All of those approaches are good but none OF them is all you need (as most of us already know there is no silver bullet for software development).

What it is needed is to work smarter. Smart = agile++ (i.e. smart is an evolution of being agile). For this purpose, Ivar has developed a set of “smart cases” that represent good and bad practices for several aspects of software development (what he calls smart and “unsmart” things to do). Instead of proposing completely new methods he prefers to focus on a core set of practices that can be combined according to the needs of the team in a given project. Many of the practices are common to several popular development methods. Also, note that he talks about good practices and not best practices. Next, he proceeds to list many smart and unsmart practices. A few examples I wrote down are:

Regarding people

  • Having cross-functional teams (SMART)
  • Keeping the size OF the team under 10 members (SMART)

Regarding project management

  • Following a waterfall approach (UNSMART)
  • Building a skinny system to demonstrate that you have eliminated ALL critical risks (SMART)
  • Think big but build IN many steps (SMART)

Regarding requirements

  • Specify all requirements upfront (UNSMART)
  • Design your project to accommodate requirements changes (SMART)

Regarding modeling

  • If the modeling language it is not executable focus on the essentials only (SMART)
  • Don’t duplicate the effort by modeling everything (SMART)

and he ended up giving some comments about the development phase itself, saying that developers are the creators of the system… including their bugs and that too often, developers do not check that what they code works because they just assume that the testers will clean up after them (according to him, developers are fully responsible for writing a working code). Also, he commented that the idea that we document software so that people later can understand the system reading that documentation is a myth. Nobody reads a lot. You should only document the essential things and people will figure out the rest by themselves.

As the last message, he gave us some hope saying that We can ALL become smarter

The full talk will be soon posted online. I’ll let you know WHEN it IS available.

Want to build better software faster?

Want to build better software faster?

Read about the latest trends on software modeling and low-code development

You have Successfully Subscribed!

Pin It on Pinterest

Share This