• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Code as a Crime Scene: larger codebases

 
security forum advocate
Posts: 236
1
Android Flex Google App Engine
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hey Adam,

Congratulations on your book. I've always wondered about the power of logs produced by the VCS(Version Control Systems) we use, at work or otherwise. And it is really interesting to see a book to that effect.

I have already downloaded Code maat and am gonna have a spin at it.

But we'd love to know what were some of the interesting(most complex) problems that you encountered when working with larger codebases than against those smaller in size with a fewer collaborators?

Thanks!
Sai
 
Author
Posts: 21
6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Sai,

Thanks a lot! Indeed, I have a lot of code battle stories. Part of my work involves analysing codebases so I get to visit different companies, see their differences and similarities. In general, the larger the codebase and the more people working on it, the more value you get out of the techniques in Your Code as a Crime Scene.

The most complex problem I've uncovered with these techniques happened a few years ago. I did some work for a company with around 200 developers organised in small teams. The team I worked with had to request frequent changes to an API that was owned by a different team. The changes themselves were trivial. That's why I was surprised to learn that each change took at least one week. I decided to investigate the problem by using a special version of the temporal coupling analysis that I cover in the book. It turned out that the requested API changes were indeed trivial for the team that owned the API. But in order to do them they had to modify yet another API that was owned by yet another team. And that team in turn had to go to another team, which had to request a change from the database administrators. So what was supposed to be a trivial change took forever since it rippled through the organization. Worse: no one had a holistic picture of the problem since each change was treated as a change in isolation and by different people.

When it comes to smaller projects with few collaborators I tend to focus more on technical analyses like Hotspots, Complexity Trends and much less on social analyses. You'd be surprised how often I find the worst maintenance problems in test code (it's almost like we programmers treat test code as a second class citizen). Sure, its quality may no matter much to end-users, but it's just as important as the application code for our ability to maintain and evolve the codebase.

Hope this answered your questions!
reply
    Bookmark Topic Watch Topic
  • New Topic