“Sell me this pen” – a developer’s take

Recently I came across an interesting question on Quora that is “What are best responses to ‘sell me this pen?’ question?“. After reading various answers from experts following is my interpretation: One should start by asking questions to the customer and slowly raising the need to buy a pen. Once you have these in place then next step would be to promote your pen and finally sell it. As soon as I got this summary in my mind, I started thinking to link same in software development world and following are my thoughts for same.

questions-1328466_640For the first point, that is about asking questions and raising the need for pen, as far as the raising need part is concerned, that is something client will take care as he/she wants to launch his product, that we are developing, in the market and increase awareness and need for same so everyone will use it and eventually buy it if it’s paid software. For the questioning part, I have been with developers that falls on both side of the equation that is one who asks bunch of questions to clarify things before starting implementation and one who directly jumps on coding without asking anything and raise doubts as they come which sometimes lead to a system which completely different from what customer envisioned.

Chiefly, new developers are falling in the later technique and one the reason that I believe could be the new Agile way of development. Because in Agile way, our development should be open to changes at any point in time, even late. One of the major drawbacks for such technique is new requirements that emerge as a result of some clarification and affecting scope or delivery of the product.

digital-1320699_640Continuing on the sell the pen thoughts, next step that I interpreted is to promote and sell. Again this mainly falls under client’s coat, but still there are some areas where developers and mostly designers can help. For instance, designing a brochure for a product that captures everyone eyes when distributed or doing SEO of web application to make sure it ends up in a higher position in search results. There is also a thing called supporting a software and I have seen freelancers and some companies as well who goes beyond expectations in this area and delight their customer by contributing to their success. After all, if the client is successful then that adds up to your success as well.

To conclude, I believe that in a completely different dimension if a software developer is being asked “sell me this pen” question than there are high chances that he/she will nail it. Let me know your thoughts or your interpretations and linking of “sell me this pen” question to IT industry.


Trying Architexa for the first time

Architexa is a really useful tool for generating UML diagrams for Java projects in Eclipse. Most UML tools out there give you functionality of generating classes from the diagram you have created. But in Architexa you have a reverse functionality; it generates diagrams from existing code.  It helps a team to understand and document collaboratively a large Java code base. Starting from today, Architexa is available for free for individuals to use, and this post talks about my experience using it – how I used it?, which features I used?, and what I think of it?

Why should one use Architexa?

If the answer to any of following is yes for you then you should go for Architexa:

  1. Working with a new project or difficulty in introducing an existing product to a new team member.
  2. Finding it hard to understand the architecture of your code.
  3. Exploring unfamiliar code to determine its dependencies, relationships, interactions, and behavior within a codebase.
  4. Trouble finding a starting point in a large codebase.
  5. Wasting time deciphering complex code or documenting about code.

If your answer to any of the above questions is YES then you must go for Architexa. It will handle all these difficulties for you. Architexa helps you create UML diagrams directly from the code in just a single click. So making UML diagrams is way easier than before. It can create layered-diagrams, class, and sequence diagrams. These diagrams become the base for effective discussions and act as useful documentation for the project. Architexa allows you to add and edit Java Doc from code and other notes right next to the diagram.

My experience with Architexa:

(How I used Architexa?)



As do many other Java developers out there I also use Eclipse as an IDE for Java development and face some of the issues listed above in development due to lack of documentation about the project. I was already using an Eclipse tool/plugin for UML diagrams in Eclipse, but that tool was only very helpful if you are the one who starts the project. If you have been given a project that is already developed and does not have enough documentation to understand its flow and code then that tool doesn’t help me much.

About few days ago I got an email about Architexa, a tool for generating UML diagrams for Java projects in Eclipse. At first it looked like a normal tool of generating UML diagrams and I thought why download and use it as I was already using a tool to do same thing? But then I came to know about its functionality of directly generating UML diagrams from the existing code and this feature forced me to try Architexa once. And as I was expecting this is really a great and helpful tool for understanding the top level architecture of a large project. And as an advantage it provides functionalities of sharing diagrams or exporting diagrams as pictures.

I tried Architexa with one of our currently on-going projects and I would like to share my experience about how I used this tool and what features I liked most. I have written how I installed it and used it. I have listed what features I liked and used and would like to suggest you use those features. I have also written suggestions from my side that I would like to see in the product.

Download and Installation:

Download and installation of Architexa is very easy. One can start this procedure by registering on their site here: http://www.architexa.com/start. This registration is required as when you complete the installation it asks for this registered username and password. After this registration steps complete it will take you to the page where you find information on how to install Architexa on your Eclipse, which is also easy understandable and easy to follow. You also have to follow an email verification process which I guess is a very known and common practice to protect from spam and everybody is familiar with it. We have also installed extended features and the in-house group server to see how they all works together.

Generating my first diagram:

Before generating diagrams you first have to configure Architexa indexing. You can configure it after successful installation and account validation or later in Preferences.  After this configuration you are ready to generate diagrams.  You will see a Cheat Sheets view of Architexa when you install it, where you find and explanation of steps to get started with the different capabilities of Architexa.


To generate a layered-diagram, you just have to right click on project and select Open in diagram->Layered diagram. Layered diagram gives a good representation of project packages and dependencies between them. It’s a good diagram to have a quick overview of the project. It is very good in displaying a particular classes’ dependency from a package view, and how packages are dependent on each other. Some features that I used and liked in layered diagrams are:

  • Size of the module is drawn based on code inside it and they are also placed in layered style such that higher layered modules are dependent on lower layered modules. When you hover on any class or package it shows it’s dependencies by arrows to other class and/or packages.  Also those packages are highlighted to get proper focus on it. It helps us to decide which modules will get affected if do change in a module.
  • Double clicking on packages will show the classes and packages inside it.
  • You can easily add new packages, classes, general connections, actor, database and/or comments directly from this diagram.

Class and sequence diagrams:

Generating class and sequence diagrams is also easy, right click on some class then click on Open in diagram->Class diagram or Open in diagram->Sequence diagram.  When you do this it draws a diagram with only one selected class, no any other classes to make it messy. Now you can add things you need by dragging and dropping classes or by exploring class members/methods and their dependencies. Also it uses icons for classes, members and methods that Eclipse uses, so it becomes easy to understand it.

A sequence diagram is a good representation of call hierarchy of methods or members of a class. By this you can easily see which methods/members are called and used by which other classes. To demonstrate the possible flow of control that a system could take depending on various conditions or tests, Architexa displays loops, iterations, and conditional statements in sequence diagrams.

A class diagram gives information about relationships and dependencies of classes with each other. It gives an overview of which class inherits from which class or what classes subclass it. Some features that I used and liked are in these diagrams are:

  • You can easily go to the code of particular class or method by just double clicking on it.
  • You can add new methods and/or members to a class. You can also add method call, inheritance, method override, actor, database, comments in these diagrams.
  • In sequence you can see differences in a file if 2 or more members of a team are working on same file. It shows difference in the diagram which is in my opinion a very cool feature.
  • Sequence diagrams are also integrated with the debugger.

Sharing diagrams:

Architexa provides a functionality to share created diagrams to team members. To share diagram you have to create a group on its server. By sharing diagrams your team members can easily access the documents whenever they want to. Creating groups is also easy, I have created a group from the website, but one can also create it from Eclipse. After creating a group you have to save your diagram in it. When you press CTRL + S to save a diagram it will open a dialog with 3 options:

  1. Save diagram on local disk
  2. Save diagram on private server
  3. Save diagram on community server

3rd option is for saving a diagram on their server. When you click on it, you will see Upload to server view. Here you can give it a name and choose a group to share this diagram with.

The other way to share is by email. I have not tried this functionality yet and so am not able to write much about it.

Some suggestions:

  1. In layered-diagram, if I drag and drop packages then sometimes it results in duplicate packages in the same group.
  2. In layered-diagram, sometimes an empty group of packages gets hidden and sometimes it stays visible.  Not sure if it’s intended but it doesn’t look consistent to me so would like to see a change in this.
  3. Diagrams also include method calls to Java’s default classes like Map or String. What I think is generally people don’t want to know about these classes and calls to methods of these classes as they can be considered as a part of the implementation and not documentation. It’s a part of how one has done the task. Everything else in this diagram is cool.
  4. Fonts used for class names in layered diagram are quite bigger relative to package names; it will be good if it can become smaller.
  5. If you close Eclipse without saving the diagrams, it doesn’t notify or alerts you about first saving diagrams and then close Eclipse. It should alert if one is closing Eclipse without saving diagrams.


Architexa is a good tool for UML diagrams in Eclipse for Java development. It is very  easy and simple to use. Once a class is in a diagram, it is always kept up to date so no need to refresh diagrams every time you change something. And the graphs are also very readable. If you have a large team in which members keep getting changed or you are the one who is responsible for understanding already written large codes then this is the must-use tool for you. Currently Architexa is only available for Java. Though they also have a prototype for C/C++. If you have used it for a new project from the beginning then it will become very easy to document your project, share the diagrams, code change reviews, and much more.

Architexa also has many other features that I have not used yet. For more information on Architexa visit their website: http://www.architexa.com/

%d bloggers like this: