Service Oriented Scrum Sprint Planning

19 10 2007

Scrum works well. when its only one project and sprint planning is really focused to that one projects. However the reality in most companies is that many of them are going towards a some kind of service based architecture.

In these cases or in cases where a number of projects are being developed at the same time, scrum planning gets confusing. Since each team is so focused on the current sprint and back log only, it becomes very tough to build dependencies between systems or services at the same time.

Enterprise SOA Sprint planning - ESOP just a fancy name conceived is based on restructuring projects and run dependent projects on the same sprint time line.

All projects will go to sprint planning the same day. The dependent stories are discussed in a common spring planning meeting where both teams are present and then the teams split to plan other stories.

This brings in awareness in all teams and they are aware of the service contract they need to fulfill as a part of this sprint. At the end of the sprint these contracts get fulfilled.

The product owners of each project are typically so focused on thier own project that often they tend to put cross service stories at a lesser priority than thier own stories. The parallel sprint planning would allow them to look at the big picture and plan the stories well.

This also is a fun event. At the end of the sprint the two systems are indeed talking to each other instead of building them in some kind of step approach.

Another fun thing to do is for the scrum masters to switch as moderators of the two teams in the planning meeting. Especially after a few sprints these planning meetings become fairly boring exercise. Switching scrum masters for the spring planning brings about a fresh breadth of air.

Powered by ScribeFire.





System.InvalidOperationException : Previous method ‘XYZ..;’ require a return value or an exception to throw.

8 10 2007

System.InvalidOperationException : Previous method ‘XYZ..;’ require a return value or an exception to throw. If this is haunting you, i may have the answer for that

having used NMock for a while,I have been wanting to try out Rhino Mock framework. Rhinomock is a typed library unlike other mock framworks which use string based paramaters.

However the very first time i used a rather simple implementation I was taken by surprise.

Here is the stub code. When i ran the test i got an error..

System.InvalidOperationException : Previous method ‘XYZ..;’ require a return value or an exception to throw.

Trying to figure this out took a while, onece it worked i felt really stupid. Hence this post so that someone else can save a few hours of
unwanted stress and agony

[Test] [Category("UnitTest")]

public void TestTheCallToService()

{

RequestContract request = new RequestContract();

MockRepository mocks = new MockRepository();

MyService service = new MyService();

MyServiceAgent.IAgent serviceAgent = (MyServiceAgent.IAgent)mocks.CreateMock(typeof(MyServiceAgent.IAgent));

List returnString=null ;

Expect.Call(serviceAgent.GetList()).Return(returnString);

service.GetList(request, serviceAgent);

mocks.ReplayAll();

}
Note the line mocks.ReplayAll();

This should be called before calling the service.GetList

In Rhinomock first we need to set up the expectations like any other framwork. Then we need to replay those lines from the times the recording starts . ( MockRepository mocks = new MockRepository() ;)

After the repay call, all the mock objects are in the correct state and the actual call to the layer, in this case a business component would actually work.

The code after the change should look like this

[Test]

[Category("UnitTest")]

public void TestTheCallToService()

{

RequestContract request = new RequestContract();

MockRepository mocks = new MockRepository();

MyService service = new MyService();

MyServiceAgent.IAgent serviceAgent = (MyServiceAgent.IAgent)mocks.CreateMock(typeof(MyServiceAgent.IAgent));

List returnString=null ;

Expect.Call(serviceAgent.GetList()).Return(returnString);

mocks.ReplayAll();

service.GetList(request, serviceAgent);

If i have saved you even a minute of time, Do let me know :)
}

   

Powered by ScribeFire.





Agile Programmer toolkit

18 09 2007

If you are into XP practices and wonder what are some tools that can make your agility grow, here is a starter kit.

 
1) You need a tool to code - Eclipse or if you are a .NET dev, some version of VS
2) You need a good refactoring tool - Eclipse has a very decent refactoring tool. If is VS land try resharper.
3) If you are a command line person, you can customize anything you repeat. Programmers are lazy by choice. Automate any command you do often
4) You need to get NotePad ++ or some such intelligent editor
5) If you are into webservice development you  have to get Soap UI
6) You need a sql generator so that you can script out database. If using SQL server , try
7) Dont forget a code generator - Try mygeneration or codesmith
8) You need a code repository. Nothing beats subversion
9) You need a way to get to the code repository - Try tortoise SVN
10) You have to do continous integration - Use Cruise Control
11) You will need cctray ( This is a small notifier that notifies build status, get this from your Cruise control install
12) If you do TDD - you need Junit or NUNIt
13) If you want to acceptance test - Try fitnesse
14) For Load test  - try JMeter
15) A tool to view database - Try webyog for MySQL or in the Microsoft world, SQL management studio works well
16) A place to store requirements - Run to walmart and get some index cards

 

Powered by ScribeFire.





Setting Static Port for a web project in Visual Studio

11 09 2007

Problem:

When adding a reference to a web project using Cassini server, its a problem if each time it launches the browser in a new port.

Solution:

Hit the f4 key when mousing over the web project. Change the setting set dynamic ports to false and pick a port number

You are done. Every time you say start with debugging the server will launch the URL on the same port

Powered by ScribeFire.





Boycott Times of India

30 07 2007
Boycott Times of India

I come from India and love to check whats going on in that land  on a daily basis.
I used to live in Bombay and used to worked near the Times of India building.

I really like the physical version of the paper for example http://epaper.timesofindia.com

It is appaling and i cant understand why I  get bugged with pop ups ads ( shaadi.com) whenever i visit that site. For those of you who dont know shaadi.com is like match.com

a) I am not in the market looking for a match ( My wife and two kids should be proof enough for that)

b) If at all you have no other revenue steam , altlease show some intelligent ads that i many not  mind watching. Show something on technology, Agile development.
I am competely put off sites that have no data whatsoever and simply throw a pop up . Hello there is something called as data analysis.

There is a secret to making money in the business. If you visit the times of india building in Bombay, the grond floor of the parking lot (one full section) was dedicated to the expensive cars that times of india executives drove.
How much more greedy you want to get.

If you really want to make money write excellent articles. Learn from other sites.
IBN CNN, slashdot,CNN, reuters etc. If you make me come more to  your site, i may end up
reading more of your  news.

Wonder why people are not angry at this.

I tried after a year http://www.timesofindia.com. Before i read the first news item, I had to bear with the stupid pop up.

If you read time of india please do me a favor, write about your user experience.

May be they will see the light





Hooked to Live earth

25 07 2007

For those of you that missed the Live earth concert, MSN has most of it live. Two hours have rolled by and I am hooked to the concert.

SOS all starts, Paoloa Nutini and i guess many many more to come.

Check it out.





Bar Camp Bank this weekend

20 07 2007

I have heard a lot about Barcamp . THis weekend a different take of BArcamp called Barcamp Bank is being held in Seattle.

I am very eager to go to this as most of what i have done in the last 12 years is software development for financial services. I am eager to meet folks in the industry who are actually involved day in and day out and hear from them the technical and process related challenges they are facing?

If you are in town this weekend  dont miss this event. If you make it stop by and say hello to me :)





THE AGILE Paradox

17 07 2007

In the book Good to great Jim Collins talks about a Stockdale paradox. Many organizations are busy today trying to implement a myriad of new processes and metodologies. But are they really aware of thier actions.

At the end of the day every business software project or product has a certain life span. Most of the software we write today has a life span of 5-7 years.

How many applications are there today on the internet that existed  five years ago.?
Think of what you did five years ago.The internet was quite new, google was absent, so was You tube , Skype and ITunes. IPod was not such a hot commodity a s it is now. Today IPOD has become synonymous to Mp3 players.

These are some software products that in my made have made a huge difference in how we percieve and use techy stuff ( from a common mans perspective )

1) Google Search
2) Hotmail / Yahoo mail
3) Apache server
4) Yahoo finance
5) Microsoft word
6) Windows XP
7) Yahoo messenger
8) Mapquest
9) EBay/WIkipedia
10) Travelocity

There are thousands of other products that have made a huge impact but in my view the above 10 have made the maximum impact on what we do today

Do you think all the tools above followed XP, Scrum or similar methods, and Agile. Are all of these TDD driven, have acceptance tests and follow iterative development.

I am sure of almost seven in the list which certainly were in no way developed on any agile technique.

What drove them was the fire to innovate, the need to be different. There was a wide open need and a product was developed that met the need. IT need not have been the best. Case in point , many of us dont use Mapquest today but use the much fancier version google maps or other look alikes like Microsoft maps.

As software developers and product owners we should not again become slaves to processes. If we start talking too much about things that dont matter then we are not going to be succesful.
We dont write code in agile or XP. We write in Java, C and C# ( Oh and how can i miss out on the Ruby lovers ).

What if all of a sudden tomorrow,  we forget about agile.XP and Scrum / Lean  {CTRL ATL DEL),  would we stop developing software and provide value to customers.

It is important to take a hard look at how we all develop software and think of this paradox

The Agile Stockdale Paradox

Retain faith that Agile XP, Scrum will prevail in the end, regardless of the difficulties.

AND at the same time

Confront the most brutal facts of your current reality, whatever they might be.

 




Making India Proud - Go Mundu Radio

12 07 2007

I am proud to be associated to Atul Chitnis, who has influenced me in many ways till date. If you know Atul one of the things he is a big fan of is thinking beyond what’s considered thinkable.

Quoting what he says :)

Innovation isn’t about creating something new.

Innovation is about creating something that makes people sit up and say “Whoa! I want that!”

Read his entry on Mobile Imagineering

http://comversations.com/2007/05/30/mobile-imagineering/

So it came to me as no surprise when i he told me today that one of the products from his company called
Mundu radio won CNET “Webware 100” award competing with some serious global brands.

You may say , so whats different about that.

This is one of the very few time companies from India are truly giving a run for your money competing with the big guys.

That is a big change in how Indian companies perceive themselves. Its no more about cheap labor or just helping out other glabal giants being profitable.

Watch out world Change is happenning.. and its happenning now

 





WPF + WWF + WCF = TOTAL CONFUSION

4 07 2007

Do we sometimes create more problems for ourselves when we dont have to. Over the years I have seen that there has been no ground breaking innovation in how we program. The problem has only gotten worse.

We keep adding framework after framework. Layer after layer. At one side there are some simpler languages like C and Ruby. Then on the complete other spectrum we have languages like Java and .NET ( C# for example)

Java came out in 1996 timeframe and it was a new wave of programming. Not much has happened since then. Vendors introduced this confusing architecture called SOA which in 90 percent of the cases is Simply Over Architecture( SOA).

Then there are tools like Eclipse and Visual Studio. We speak of complicated things like collections, generics and Linq and Hibernate.Most of these are questionable frameworks. Well collections may be not.

I have worked extensively in both the Java and the .NET stack and its sad to say that even after 11 years , we have made no significant progress in how we perceive programming.

Software industry is very predictable.

First there are vendors like Microsoft and Sun and IBM etc whose sole purpose in life is to inculcate fear and create a need when absolutely no need exisits. For the last three to four years all the CEO and CTO’s are drinking the SOA and Agile cool aid.

Then there are thought leaders whose sole job is to create fear too, write books and take us to a programming model that we for ourselves have never created. Thanks to gang of four for creating a never ending confusion of Patterns. If they did not write that book, I think life would have been much simpler.

Take the  patterns and practices group in Microsoft. These folks basically create the next best framework that adds no serious value to enterprise software. It does make it simpler to some extent but its not an easy thing to use. For those experienced in any enterprise library from Microsoft, its no simple framework.

Same appears to be the problem in the Java world. Do we really need Entity Beans CMP? I can count on my finger tips that number of entity beans i have written in the last 10 years. Oh wait, I dont have to count, I never had a need to write one.

Why did we invent the wsdl?It uses XML. XML based communication is the least efficient way to transmit text for a webservice.Whatever happened to the good old binary format Now we tell hackers exactly what the password is or the ss no is as its in clear text.

Take an example of the new .NET 3.0 framework. First we had remoting, then webservices and now we have WCF /indigo. Create need when there is none. There is something called Jini in Java world that somehow did not see the light at the end of the tunnel.

By the time you would have even figure out what these mean , they will be out with the next set of acronyms. If all you are doing is showind data from the database in a fancy UI why not make life easy.

Take a look at WXF stack and you will see what i mean.. The whole premise of WXF stack is confusion.

Oh innovators where are you? You sure are not in Google , Microsoft , IBM and Sun. While they are busy adding more confusion to the already messed up programming models there must that only person who is thinking about the problem in a much sim

Make it simple, make it work.