I just read a Foreword from Jeff Sutherland ( co-creator of Scrum ) from the book "Scrum and XP from the Trenches" where he comments how he chooses companies who really apply Scrum framework ( an agile framework or methodology to develop software ) for a venture capital group as an agile coach.
The more time pass the more I realize how agile software development will play an important role in near future. It already plays an important role but it can become a requirement for startup companies in search for funding from venture capital groups.
If a company can not deliver its products in time or can not deliver working software or can not deliver something that was not what the client was expecting, it should not be expected that they would receive funding. As Mike Cohn cited in the same book in his foreword, agile development is not about beautiful documentation or future-problem-proof code, it is about software done and working. And that's exactly what clients need and expect from a software company.
At the same time, Scrum as well as other kinds of agile software ideas ( be it frameworks, methodologies or practices ) is very easy to put in practice. Any company or organization can start using this idea anytime they want.
If you have an idea about how is the Scrum process in five minutes or so, take a look at this articles: http://www.softhouse.se/Uploades/Scrum_eng_webb.pdf
Addionally the book "Scrum and XP from the Trenches" mentioned in the beginning of this post can be downloaded here: http://www.infoq.com/minibooks/scrum-xp-from-the-trenches
Personally, as a software developer and a small investor I will take Jeff's tip for future investments in tech companies.
Take a look if you are interested in finding spike solutions to solve programmers problems. It is also a place to debate impressions and opinions.
Search This Blog
2008-07-24
2008-07-18
5 Things You Should Remember about NHibernate
NHibernate is probably the most used ORM (object-relational mapping tool) for .NET applications and it is based in Hibernate the most used ORM in Java for years.
The learning curve to start working with NHibernate can be reduced if you remember the take the following steps:
1) The domain class should have at least one public or protected parameterless constructor
2) The domain classes' public properties and methods must declared with the virtual reserved word
3) For XML mappings, remember to rename your mapping files ending with *.hbm.xml not only *.xml
4) Also for XML mappings, remember to set the property of each file to embedded resource instead of content
5) Avoid using composite-id's classes as much as you can since they don't work very well when used in cascade collections and they make development more difficult
The learning curve to start working with NHibernate can be reduced if you remember the take the following steps:
1) The domain class should have at least one public or protected parameterless constructor
2) The domain classes' public properties and methods must declared with the virtual reserved word
3) For XML mappings, remember to rename your mapping files ending with *.hbm.xml not only *.xml
4) Also for XML mappings, remember to set the property of each file to embedded resource instead of content
5) Avoid using composite-id's classes as much as you can since they don't work very well when used in cascade collections and they make development more difficult
Unit Tests Rule Software Development
Even after a relatively long time using object oriented systems we still couldn't deal well with a growing problem. The lack of automated tests.
The absence of unit tests reduce the programmers confidence about the system and makes it very difficult if not impossible to modify the source-code. Since each modification can cause a lot of other bugs and undesired side-effects in other parts of the system or in other systems, the system can not evolve with the changing business rules and the changing technological knowledge.
Well that was true some months ago, now we are building a lot of unit tests for the systems already in production. Ironically due to some good architectural choices such as persistence isolation and POCO objects, it was not difficult to start testing with the Stub technique. It was all there, we just started creating test cases.
In reality, although not the ideal way, a set of use-case tests are being implemented in order to assure the right execution of what was working before. So the service layer is tested not the business objects at this time.
Now we are looking for automated ways to create mode real test cases in other to produce all the tests we need as fast as we can. Perhaps a testing framework will be necessary.
The absence of unit tests reduce the programmers confidence about the system and makes it very difficult if not impossible to modify the source-code. Since each modification can cause a lot of other bugs and undesired side-effects in other parts of the system or in other systems, the system can not evolve with the changing business rules and the changing technological knowledge.
Well that was true some months ago, now we are building a lot of unit tests for the systems already in production. Ironically due to some good architectural choices such as persistence isolation and POCO objects, it was not difficult to start testing with the Stub technique. It was all there, we just started creating test cases.
In reality, although not the ideal way, a set of use-case tests are being implemented in order to assure the right execution of what was working before. So the service layer is tested not the business objects at this time.
Now we are looking for automated ways to create mode real test cases in other to produce all the tests we need as fast as we can. Perhaps a testing framework will be necessary.
Subscribe to:
Posts (Atom)